golang application 에 promethues 연동하고 custom metric 을 적용하는 방법을 정리해보았습니다.
프로메테우스 library를 적용하고 /metrics 에 핸들러를 expose(노출)한후
어플리케이션을 시작하고 localhost:8080/metrics 로 이동하면 기본 내장 메트릭을 볼 수 있습니다.
이러한 metric은 너무 low-level metric 이라 유용하게 쓸 수 없습니다.
어플리케이션 내부의 상태를 확인할 수 있는 custom metric을 적용하는 방법을 공유합니다.
1. Prometheus 클라이언트 라이브러리 설치
가장 먼저, Golang 애플리케이션에서 Prometheus 메트릭을 적용하기 위해 Prometheus 클라이언트 라이브러리를 설치해야 합니다. 대표적인 Prometheus 클라이언트 라이브러리로는 "prometheus/client_golang" 패키지가 있습니다. 이 패키지는 Prometheus 메트릭 수집기를 생성하고, HTTP 핸들러를 등록하여 메트릭을 노출하는 데 도움이 됩니다.
go get github.com/prometheus/client_golang/prometheus
2. 메트릭 정의
애플리케이션에서 수집하려는 메트릭을 정의해야 합니다. 예를 들어, "requests_total"이라는 샘플 카운터 메트릭을 생성하고 수집하려면 다음과 같이 할 수 있습니다:
import (
"github.com/prometheus/client_golang/prometheus"
)
var (
requestsTotal = prometheus.NewCounter(
prometheus.CounterOpts{
Name: "requests_total",
Help: "Total number of requests",
},
)
)
func init() {
prometheus.MustRegister(requestsTotal)
}
3. 메트릭 업데이트
애플리케이션 코드에서 메트릭을 업데이트하는 곳에 해당 메트릭을 호출하여 값을 증가시키는 코드를 추가해야 합니다. 예를 들어, HTTP 핸들러에서 요청이 발생할 때마다 "requests_total" 메트릭을 증가시킬 수 있습니다.
func handler(w http.ResponseWriter, r *http.Request) {
// Handle the request
requestsTotal.Inc()
}
'Hello World > DevOps' 카테고리의 다른 글
SW 버전 관리를 위한 몇가지 방안 (Versioning strategy) (0) | 2023.06.10 |
---|---|
Jenkins Pipeline 따라하기 (1) (2) | 2020.12.23 |
Gerrit - Commit Message에 Change-Id 입력하도록 설정 (0) | 2020.12.16 |
댓글