-
Grafana + Prometheus docker 기본 셋업컴퓨터/소프트웨어 2025. 2. 2. 12:24728x90반응형
https://github.com/grafana/docker-otel-lgtm/tree/main
GitHub - grafana/docker-otel-lgtm: OpenTelemetry backend in a Docker image
OpenTelemetry backend in a Docker image. Contribute to grafana/docker-otel-lgtm development by creating an account on GitHub.
github.com
그라파나 공식 레포에 있는 도커 이미지를 사용하면 편하다.
(LGTM =
Looks Good To Me= Loki + Grafana + Tempo + prometheus Metrics)1.Server
서버에서는 metrics 엔드포인트를 만들어서 export 해주면 된다.
로그인 횟수도 보고 싶어서 로그인도 카운트 할 것이다. (Go언어 기준)
func NewRegistry() prometheus.Registerer { reg := prometheus.NewRegistry() reg.MustRegister(collectors.NewGoCollector()) reg.MustRegister(collectors.NewProcessCollector(collectors.ProcessCollectorOpts{})) return reg } func NewLoginCounter(registry prometheus.Registerer) prometheus.Counter { counter := prometheus.NewCounter(prometheus.CounterOpts{ Name: "login_total", Help: "Total number of successful login requests", }) registry.MustRegister(counter) return counter } // fiber v2 기준 fp := fiberprometheus.NewWithRegistry(prometheusRegistry, "go-service", "http", "", nil) fp.SetSkipPaths([]string{"/"}) fp.RegisterAt(app, "/metrics") app.Use(fp.Middleware)
로그인 횟수 Grafana 2. Docker
기본적으로 3000 포트 (Grafana), 4317-4318 포트 (OpenTelemetry collector)
열려있으니 9090도 열어줘야 한다. (Prometheus)
( 아래 명령어는 백그라운드에서 작업 )
docker run -d --name otel-lgtm \ -p 3000:3000 \ -p 4317:4317 \ -p 4318:4318 \ -p 9090:9090 \ grafana/otel-lgtm
그다음 config를 수정해야 한다.
docker exec -it otel-lgtm sh # 기본 실행이 이런 식이다 # ./prometheus/prometheus --web.enable-remote-write-receiver --web.enable-otlp-receiver --enable-feature=exemplar-storage --enable-feature=native-histograms --storage.tsdb.path=/data/prometheus --config.file=./prometheus.yaml vi ./prometheus.yaml
아래처럼 scrape job을 추가한다.
- job_name: "fiber_v2" metrics_path: "/metrics" scrape_interval: 15s # 15초마다 metrics 가져오기 scrape_timeout: 10s # (Optional) 요청 오래 걸리면 타임아웃하기 scheme: "https" static_configs: - targets: ["api.k-pullup.com"] tls_config: insecure_skip_verify: true"
재시작 한번 해주고
docker restart otel-lgtm
prometheus_ip:9090/targets을 보면 UP이라고 되어있다.
grafana_ip:3000에 가서 Explore에서 go_ (go언어 관련 metrics)을 보면 아래처럼 잘 나오는 걸 볼 수 있다.
Golang metrics 실제로 시간이 지날 수록 스레드(goroutine)가 늘어나 pprof를 통해 눈치챌 수 있었다.
728x90'컴퓨터 > 소프트웨어' 카테고리의 다른 글
scrcpy: Android 스마트폰 화면&소리 컴퓨터에서 캡쳐 (2) 2021.08.15 Docker: 윈도우에서 ssh 연결로 간단한 Docker VM 만들기 (0) 2021.03.28 Github Desktop: verified commit 만들기 (0) 2020.12.16