IBM Cloud Private(ICP)와 함께 제공되는 Prometheus 및 Grafana로 애플리케이션 메트릭을 시각화
목적
IBM Cloud Private(ICP)는 Prometheus와 Grafana가 kube-system 네임스페이스에서 작동하는 제품과 함께 제공되는 모니터링 도구입니다. 일반적으로 노드나 ICP 관련 서비스의 메트릭스를 수집하고 있습니다만, 모처럼이므로 어플리케이션의 메트릭스도 수집해 가시화해 보겠습니다.
검증 환경
- IBM Cloud Private 2.1.0.2 (Kubernetes 1.9.1)
절차
앱의 Prometheus용 메트릭 지원
과거 기사 「 Spring Boot 2에서 /actuator/prometheus 사용 」와 같은 방법이 있습니다. 이 경우 앱의 지표는 /actuator/prometheus
에서 수집할 수 있습니다.
Prometheus의 ConfigMap 확인
Prometheus의 ConfigMap은 monitoring-prometheus
라는 이름으로 정의되어 있으므로 내부를 확인합니다. 그러면 수상한 코멘트를 찾을 수 있습니다.
$ kubectl get configmap monitoring-prometheus -n kube-system -o yaml | more
# Example scrape config for pods
#
# The relabeling allows the actual pod scrape endpoint to be configured via the
# following annotations:
#
# * `prometheus.io/scrape`: Only scrape pods that have a value of `true`
# * `prometheus.io/path`: If the metrics path is not `/metrics` override this.
# * `prometheus.io/port`: Scrape the pod on the indicated port instead of the default of `9102`.
- job_name: 'kubernetes-pods'
kubernetes_sd_configs:
- role: pod
사실, prometheus.io/scrape: "true"
를 포드의 주석으로 지정하면이 Prometheus는 자동으로 메트릭을 수집합니다. 또, 수집시의 패스나 포트는 prometheus.io/path
와 prometheus.io/port
로 변경할 수 있습니다.
앱 배포
다음과 같이 주석을 지정합니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: kube-sample-top
spec:
replicas: 2
selector:
matchLabels:
app: kube-sample-top
template:
metadata:
labels:
app: kube-sample-top
annotations:
prometheus.io/scrape: "true" # 収集の有効化
prometheus.io/path: /actuator/prometheus # パス
prometheus.io/port: "8080:8080" # Podのポート:コンテナポート
spec:
containers:
(略)
Prometheus 확인
Promethues UI를 확인합니다. 포트가 공개되지 않으므로 port-forward합니다.
$ kubectl get pod -n kube-system | grep monitoring-prometheus
monitoring-prometheus-7994986858-4nwp8 3/3 Running 0 5d
(略)
$ kubectl port-forward monitoring-prometheus-7994986858-4nwp8 9090:9090 -n kube-system
브라우저에서 http://localhost:9090/로 이동하여 메뉴에서 Status → Targets를 선택합니다. 그렇다면 다음과 같이 Scraping이 시작되어야합니다.
Grafana 확인
ICP 대시보드에서 Platform→Monitoring을 선택하면 Grafana가 표시됩니다. 시험에 빈 대시보드를 만들고 JVM의 힙 사용량을 그래프로 표시해 봅니다.
다음과 유사한 조건을 지정합니다.
그러면 그래프가 그려졌습니다.
아주 쉬웠어요.
이상입니다.
Reference
이 문제에 관하여(IBM Cloud Private(ICP)와 함께 제공되는 Prometheus 및 Grafana로 애플리케이션 메트릭을 시각화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/teruq/items/c29438c7e7f4c3335f32
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
앱의 Prometheus용 메트릭 지원
과거 기사 「 Spring Boot 2에서 /actuator/prometheus 사용 」와 같은 방법이 있습니다. 이 경우 앱의 지표는
/actuator/prometheus
에서 수집할 수 있습니다.Prometheus의 ConfigMap 확인
Prometheus의 ConfigMap은
monitoring-prometheus
라는 이름으로 정의되어 있으므로 내부를 확인합니다. 그러면 수상한 코멘트를 찾을 수 있습니다.$ kubectl get configmap monitoring-prometheus -n kube-system -o yaml | more
# Example scrape config for pods
#
# The relabeling allows the actual pod scrape endpoint to be configured via the
# following annotations:
#
# * `prometheus.io/scrape`: Only scrape pods that have a value of `true`
# * `prometheus.io/path`: If the metrics path is not `/metrics` override this.
# * `prometheus.io/port`: Scrape the pod on the indicated port instead of the default of `9102`.
- job_name: 'kubernetes-pods'
kubernetes_sd_configs:
- role: pod
사실,
prometheus.io/scrape: "true"
를 포드의 주석으로 지정하면이 Prometheus는 자동으로 메트릭을 수집합니다. 또, 수집시의 패스나 포트는 prometheus.io/path
와 prometheus.io/port
로 변경할 수 있습니다.앱 배포
다음과 같이 주석을 지정합니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: kube-sample-top
spec:
replicas: 2
selector:
matchLabels:
app: kube-sample-top
template:
metadata:
labels:
app: kube-sample-top
annotations:
prometheus.io/scrape: "true" # 収集の有効化
prometheus.io/path: /actuator/prometheus # パス
prometheus.io/port: "8080:8080" # Podのポート:コンテナポート
spec:
containers:
(略)
Prometheus 확인
Promethues UI를 확인합니다. 포트가 공개되지 않으므로 port-forward합니다.
$ kubectl get pod -n kube-system | grep monitoring-prometheus
monitoring-prometheus-7994986858-4nwp8 3/3 Running 0 5d
(略)
$ kubectl port-forward monitoring-prometheus-7994986858-4nwp8 9090:9090 -n kube-system
브라우저에서 http://localhost:9090/로 이동하여 메뉴에서 Status → Targets를 선택합니다. 그렇다면 다음과 같이 Scraping이 시작되어야합니다.
Grafana 확인
ICP 대시보드에서 Platform→Monitoring을 선택하면 Grafana가 표시됩니다. 시험에 빈 대시보드를 만들고 JVM의 힙 사용량을 그래프로 표시해 봅니다.
다음과 유사한 조건을 지정합니다.
그러면 그래프가 그려졌습니다.
아주 쉬웠어요.
이상입니다.
Reference
이 문제에 관하여(IBM Cloud Private(ICP)와 함께 제공되는 Prometheus 및 Grafana로 애플리케이션 메트릭을 시각화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/teruq/items/c29438c7e7f4c3335f32텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)