분류 전체보기
Monitoring(Prometheus) 정복하기 - 5 (Altering rule)
Monitoring(Prometheus) 정복하기 - 5 (Altering rule)
2024.05.06Altering rule 이란 프로메테우스의 한 기능으로서 PromQL을 기반으로 알람 조건을 정의하고, 외부 서비스에 FIRING 된 알람들을 외부로 전달할 수 있다. 해당 역할을 수행하기 위해서는 2개의 리소스가 필요하다. 1. Altering rule Altering rule은 이전의 Recording rule 처럼 특정 PromQL을 지표로 사용하거나 Recording rule 그 자체를 사용하여, 어떠한 지표를 기준으로 알람을 동작시킬지 정의한다. 알람은 3개의 상태가 있다. - INACTIVE: 설정한 조건을 충족하고 있지 않을 때- PENDING: 설정한 조건을 충족 하지만, 지정한 지속 시간(for) 시간의 임계치 보다 낮을 때- FIRING: Altering rule의 조건을 모두 충족..
첫 퇴사 회고
첫 퇴사 회고
2024.05.03취업 당시, 나는 IT 직무에 대해 Front-end와 Back-end 포지션 정도만 알고 있었을 정도로 IT 직무에 대한 지식이 부족했다. Back-end 분야의 수요가 많다는 이야기를 듣고, 그 방향으로 준비하게 되었고, 결국 대학 졸업을 앞두고 1학기가 남은 시점에서 취업에 성공했다. 내가 특별히 바라던 회사는 없었다. 단지, 지금까지 공부한 것을 활용해 일할 수 있는 곳이면 충분했다. 기대 반, 걱정 반의 마음으로 시작한 회사 생활은 나중에 다닐 회사들에 대한 기대를 키워주기에 충분했다. 면접 때 "우리 회사는 사람이 복지야!"라는 말이 실감 날 정도로, 동료들은 나에게 지나치게 좋은 사람들이었다. 그래서 퇴사를 결심할 때 가장 망설여졌던 것은 바로 이런 동료들과의 헤어짐이었다. 하지만, 회사에서..
Monitoring(Prometheus) 정복하기 - 4 (recording rule)
Monitoring(Prometheus) 정복하기 - 4 (recording rule)
2024.04.13recording rule 이란 자주 필요한 표현식이나 계산 비용이 큰 표현식을 미리 계산해서, 그 결과를 별도 시계열 셋으로 저장해 둘 수 있는 기능이다. 즉 성능과 재사용성을 높이기 위해서 사용할 수 있다. 예를 들어보자. 원하는 시계열 데이터를 만들기 위해서 5개의 시계열 데이터가 들어가고, 하나의 프롬 쿼리당 1의 리소스가 든다고 가정해 보자. -> 데이터를 요청할 때마다 5의 리소스가 들어가게 된다. 반면에 recording rule을 사용하면, 처음에 5의 리소스가 들어가게 되고, 해당 값을 저장하는 시계열 데이터가 만들어진다. -> 데이터를 요청할 때마다 1의 리소스가 들어가게 된다. 여기서 프롬 쿼리가 복잡하다면 더 많은 차이가 나타나게 된다. 물론 별도의 시계열 데이터로 저장해서, 저장 ..
Monitoring(Prometheus) 정복하기 - 3 (PromQL)
Monitoring(Prometheus) 정복하기 - 3 (PromQL)
2024.04.02프로메테우스로 지표를 수집했으면, 해당 지표를 사용하기 위해서는 PromQL을 사용해야 한다. mysql에서 query를 사용하는 것과 비슷한데, 문법과 값들이 조금씩 다르다. 하나씩 알아보자. PromQL 타입 mysql에서 int, string 같은 자료형이 있듯이 PromQL에도 guage, counter, summary, histogram 4가지의 자료형이 존재한다. 예와 함께 살펴보자. Gauge 특정 시점의 값을 표현하는 타입이고, 예시로는 cpu, 메모리 사용량의 현재 시점이 있다. 말했듯이 검색 시점에서 값들을 의미한다. Counter 현재 시점까지의 누적된 값을 표현하는 타입이고, 예시로는 gc를 수행하는데, 걸린 시간을 누적값을 가지고 있는 것을 볼 수 있다. Summary 구간 내에 ..
Monitoring(Prometheus + Grafana) 정복하기 - 2 (EKS 수집)
Monitoring(Prometheus + Grafana) 정복하기 - 2 (EKS 수집)
2024.03.23이제 EKS를 Terraform으로 간편하게 만들고, Prometheus와 Grafana를 적용해 보자. EKS 생성 (With Terraform) Github에서 볼 수 있고 사용 방법은 README를 보기 바란다. 시간이 약 10분 정도 걸리고, 완성된 것을 볼 수 있다. EKS 세팅 (kubectl 설치 가정) 이제 로컬에서 kubectl을 사용할 수 있도록 kubeconfig를 업데이트해줘야 한다. aws eks update-kubeconfig --region region-code --name my-cluster # 서울의 경우 ap-northeast-2 사용하면 ~/. kube로 이동하면 config파일이 업데이트된 것을 볼 수 있다. 이제 EKS를 cli로 다룰 수 있게 도와주는 eksctl을..
Monitoring(Prometheus + Grafana) 정복하기 - 1 (EC2 인스턴스 기반 애플리케이션)
Monitoring(Prometheus + Grafana) 정복하기 - 1 (EC2 인스턴스 기반 애플리케이션)
2024.03.21EC2 기반 애플리케이션의 프로메테우스 지표를 수집하고, 그라파나로 시각화해볼 예정이다. 프로메테우스, 그라파나 서버 인스턴스 생성 프로메테우스와 그라파나를 docker 컨테이너로 돌릴 예정이다. EC2 인스턴스 하나를 준비하자. 이름을 지정해준다. 이때 이름은 자동으로 Name 태그로 들어간다. 보안 그룹은 다음과 같이 해준다. 3000 포트: 그라파나 대시보드 접근 포트 9090 포트: 프로메테우스 접근 포트 (테스트가 끝나면 닫아도 됨) 8080 포트: 애플리케이션 포트 (같은 인스턴스 내에서 애플리케이션을 돌릴 예정) 22 포트: 해당 cidr은 AWS instance connect를 사용할 때 AWS 측의 IP range다. (key pair 없이 사용할 수 있음) 서버 인스턴스 설정 EC2 연..