- name: Deploy exporter | |
kubernetes.core.k8s: | |
state: present | |
definition: | |
- apiVersion: apps/v1 | |
kind: DaemonSet | |
metadata: | |
name: ethtool-exporter | |
namespace: monitoring | |
labels: | |
application: ethtool-exporter | |
spec: | |
updateStrategy: | |
rollingUpdate: | |
maxUnavailable: 100% | |
selector: | |
matchLabels: | |
application: ethtool-exporter | |
template: | |
metadata: | |
labels: | |
application: ethtool-exporter | |
job: ethtool | |
spec: | |
hostNetwork: true | |
terminationGracePeriodSeconds: 0 | |
containers: | |
- name: ethtool-exporter | |
env: | |
- name: IP | |
valueFrom: | |
fieldRef: | |
fieldPath: status.podIP | |
image: quay.io/vexxhost/ethtool-exporter:{{ prometheus_ethtool_exporter_image_tag }} | |
args: | |
- "-L" | |
- "$(IP)" | |
- "-p" | |
- "9417" | |
- "-I" | |
- "(eth|em|eno|ens|enp)[0-9s]+" | |
ports: | |
- name: metrics | |
containerPort: 9417 | |
- 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 |