Stackdriver-exporter 설치 방법 참고
[Prometheus](GCP)Install Stackdriver-exporter for monitoring GCP with helm chart
Concept
stackdriver-exporter를 사용하면 GCP에서 사용중인 리소스를 모니터링할 수 있다.
다만, GCP 콘솔에서와 달리 공식문서에서 제공해주는 metrics 값들이 모두 모니터링 가능한 것은 아니라 필요한 데이터 수집에 대한 테스트가 필요하다.
아래는 stackdriver-exporter helm chart의 metrics에서 사용하는 option에 대한 설명이다
수집 가능한 metrics 확인하는 방법
1. GCP doc - Metrics list
공식문서 참고
https://cloud.google.com/monitoring/api/metrics_gcp?hl=ko
위와 같이 공식문서 상에서 원하는 metric 값을 확인 한뒤 stackdriver-exporter helm chart에 내용을 추가한다 (아래에서 설명)
metrics: compute.googleapis.com/firewall/dropped_bytes_count
❗여기서 데이터를 확인할 수 있다해도 stackdriver-exporter에서는 수집하지 못할 수 있으니 실제 데이터 수집에 대한 테스트가 필요하다
2. Reading metrics with python
Monitoring API timeSeries.list사용해 metric값을 확인한다.
from google.cloud import monitoring_v3
client = monitoring_v3.MetricServiceClient()
project = jmhan-int-220517
project_name = f"projects/{project}"
"""
모니터링 리소스 나열 > 모니터링할 수 있는 클라우드 항목"""
resource_descriptors = client.list_monitored_resource_descriptors(name=project_name)
for descriptor in resource_descriptors:
print(descriptor.type)
"""
클라우드 항목 중 세부 metric 유형 나열"""
for descriptor in client.list_metric_descriptors(name=project_name):
print(descriptor.type)
모니터링할 수 있는 클라우드 항목 → 세부 metric 항목 확인 순으로 진행하여 원하는 metric 값을 확인한다.
❗여기서 데이터를 확인할 수 있다해도 stackdriver-exporter에서는 수집하지 못할 수 있으니 실제 데이터 수집에 대한 테스트가 필요하다
Option
아래는 stackdriver-exporter helm chart의 metrics에서 사용하는 option에 대한 설명이다.
- projectId: The Google Project ID to gather metrics for, serviceAccountSecret와 일치하는 Project명을 작성해야한다. 여기에 작성한 내용이 prometheus에서 label로 들어간다.
- serviceAccountSecret: An existing secret which contains credentials.json, GCP의 Service Account를 이용하여 프로젝트를 모니터링 한다.
- metrics
- typePrefixes: The prefixes to gather metrics for, 수집하고자 하는 데이터의 metric 값을 입력한다.
- interval: The frequency to request
- offset: How far into the past to offset
metircs 추가 - Example
stackdriver:
# The Google Project ID to gather metrics for
projectId: "jmhan-int"
# An existing secret which contains credentials.json
serviceAccountSecret: ""
# Provide custom key for the existing secret to load credentials.json from
serviceAccountSecretKey: ""
# A service account key JSON file. Must be provided when no existing secret is used, in this case a new secret will be created holding this service account
serviceAccountKey: ""
# Max number of retries that should be attempted on 503 errors from Stackdriver
maxRetries: 0
# How long should Stackdriver_exporter wait for a result from the Stackdriver API
httpTimeout: 10s
# Max time between each request in an exp backoff scenario
maxBackoff: 5s
# The amount of jitter to introduce in an exp backoff scenario
backoffJitter: 1s
# The HTTP statuses that should trigger a retry
retryStatuses: 503
# Drop metrics from attached projects and fetch `project_id` only
dropDelegatedProjects: false
metrics:
# The prefixes to gather metrics for, we default to just CPU metrics.
typePrefixes: 'compute.googleapis.com/instance/cpu/utilization,compute.googleapis.com/instance/cpu/reserved_cores,compute.googleapis.com/instance/memory/'
# The frequency to request
interval: '5m'
# How far into the past to offset
offset: '0s'
# Offset for the Google Stackdriver Monitoring Metrics interval into the past by the ingest delay from the metric's metadata.
ingestDelay: false
Google Cloud metrics
https://cloud.google.com/monitoring/api/metrics_gcp
Google Cloud Agent metrics
https://cloud.google.com/monitoring/api/metrics_agent#agent
stackdriver exporter github
https://github.com/prometheus-community/stackdriver_exporter
결과 확인
stackdriver-exporter에 들어가서 metric에 등록한 값을 확인한다.
'Observability > Prometheus' 카테고리의 다른 글
[Prometheus]Add custom grafana template to Prometheus-stack (0) | 2022.07.11 |
---|---|
[Prometheus]Prometheus Slack Alert 연동하기 (0) | 2022.07.11 |
[Prometheus](AWS)Add Custom rules to Prometheus stack with cloudwatch-exporter (0) | 2022.07.11 |
[Prometheus](AWS)Cloudwatch-exporter multiple projects monitoring with IAM User (0) | 2022.07.11 |
[Prometheus](AWS)Cloudwatch-exporter에 원하는 metrics 추가하기 (0) | 2022.07.11 |