ServiceMonitor
- Docker & Kubernetes kursu
- İleri seviye
- Ders 50/70
- 4 dk
ServiceMonitor ile scrape hedeflerini öğrenirsin.
ServiceMonitor
Prometheus Operator ile hedefler elle yapılandırılmaz; ServiceMonitor adlı özel kaynak, hangi Service'lerin hangi port ve yoldan okunacağını tanımlar. Operator bunu Prometheus yapılandırmasına çevirir:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: api
namespace: izleme
labels:
release: izleme
spec:
namespaceSelector:
matchNames: [magaza]
selector:
matchLabels:
app: api
endpoints:
- port: http
path: /metrics
interval: 30sNeden release etiketi?
Prometheus nesnesi yalnızca belirli etiketleri taşıyan ServiceMonitor'ları seçer; kube-prometheus-stack'te varsayılan seçici release: <release-adı>'dır. Etiket eksikse ServiceMonitor görmezden gelinir ve hedef Prometheus'un Targets sayfasında görünmez:
$ kubectl get prometheus -n izleme -o jsonpath='{.items[0].spec.serviceMonitorSelector}'
{"matchLabels":{"release":"izleme"}}
kubectl get servicemonitors -AUygulama ServiceMonitor yaz
Bir ServiceMonitor YAML'ı yaz: monitoring.coreos.com/v1; adı api, namespace'i izleme, etiketi release: izleme; selector.matchLabels app: api; tek uç nokta: port: http, path: /metrics, interval: 30s.
Başlangıç kodu
# buraya yazÖrnek çözüm
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: api
namespace: izleme
labels:
release: izleme
spec:
selector:
matchLabels:
app: api
endpoints:
- port: http
path: /metrics
interval: 30sBeklenen çıktı
servicemonitor.monitoring.coreos.com/api created
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 ServiceMonitor'daki port: http neye başvurur?
- NodePort'a
- Hedef Service'teki adlandırılmış port'a Doğru cevap
- Container numarasına
- Prometheus'un portuna
Açıklama: Service'te ports[].name: http tanımlı olmalıdır.
2 Okunacak uç nokta listesini yaz.
spec:
selector:
matchLabels:
app: api
____:
- port: http
path: /metrics
spec:
selector:
matchLabels:
app: api
endpoints:
- port: http
path: /metrics
Açıklama: endpoints port, path ve interval içerir.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
ServiceMonitor |
Hedef tanımı |
namespaceSelector |
Hangi namespace'ler |
selector |
Hangi Service'ler |
release etiketi |
Prometheus'un seçimi |