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