HTTP 서버

이 문서에서는 Google Cloud Managed Service for Prometheus를 사용하여 애플리케이션이 제공한 HTTP 요청에서 측정항목을 수집할 수 있도록 Google Kubernetes Engine 배포를 구성하는 방법을 설명합니다. 이 문서에서는 다음 작업을 수행하는 방법을 설명합니다.

이 안내는 관리형 컬렉션을 Managed Service for Prometheus와 함께 사용하는 경우에만 적용됩니다.

설정

애플리케이션 대시보드에 표시할 수 있는 HTTP 서버에서 측정항목을 수집하려면 설명된 대로 다음 측정항목을 내보내야 합니다.

  • codemethod 라벨이 있는 counter 유형의 http_requests_total
  • method 라벨이 있는 histogram 유형의 http_request_duration_seconds_bucket

Prometheus Go 클라이언트를 사용하여 이러한 측정항목을 수집하는 예시는 prometheus-example-app을 참조하세요.

HTTP 서버가 예상 엔드포인트에서 측정항목을 내보내는지 확인하려면 다음을 수행합니다.

  1. 다음 명령어를 사용하여 포트 전달을 설정합니다.
    kubectl -n NAMESPACE_NAME port-forward deploy/HTTP_SERVER_DEPLOYMENT_NAME PROMETHEUS_PORT_NUMBER
      
  2. 브라우저 또는 다른 터미널 세션의 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

portMatchLabels 필드의 값이 모니터링하려는 HTTP 애플리케이션의 값과 일치하는지 확인합니다.

로컬 파일에서 구성 변경사항을 적용하려면 다음 명령어를 실행합니다.

kubectl apply -n NAMESPACE_NAME -f FILE_NAME

Terraform을 사용하여 구성을 관리할 수도 있습니다.

애플리케이션 측정항목 보기

HTTP 애플리케이션의 요청, 오류율, 지연 시간 측정항목을 보려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 워크로드 페이지로 이동합니다.

    워크로드로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Kubernetes Engine인 결과를 선택합니다.

  2. 워크로드 목록에서 배포를 클릭합니다. 목록의 유형 열은 워크로드 유형을 나타냅니다.
  3. 배포 세부정보 페이지에서 관측 가능성 탭을 클릭합니다.
  4. 대시보드 선택기에서 애플리케이션을 선택합니다.

자세한 내용은 애플리케이션 성능 측정항목 사용을 참조하세요.

문제 해결

Managed Service for Prometheus의 측정항목 수집 문제 해결에 대한 자세한 내용은 수집 측 문제 해결에서 내보내기 도구의 수집 관련 문제를 참조하세요.