rule_files: - manifests/etcd-prometheusRules.yaml evaluation_interval: 1m tests: - interval: 1m input_series: - series: 'up{job="etcd",instance="10.10.10.0"}' values: '1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0' - series: 'up{job="etcd",instance="10.10.10.1"}' values: '1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0' - series: 'up{job="etcd",instance="10.10.10.2"}' values: '1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0' alert_rule_test: - eval_time: 3m alertname: etcdInsufficientMembers - eval_time: 5m alertname: etcdInsufficientMembers - eval_time: 12m alertname: etcdMembersDown - eval_time: 14m alertname: etcdMembersDown exp_alerts: - exp_labels: job: etcd severity: critical exp_annotations: description: 'etcd cluster "etcd": members are down (3).' summary: 'etcd cluster members are down.' - eval_time: 7m alertname: etcdInsufficientMembers - eval_time: 11m alertname: etcdInsufficientMembers exp_alerts: - exp_labels: job: etcd severity: critical exp_annotations: description: 'etcd cluster "etcd": insufficient members (1).' summary: 'etcd cluster has insufficient number of members.' - eval_time: 15m alertname: etcdInsufficientMembers exp_alerts: - exp_labels: job: etcd severity: critical exp_annotations: description: 'etcd cluster "etcd": insufficient members (0).' summary: 'etcd cluster has insufficient number of members.' - interval: 1m input_series: - series: 'up{job="etcd",instance="10.10.10.0"}' values: '1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0' - series: 'up{job="etcd",instance="10.10.10.1"}' values: '1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0' - series: 'up{job="etcd",instance="10.10.10.2"}' values: '1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0' alert_rule_test: - eval_time: 14m alertname: etcdMembersDown exp_alerts: - exp_labels: job: etcd severity: critical exp_annotations: description: 'etcd cluster "etcd": members are down (3).' summary: 'etcd cluster members are down.' - interval: 1m input_series: - series: 'up{job="etcd",instance="10.10.10.0"}' values: '1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0' - series: 'up{job="etcd",instance="10.10.10.1"}' values: '1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0' - series: 'etcd_network_peer_sent_failures_total{To="member-1",job="etcd",endpoint="test"}' values: '0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18' alert_rule_test: - eval_time: 13m alertname: etcdMembersDown exp_alerts: - exp_labels: job: etcd severity: critical exp_annotations: description: 'etcd cluster "etcd": members are down (1).' summary: 'etcd cluster members are down.' - interval: 1m input_series: - series: 'etcd_server_leader_changes_seen_total{job="etcd",instance="10.10.10.0"}' values: '0 0 2 0 0 1 0 0 0 0 0 0 0 0 0 0' - series: 'etcd_server_leader_changes_seen_total{job="etcd",instance="10.10.10.1"}' values: '0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0' - series: 'etcd_server_leader_changes_seen_total{job="etcd",instance="10.10.10.2"}' values: '0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0' alert_rule_test: - eval_time: 10m alertname: etcdHighNumberOfLeaderChanges exp_alerts: - exp_labels: job: etcd severity: warning exp_annotations: description: 'etcd cluster "etcd": 4 leader changes within the last 15 minutes. Frequent elections may be a sign of insufficient resources, high network latency, or disruptions by other components and should be investigated.' summary: 'etcd cluster has high number of leader changes.' - interval: 1m input_series: - series: 'etcd_server_leader_changes_seen_total{job="etcd",instance="10.10.10.0"}' values: '0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0' - series: 'etcd_server_leader_changes_seen_total{job="etcd",instance="10.10.10.1"}' values: '0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0' - series: 'etcd_server_leader_changes_seen_total{job="etcd",instance="10.10.10.2"}' values: '0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0' alert_rule_test: - eval_time: 10m alertname: etcdHighNumberOfLeaderChanges exp_alerts: - interval: 1m input_series: - series: 'etcd_mvcc_db_total_size_in_bytes{job="etcd",instance="10.10.10.0"}' values: '0+8192x240' - series: 'etcd_server_quota_backend_bytes{job="etcd",instance="10.10.10.0"}' values: '524288+0x240' - series: 'etcd_mvcc_db_total_size_in_bytes{job="etcd",instance="10.10.10.1"}' values: '0+1024x240' - series: 'etcd_server_quota_backend_bytes{job="etcd",instance="10.10.10.1"}' values: '524288+0x240' alert_rule_test: - eval_time: 11m alertname: etcdExcessiveDatabaseGrowth exp_alerts: - exp_labels: instance: '10.10.10.0' job: etcd severity: warning exp_annotations: description: 'etcd cluster "etcd": Predicting running out of disk space in the next four hours, based on write observations within the past four hours on etcd instance 10.10.10.0, please check as it might be disruptive.' summary: 'etcd cluster database growing very fast.' - interval: 1m input_series: - series: 'etcd_mvcc_db_total_size_in_use_in_bytes{job="etcd",instance="10.10.10.0"}' values: '300000000+0x10' - series: 'etcd_mvcc_db_total_size_in_bytes{job="etcd",instance="10.10.10.0"}' values: '1000000000+0x10' - series: 'etcd_mvcc_db_total_size_in_use_in_bytes{job="etcd",instance="10.10.10.1"}' values: '700000000+0x10' - series: 'etcd_mvcc_db_total_size_in_bytes{job="etcd",instance="10.10.10.1"}' values: '1000000000+0x10' alert_rule_test: - eval_time: 11m alertname: etcdDatabaseHighFragmentationRatio exp_alerts: - exp_labels: instance: '10.10.10.0' job: etcd severity: warning exp_annotations: description: 'etcd cluster "etcd": database size in use on instance 10.10.10.0 is 30% of the actual allocated disk space, please run defragmentation (e.g. etcdctl defrag) to retrieve the unused fragmented disk space.' runbook_url: https://etcd.io/docs/v3.5/op-guide/maintenance/#defragmentation summary: 'etcd database size in use is less than 50% of the actual allocated storage.'