Grafana-agent를 통해 현재 클러스터에 등록되어 있는 prometheus rule (Custom resource)을 mimir에 등록할 수 있습니다.
grafana-agent.yaml (helm value)
https://grafana.com/docs/agent/latest/flow/setup/install/kubernetes/
위 링크를 참조하여 helm chart를 이용한 배포를 준비합니다.
아래 링크를 참조하여 grafana-agent의 content를 설정합니다.
https://grafana.com/docs/agent/latest/flow/reference/components/mimir.rules.kubernetes/
agent:
mode: 'flow'
configMap:
content: |
mimir.rules.kubernetes "testTenant" {
address = "http://mimir-ruler.mimir.svc.cluster.local:8080"
tenant_id = "test-tenant"
rule_selector {
match_labels = {
owned = "grafana-agent",
tenant = "test-tenant",
}
}
}
enableReporting: false
resources: {}
controller:
type: 'deployment'
replicas: 1
nodeSelector: {}
tolerations: []
affinity: {}
mimir.rules.kubernetes의 모듈 이름에는 특수문자가 포함될 수 없으므로 camel 방식의 네이밍을 추천합니다.
address는 mimir ruler의 url을 넣습니다. (위 예시는 같은 클러스터 내 mimir namespace에 mimir를 구성했을 때의 예시입니다.)
위와 같이 지정한 후, match_labels를 참조하여 prometheus rule에 label을 추가하면, 이 정책에 따라서 특정 tenant에게 rule을 업로드시킬 수 있습니다.
prometheus rule example
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
labels:
owned: grafana-agent
tenant: test-tenant
name: test-tenant-alert-example
namespace: grafana
spec:
groups:
- name: check-tenant
rules:
- alert: TenantMetricMissing
annotations:
description: 테넌트 메트릭 수집이 중단됐습니다.
summary: Tenant's prometheus job missing
expr: absent(up{job=~".*prometheus$"})
for: 0m
labels:
current: ' → 메트릭 수집 중단'
severity: warning
target: 'Tenant cluster : caihong-dev'
'Monitoring' 카테고리의 다른 글
Prometheus alertmanager (0) | 2023.08.31 |
---|---|
Prometheus를 push 방식으로 쓰기 (0) | 2023.08.31 |
Grafana mimir overview (0) | 2023.08.29 |
Opentelemetry - Collector filtering span (0) | 2023.08.28 |
Opentelemetry - auto instrumentation with specific libraries (0) | 2023.08.28 |