9.2. 사용자 정의 프로젝트에 대한 메트릭 컬렉션 설정
ServiceMonitor
리소스를 생성하여 사용자 정의 프로젝트의 서비스 끝점에서 메트릭을 스크랩할 수 있습니다. 애플리케이션은 Prometheus 클라이언트 라이브러리를 사용하여 메트릭을 /metrics
표준 이름에 노출한다고 가정합니다.
이 섹션에서는 사용자 정의 프로젝트에 샘플 서비스를 배포한 후 서비스 모니터링 방법을 정의하는 ServiceMonitor
리소스를 만드는 방법에 대해 설명합니다.
9.2.1. 샘플 서비스 배포 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트에서 서비스 모니터링을 테스트하기 위해 샘플 서비스를 배포할 수 있습니다.
프로세스
-
서비스 구성에 대한 YAML 파일을 생성합니다. 이 예에서는
prometheus-example-app.yaml
이라고 합니다. 파일에 다음 배포 및 서비스 구성 세부 정보를 추가합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 구성은 사용자 정의
ns1
프로젝트에prometheus-example-app
이라는 서비스를 배포합니다. 이 서비스는 사용자 정의version
메트릭을 노출합니다.클러스터에 구성을 적용합니다.
oc apply -f prometheus-example-app.yaml
$ oc apply -f prometheus-example-app.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스를 배포하는 데 시간이 다소 걸립니다.
Pod가 실행 중인지 확인할 수 있습니다.
oc -n ns1 get pod
$ oc -n ns1 get pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE prometheus-example-app-7857545cb7-sbgwq 1/1 Running 0 81m
NAME READY STATUS RESTARTS AGE prometheus-example-app-7857545cb7-sbgwq 1/1 Running 0 81m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.2. 서비스 모니터링 방법 지정 링크 복사링크가 클립보드에 복사되었습니다!
서비스에서 노출하는 메트릭을 사용하려면 /metrics
끝점에서 메트릭을 스크랩하도록 OpenShift Container Platform 모니터링을 구성해야 합니다. 서비스를 모니터링해야 하는 방법을 지정하는 ServiceMonitor
(CRD) 또는 Pod를 모니터링해야 하는 방법을 지정하는 PodMonitor
CRD를 사용하여 이 작업을 수행할 수 있습니다. 전자에는 Service
오브젝트가 필요하지만 후자에는 필요하지 않으며 Prometheus가 Pod에서 노출하는 메트릭 끝점에서 메트릭을 직접 스크랩할 수 있습니다.
다음 프로세스에서는 사용자 정의 프로젝트에서 서비스에 대한 ServiceMonitor
리소스를 생성하는 방법을 보여줍니다.
사전 요구 사항
-
cluster-admin
클러스터 역할 또는monitoring-edit
클러스터 역할의 사용자로 클러스터에 액세스할 수 있습니다. - 사용자 정의 프로젝트에 대한 모니터링을 활성화했습니다.
이 예제에서는
prometheus-example-app
샘플 서비스를ns1
프로젝트에 배포했습니다.참고prometheus-example-app
샘플 서비스는 TLS 인증을 지원하지 않습니다.
프로세스
-
ServiceMonitor
리소스 구성에 대한 YAML 파일을 생성합니다. 이 예제에서 파일은example-app-service-monitor.yaml
이라고 합니다. 다음
ServiceMonitor
리소스 구성 세부 정보를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이는
버전
메트릭이 포함된prometheus-example-app
샘플 서비스에서 노출하는 메트릭을 스크랩하는ServiceMonitor
리소스를 정의합니다.참고사용자 정의 네임스페이스의
ServiceMonitor
리소스는 동일한 네임스페이스에서 서비스만 검색할 수 있습니다. 즉ServiceMonitor
리소스의namespaceSelector
필드는 항상 무시됩니다.클러스터에 구성을 적용합니다.
oc apply -f example-app-service-monitor.yaml
$ oc apply -f example-app-service-monitor.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ServiceMonitor
리소스를 배포하는 데 시간이 다소 걸립니다.ServiceMonitor
리소스가 실행 중인지 확인할 수 있습니다.oc -n ns1 get servicemonitor
$ oc -n ns1 get servicemonitor
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME AGE prometheus-example-monitor 81m
NAME AGE prometheus-example-monitor 81m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow