feat(ethtool): add podmonitor + basic rules
diff --git a/roles/prometheus_ethtool_exporter/tasks/main.yml b/roles/prometheus_ethtool_exporter/tasks/main.yml
index ea1967c..95a7290 100644
--- a/roles/prometheus_ethtool_exporter/tasks/main.yml
+++ b/roles/prometheus_ethtool_exporter/tasks/main.yml
@@ -17,6 +17,7 @@
metadata:
labels:
application: ethtool-exporter
+ job: ethtool
spec:
hostNetwork: true
containers:
@@ -34,17 +35,42 @@
ports:
- name: metrics
containerPort: 9417
- # - apiVersion: v1
- # kind: Service
- # metadata:
- # name: ethtool-exporter
- # namespace: monitoring
- # labels:
- # application: ethtool-exporter
- # spec:
- # clusterIP: None
- # ports:
- # - name: metrics
- # port: 9417
- # selector:
- # application: ethtool-exporter
+
+ - apiVersion: monitoring.coreos.com/v1
+ kind: PodMonitor
+ metadata:
+ name: ethtool-exporter
+ namespace: monitoring
+ labels:
+ application: ethtool-exporter
+ release: kube-prometheus-stack
+ spec:
+ jobLabel: job
+ podMetricsEndpoints:
+ - port: metrics
+ path: /metrics
+ relabelings:
+ - sourceLabels: ["__meta_kubernetes_pod_node_name"]
+ targetLabel: instance
+ - action: labeldrop
+ regex: ^(container|endpoint|namespace|pod)$
+ selector:
+ matchLabels:
+ application: ethtool-exporter
+
+ - apiVersion: monitoring.coreos.com/v1
+ kind: PrometheusRule
+ metadata:
+ name: ethtool-exporter
+ namespace: monitoring
+ labels:
+ application: ethtool-exporter
+ release: kube-prometheus-stack
+ spec:
+ groups:
+ - name: rules
+ rules:
+ - alert: EthernetReceiveDiscards
+ expr: rate(node_net_ethtool{type="rx_discards"}[1m]) > 0
+ labels:
+ severity: warning