이 문서에서는 Google Cloud Managed Service for Prometheus를 사용하여 애플리케이션이 제공한 HTTP 요청에서 측정항목을 수집할 수 있도록 Google Kubernetes Engine 배포를 구성하는 방법을 설명합니다. 이 문서에서는 다음 작업을 수행하는 방법을 설명합니다.
- 사전 정의된 형식으로 HTTP 측정항목을 내보내도록 애플리케이션을 설정합니다.
- 내보낸 측정항목을 수집하도록 Managed Service for Prometheus의 PodMonitoring 리소스를 구성합니다.
- GKE 배포의 애플리케이션 대시보드를 확인합니다.
이 안내는 관리형 컬렉션을 Managed Service for Prometheus와 함께 사용하는 경우에만 적용됩니다.
설정
애플리케이션 대시보드에 표시할 수 있는 HTTP 서버에서 측정항목을 수집하려면 설명된 대로 다음 측정항목을 내보내야 합니다.
code
및method
라벨이 있는counter
유형의http_requests_total
method
라벨이 있는histogram
유형의http_request_duration_seconds_bucket
Prometheus Go 클라이언트를 사용하여 이러한 측정항목을 수집하는 예시는 prometheus-example-app을 참조하세요.
HTTP 서버가 예상 엔드포인트에서 측정항목을 내보내는지 확인하려면 다음을 수행합니다.
- 다음 명령어를 사용하여 포트 전달을 설정합니다.
kubectl -n NAMESPACE_NAME port-forward deploy/HTTP_SERVER_DEPLOYMENT_NAME PROMETHEUS_PORT_NUMBER
- 브라우저 또는 다른 터미널 세션의
curl
유틸리티를 사용하여localhost:PROMETHEUS_PORT_NUMBER
에 액세스합니다.
PodMonitoring 리소스 정의
대상 검색을 위해 Managed Service for Prometheus 연산자에는 동일한 네임스페이스의 HTTP 서버 도구에 해당하는 PodMonitoring 리소스가 필요합니다.
다음 PodMonitoring 구성을 사용할 수 있습니다.
apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: my-prometheus-http-app labels: app.kubernetes.io/name: my-prometheus-http-app app.kubernetes.io/part-of: google-cloud-managed-prometheus spec: endpoints: - port: web scheme: http interval: 30s path: /metrics selector: matchLabels: app.kubernetes.io/name: prometheus-example-app
port
및 MatchLabels
필드의 값이 모니터링하려는 HTTP 애플리케이션의 값과 일치하는지 확인합니다.
로컬 파일에서 구성 변경사항을 적용하려면 다음 명령어를 실행합니다.
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Terraform을 사용하여 구성을 관리할 수도 있습니다.
애플리케이션 측정항목 보기
HTTP 애플리케이션의 요청, 오류율, 지연 시간 측정항목을 보려면 다음을 수행합니다.
-
Google Cloud 콘솔에서 워크로드 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Kubernetes Engine인 결과를 선택합니다.
- 워크로드 목록에서 배포를 클릭합니다. 목록의 유형 열은 워크로드 유형을 나타냅니다.
- 배포 세부정보 페이지에서 관측 가능성 탭을 클릭합니다.
- 대시보드 선택기에서 애플리케이션을 선택합니다.
자세한 내용은 애플리케이션 성능 측정항목 사용을 참조하세요.
문제 해결
Managed Service for Prometheus의 측정항목 수집 문제 해결에 대한 자세한 내용은 수집 측 문제 해결에서 내보내기 도구의 수집 관련 문제를 참조하세요.