Prometheus 指令
使用的指令如下:
sum by(__name__)({namespace="default",pod="pod_name", __name__=~".*"})
解釋如下:
sum by(__name__)
是一個 Prometheus 查詢語句,用於計算符合指定條件的指標值之和,並根據指標名稱進行分組。{namespace="default",pod_name="my-pod"}
是一個標籤選擇器 (label selector),用來選擇符合條件的 POD。其中,namespace
表示命名空間 (namespace),pod_name
表示 POD 名稱。__name__=~"MEERIC.*"
是一個正則表達式選擇器 (regular expression selector),用於選擇符合特定模式的指標名稱。在本例中,我們使用~
運算符將正則表達式"MEERIC.*"
用於指標名稱,以找到符合條件的指標。這個正則表達式的意思是:以MEERIC
開頭的所有指標名稱。__name__
是一個特殊的標籤 (label),代表指標名稱。使用sum by
子句時,我們將其作為分組條件之一,以根據指標名稱對指標值進行分組。
設定ServiceMonitor
在可以看到所有的值之後,就可以確認你的ServiceMonitor是否正確,可以來設定ServiceMonitor讓普羅米修斯監控正確的對象
以下為一個簡單的範例
apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app.kubernetes.io/instance: srs-json-exporter name: json-exporter namespace: stu-dashboard spec: endpoints: - interval: 30s params: module: - default target: - http://127.0.0.1:1985/api/v1/streams/ path: probe port: json-exporter jobLabel: jobLabel namespaceSelector: matchNames: - stu-srs selector: matchLabels: app: json-exporter
更多關於ServiceMonitor可用的設定值請見:
https://docs.openshift.com/container-platform/4.9/rest_api/monitoring_apis/servicemonitor-monitoring-coreos-com-v1.html