@leverege/build-tools 2.65.1 → 2.66.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/package.json +3 -3
  2. package/src/clone-cnpg-from-snapshot.mjs +5 -3
  3. package/src/helm-charts/cnpg-operator/cnpg-cleanup-cronjob.yaml.ovh +67 -0
  4. package/src/helm-charts/cnpg-operator/cnpg-cleanup-script.sh +73 -0
  5. package/src/helm-charts/cnpg-operator/gitignore +1 -0
  6. package/src/helm-charts/cnpg-operator/helmup-1.26.0-rc1.plugin +28 -0
  7. package/src/helm-charts/cnpg-operator/helmup.plugin +2 -3
  8. package/src/helm-charts/elasticsearch8/helmup.plugin +1 -1
  9. package/src/helm-charts/prom-operator/helmup.plugin +1 -1
  10. package/src/helm-charts/prom-operator/prometheus-stack.yaml.ovh +1 -1
  11. package/src/helm-charts/prom-operator/rules/awesome-base/elasticsearch-rules.yaml +219 -0
  12. package/src/helm-charts/prom-operator/rules/awesome-base/etcd-exporter.yaml +153 -0
  13. package/src/helm-charts/prom-operator/rules/awesome-base/google-cadvisor.yaml +108 -0
  14. package/src/helm-charts/prom-operator/rules/{new-awesome.yaml → awesome-base/kubestate-exporter.yaml} +2 -1
  15. package/src/helm-charts/prom-operator/rules/awesome-base/prometheus-rules.yaml +318 -0
  16. package/src/helm-charts/prom-operator/rules/awesome-base/redis-rules.yaml +142 -0
  17. package/src/helm-charts/prom-operator/rules/awesome-base/traefik-rules.yaml +43 -0
  18. package/src/helm-charts/prom-operator/rules/cadvisor-rules.yaml +109 -0
  19. package/src/helm-charts/prom-operator/rules/elasticsearch-rules.yaml +213 -95
  20. package/src/helm-charts/prom-operator/rules/etcd-rulte.yaml +153 -0
  21. package/src/helm-charts/prom-operator/rules/kubestate-rules.yaml +412 -0
  22. package/src/helm-charts/prom-operator/rules/prometheus-rules.yaml +312 -73
  23. package/src/helm-charts/prom-operator/rules/redis-rules.yaml +136 -75
  24. package/src/helm-charts/prom-operator/rules/traefik-rules.yaml +48 -21
  25. package/src/helm-charts/prom-operator/stackdriver-exporter.yaml.ovh +21 -1
  26. package/src/helm-charts/redis/helmup.plugin +1 -1
  27. package/src/helm-charts/traefik/helmup.plugin +1 -1
  28. package/src/helm-charts/velero/helmup.plugin +1 -1
  29. package/src/helm-charts/velero/{velero-local.yaml → values-local.yaml} +1 -1
  30. package/src/helmup.sh +43 -10
  31. package/src/templates/cloudBuildSteps.hbs +6 -2
  32. package/src/helm-charts/cnpg-operator/cnpg-cleanup-snapshot-cronjob.yaml +0 -73
  33. package/src/helm-charts/prom-operator/rules/awesome-k8s.yaml +0 -326
  34. package/src/helm-charts/prom-operator/rules/kubernetes-rules.yaml +0 -109
@@ -0,0 +1,109 @@
1
+ # https://samber.github.io/awesome-prometheus-alerts/rules#docker-containers
2
+ apiVersion: monitoring.coreos.com/v1
3
+ kind: PrometheusRule
4
+ metadata:
5
+ name: google-cadvisor
6
+ namespace: prometheus
7
+ spec:
8
+ groups:
9
+ - name: Cadvisor (awesome) # GoogleCadvisor-rules
10
+ rules:
11
+ - alert: ContainerKilled
12
+ expr: time() - container_last_seen > 60
13
+ for: 0m
14
+ labels:
15
+ severity: warning
16
+ annotations:
17
+ summary: Container killed (instance {{ $labels.instance }})
18
+ description: |-
19
+ A container has disappeared
20
+ VALUE = {{ $value }}
21
+ LABELS = {{ $labels }}
22
+ - alert: ContainerAbsent
23
+ expr: absent(container_last_seen)
24
+ for: 5m
25
+ labels:
26
+ severity: warning
27
+ annotations:
28
+ summary: Container absent (instance {{ $labels.instance }})
29
+ description: |-
30
+ A container is absent for 5 min
31
+ VALUE = {{ $value }}
32
+ LABELS = {{ $labels }}
33
+ - alert: ContainerHighCpuUtilization
34
+ expr: (sum(rate(container_cpu_usage_seconds_total{container!=""}[5m])) by (pod, container) / sum(container_spec_cpu_quota{container!=""}/container_spec_cpu_period{container!=""}) by (pod, container) * 100) > 80
35
+ for: 2m
36
+ labels:
37
+ severity: warning
38
+ annotations:
39
+ summary: Container High CPU utilization (instance {{ $labels.instance }})
40
+ description: |-
41
+ Container CPU utilization is above 80%
42
+ VALUE = {{ $value }}
43
+ LABELS = {{ $labels }}
44
+ - alert: ContainerHighMemoryUsage
45
+ expr: (sum(container_memory_working_set_bytes{name!=""}) BY (instance, name) / sum(container_spec_memory_limit_bytes > 0) BY (instance, name) * 100) > 80
46
+ for: 2m
47
+ labels:
48
+ severity: warning
49
+ annotations:
50
+ summary: Container High Memory usage (instance {{ $labels.instance }})
51
+ description: |-
52
+ Container Memory usage is above 80%
53
+ VALUE = {{ $value }}
54
+ LABELS = {{ $labels }}
55
+ - alert: ContainerVolumeUsage
56
+ expr: (1 - (sum(container_fs_inodes_free{name!=""}) BY (instance) / sum(container_fs_inodes_total) BY (instance))) * 100 > 80
57
+ for: 2m
58
+ labels:
59
+ severity: warning
60
+ annotations:
61
+ summary: Container Volume usage (instance {{ $labels.instance }})
62
+ description: |-
63
+ Container Volume usage is above 80%
64
+ VALUE = {{ $value }}
65
+ LABELS = {{ $labels }}
66
+ - alert: ContainerHighThrottleRate
67
+ expr: sum(increase(container_cpu_cfs_throttled_periods_total{container!=""}[5m])) by (container, pod, namespace) / sum(increase(container_cpu_cfs_periods_total[5m])) by (container, pod, namespace) > ( 25 / 100 )
68
+ for: 5m
69
+ labels:
70
+ severity: warning
71
+ annotations:
72
+ summary: Container high throttle rate (instance {{ $labels.instance }})
73
+ description: |-
74
+ Container is being throttled
75
+ VALUE = {{ $value }}
76
+ LABELS = {{ $labels }}
77
+ # - alert: ContainerHighLowChangeCpuUsage
78
+ # expr: (abs((sum by (instance, name) (rate(container_cpu_usage_seconds_total{name!=""}[1m])) * 100) - (sum by (instance, name) (rate(container_cpu_usage_seconds_total{name!=""}[1m] offset 1m)) * 100)) or abs((sum by (instance, name) (rate(container_cpu_usage_seconds_total{name!=""}[1m])) * 100) - (sum by (instance, name) (rate(container_cpu_usage_seconds_total{name!=""}[5m] offset 1m)) * 100))) > 25
79
+ # for: 0m
80
+ # labels:
81
+ # severity: info
82
+ # annotations:
83
+ # summary: Container high low change CPU usage (instance {{ $labels.instance }})
84
+ # description: |-
85
+ # This alert rule monitors the absolute change in CPU usage within a time window and triggers an alert when the change exceeds 25%.
86
+ # VALUE = {{ $value }}
87
+ # LABELS = {{ $labels }}
88
+ - alert: ContainerLowCpuUtilization
89
+ expr: (sum(rate(container_cpu_usage_seconds_total{container!=""}[5m])) by (pod, container) / sum(container_spec_cpu_quota{container!=""}/container_spec_cpu_period{container!=""}) by (pod, container) * 100) < 20
90
+ for: 7d
91
+ labels:
92
+ severity: info
93
+ annotations:
94
+ summary: Container Low CPU utilization (instance {{ $labels.instance }})
95
+ description: |-
96
+ Container CPU utilization is under 20% for 1 week. Consider reducing the allocated CPU.
97
+ VALUE = {{ $value }}
98
+ LABELS = {{ $labels }}
99
+ - alert: ContainerLowMemoryUsage
100
+ expr: (sum(container_memory_working_set_bytes{name!=""}) BY (instance, name) / sum(container_spec_memory_limit_bytes > 0) BY (instance, name) * 100) < 20
101
+ for: 7d
102
+ labels:
103
+ severity: info
104
+ annotations:
105
+ summary: Container Low Memory usage (instance {{ $labels.instance }})
106
+ description: |-
107
+ Container Memory usage is under 20% for 1 week. Consider reducing the allocated memory.
108
+ VALUE = {{ $value }}
109
+ LABELS = {{ $labels }}
@@ -1,101 +1,219 @@
1
+ # https://samber.github.io/awesome-prometheus-alerts/rules#elasticsearch
1
2
  apiVersion: monitoring.coreos.com/v1
2
3
  kind: PrometheusRule
3
4
  metadata:
4
- name: elasticsearch-rules
5
+ name: prometheus-community-elasticsearch-exporter
5
6
  namespace: prometheus
6
-
7
7
  spec:
8
8
  groups:
9
- - name: Elasticsearch Alerts
10
- rules:
11
- - alert: ElasticsearchHeapUsageTooHigh
12
- expr: (elasticsearch_jvm_memory_used_bytes{area="heap"} / elasticsearch_jvm_memory_max_bytes{area="heap"}) * 100 > 90
13
- for: 5m
14
- labels:
15
- severity: page
16
- priority: P3
17
- annotations:
18
- summary: "Elasticsearch Heap Usage Too High (instance {{ $labels.instance }})"
19
- description: "The heap usage is over 90% for 5m (currently at {{ $value }}% )"
20
-
21
- - alert: ElasticsearchHeapUsageWarning
22
- expr: (elasticsearch_jvm_memory_used_bytes{area="heap"} / elasticsearch_jvm_memory_max_bytes{area="heap"}) * 100 > 80
23
- for: 5m
24
- labels:
25
- severity: warning
26
- annotations:
27
- summary: "Elasticsearch Heap Usage warning (instance {{ $labels.instance }})"
28
- description: "The heap usage is over 80% for 5m (currently at {{ $value }}% )"
29
-
30
- - alert: ElasticsearchDiskSpaceLow
31
- expr: elasticsearch_filesystem_data_available_bytes / elasticsearch_filesystem_data_size_bytes * 100 < 20
32
- for: 5m
33
- labels:
34
- severity: warning
35
- annotations:
36
- summary: "Elasticsearch disk space low (instance {{ $labels.instance }})"
37
- description: "The disk usage is over 80% (currently at {{ $value }}% )"
38
-
39
- - alert: ElasticsearchDiskOutOfSpace
40
- expr: elasticsearch_filesystem_data_available_bytes / elasticsearch_filesystem_data_size_bytes * 100 < 10
41
- for: 5m
42
- labels:
43
- severity: page
44
- priority: P3
45
- annotations:
46
- summary: "Elasticsearch disk out of space (instance {{ $labels.instance }})"
47
- description: "The disk usage is over 90% (currently at {{ $value }}% )"
48
-
49
- - alert: ElasticsearchClusterRed
50
- expr: elasticsearch_cluster_health_status{color="red"} == 1
51
- for: 5m
52
- labels:
53
- severity: error
54
- annotations:
55
- summary: "Elasticsearch Cluster Red (instance {{ $labels.instance }})"
56
- description: "Elastic Cluster is in an unhealthy state"
57
-
58
- - alert: ElasticsearchClusterYellow
59
- expr: elasticsearch_cluster_health_status{color="yellow"} == 1
60
- for: 5m
61
- labels:
62
- severity: warning
63
- annotations:
64
- summary: "Elasticsearch Cluster Yellow (instance {{ $labels.instance }})"
65
- description: "Elastic Cluster is in an unhealthy state"
66
-
67
- - alert: ElasticsearchRelocationShards
68
- expr: elasticsearch_cluster_health_relocating_shards > 0
69
- for: 5m
70
- labels:
71
- severity: error
72
- annotations:
73
- summary: "Elasticsearch relocation shards (instance {{ $labels.instance }})"
74
- description: "Number of relocation shards for 20 min is {{ $value }}"
75
-
76
- - alert: ElasticsearchInitializingShards
77
- expr: elasticsearch_cluster_health_initializing_shards > 0
78
- for: 5m
79
- labels:
80
- severity: warning
81
- annotations:
82
- summary: "Elasticsearch initializing shards (instance {{ $labels.instance }})"
83
- description: "Number of initializing shards for 10 min is {{ $value }}"
84
-
85
- - alert: ElasticsearchUnassignedShards
86
- expr: elasticsearch_cluster_health_unassigned_shards > 0
87
- for: 5m
88
- labels:
89
- severity: error
90
- annotations:
91
- summary: "Elasticsearch unassigned shards (instance {{ $labels.instance }})"
92
- description: "Number of unassigned shards for 2 min is {{ $value }}"
93
-
94
- - alert: ElasticsearchPendingTasks
95
- expr: elasticsearch_cluster_health_number_of_pending_tasks > 0
96
- for: 5m
97
- labels:
98
- severity: warning
99
- annotations:
100
- summary: "Elasticsearch pending tasks (instance {{ $labels.instance }})"
101
- description: "Number of pending tasks for 10 min is {{ $value }}. Cluster is working slowly."
9
+ - name: Elasticsearch (awesome) # PrometheusCommunityElasticsearchExporter-rules
10
+ rules:
11
+ - alert: ElasticsearchHeapUsageTooHigh
12
+ expr: (elasticsearch_jvm_memory_used_bytes{area="heap"} / elasticsearch_jvm_memory_max_bytes{area="heap"}) * 100 > 90
13
+ for: 2m
14
+ labels:
15
+ severity: critical
16
+ annotations:
17
+ summary: Elasticsearch Heap Usage Too High (instance {{ $labels.instance }})
18
+ description: |-
19
+ The heap usage is over 90%
20
+ VALUE = {{ $value }}
21
+ LABELS = {{ $labels }}
22
+ - alert: ElasticsearchHeapUsageWarning
23
+ expr: (elasticsearch_jvm_memory_used_bytes{area="heap"} / elasticsearch_jvm_memory_max_bytes{area="heap"}) * 100 > 80
24
+ for: 2m
25
+ labels:
26
+ severity: warning
27
+ annotations:
28
+ summary: Elasticsearch Heap Usage warning (instance {{ $labels.instance }})
29
+ description: |-
30
+ The heap usage is over 80%
31
+ VALUE = {{ $value }}
32
+ LABELS = {{ $labels }}
33
+ - alert: ElasticsearchDiskOutOfSpace
34
+ expr: elasticsearch_filesystem_data_available_bytes / elasticsearch_filesystem_data_size_bytes * 100 < 10
35
+ for: 0m
36
+ labels:
37
+ severity: critical
38
+ annotations:
39
+ summary: Elasticsearch disk out of space (instance {{ $labels.instance }})
40
+ description: |-
41
+ The disk usage is over 90%
42
+ VALUE = {{ $value }}
43
+ LABELS = {{ $labels }}
44
+ - alert: ElasticsearchDiskSpaceLow
45
+ expr: elasticsearch_filesystem_data_available_bytes / elasticsearch_filesystem_data_size_bytes * 100 < 20
46
+ for: 2m
47
+ labels:
48
+ severity: warning
49
+ annotations:
50
+ summary: Elasticsearch disk space low (instance {{ $labels.instance }})
51
+ description: |-
52
+ The disk usage is over 80%
53
+ VALUE = {{ $value }}
54
+ LABELS = {{ $labels }}
55
+ - alert: ElasticsearchClusterRed
56
+ expr: elasticsearch_cluster_health_status{color="red"} == 1
57
+ for: 0m
58
+ labels:
59
+ severity: critical
60
+ annotations:
61
+ summary: Elasticsearch Cluster Red (instance {{ $labels.instance }})
62
+ description: |-
63
+ Elastic Cluster Red status
64
+ VALUE = {{ $value }}
65
+ LABELS = {{ $labels }}
66
+ - alert: ElasticsearchClusterYellow
67
+ expr: elasticsearch_cluster_health_status{color="yellow"} == 1
68
+ for: 0m
69
+ labels:
70
+ severity: warning
71
+ annotations:
72
+ summary: Elasticsearch Cluster Yellow (instance {{ $labels.instance }})
73
+ description: |-
74
+ Elastic Cluster Yellow status
75
+ VALUE = {{ $value }}
76
+ LABELS = {{ $labels }}
77
+ - alert: ElasticsearchHealthyNodes
78
+ expr: elasticsearch_cluster_health_number_of_nodes < 3
79
+ for: 0m
80
+ labels:
81
+ severity: critical
82
+ annotations:
83
+ summary: Elasticsearch Healthy Nodes (instance {{ $labels.instance }})
84
+ description: |-
85
+ Missing node in Elasticsearch cluster
86
+ VALUE = {{ $value }}
87
+ LABELS = {{ $labels }}
88
+ - alert: ElasticsearchHealthyDataNodes
89
+ expr: elasticsearch_cluster_health_number_of_data_nodes < 3
90
+ for: 0m
91
+ labels:
92
+ severity: critical
93
+ annotations:
94
+ summary: Elasticsearch Healthy Data Nodes (instance {{ $labels.instance }})
95
+ description: |-
96
+ Missing data node in Elasticsearch cluster
97
+ VALUE = {{ $value }}
98
+ LABELS = {{ $labels }}
99
+ - alert: ElasticsearchRelocatingShards
100
+ expr: elasticsearch_cluster_health_relocating_shards > 0
101
+ for: 0m
102
+ labels:
103
+ severity: info
104
+ annotations:
105
+ summary: Elasticsearch relocating shards (instance {{ $labels.instance }})
106
+ description: |-
107
+ Elasticsearch is relocating shards
108
+ VALUE = {{ $value }}
109
+ LABELS = {{ $labels }}
110
+ - alert: ElasticsearchRelocatingShardsTooLong
111
+ expr: elasticsearch_cluster_health_relocating_shards > 0
112
+ for: 15m
113
+ labels:
114
+ severity: warning
115
+ annotations:
116
+ summary: Elasticsearch relocating shards too long (instance {{ $labels.instance }})
117
+ description: |-
118
+ Elasticsearch has been relocating shards for 15min
119
+ VALUE = {{ $value }}
120
+ LABELS = {{ $labels }}
121
+ - alert: ElasticsearchInitializingShards
122
+ expr: elasticsearch_cluster_health_initializing_shards > 0
123
+ for: 0m
124
+ labels:
125
+ severity: info
126
+ annotations:
127
+ summary: Elasticsearch initializing shards (instance {{ $labels.instance }})
128
+ description: |-
129
+ Elasticsearch is initializing shards
130
+ VALUE = {{ $value }}
131
+ LABELS = {{ $labels }}
132
+ - alert: ElasticsearchInitializingShardsTooLong
133
+ expr: elasticsearch_cluster_health_initializing_shards > 0
134
+ for: 15m
135
+ labels:
136
+ severity: warning
137
+ annotations:
138
+ summary: Elasticsearch initializing shards too long (instance {{ $labels.instance }})
139
+ description: |-
140
+ Elasticsearch has been initializing shards for 15 min
141
+ VALUE = {{ $value }}
142
+ LABELS = {{ $labels }}
143
+ - alert: ElasticsearchUnassignedShards
144
+ expr: elasticsearch_cluster_health_unassigned_shards > 0
145
+ for: 0m
146
+ labels:
147
+ severity: critical
148
+ annotations:
149
+ summary: Elasticsearch unassigned shards (instance {{ $labels.instance }})
150
+ description: |-
151
+ Elasticsearch has unassigned shards
152
+ VALUE = {{ $value }}
153
+ LABELS = {{ $labels }}
154
+ - alert: ElasticsearchPendingTasks
155
+ expr: elasticsearch_cluster_health_number_of_pending_tasks > 0
156
+ for: 15m
157
+ labels:
158
+ severity: warning
159
+ annotations:
160
+ summary: Elasticsearch pending tasks (instance {{ $labels.instance }})
161
+ description: |-
162
+ Elasticsearch has pending tasks. Cluster works slowly.
163
+ VALUE = {{ $value }}
164
+ LABELS = {{ $labels }}
165
+ - alert: ElasticsearchNoNewDocuments
166
+ expr: increase(elasticsearch_indices_indexing_index_total{es_data_node="true"}[10m]) < 1
167
+ for: 0m
168
+ labels:
169
+ severity: warning
170
+ annotations:
171
+ summary: Elasticsearch no new documents (instance {{ $labels.instance }})
172
+ description: |-
173
+ No new documents for 10 min!
174
+ VALUE = {{ $value }}
175
+ LABELS = {{ $labels }}
176
+ - alert: ElasticsearchHighIndexingLatency
177
+ expr: elasticsearch_indices_indexing_index_time_seconds_total / elasticsearch_indices_indexing_index_total > 0.0005
178
+ for: 10m
179
+ labels:
180
+ severity: warning
181
+ annotations:
182
+ summary: Elasticsearch High Indexing Latency (instance {{ $labels.instance }})
183
+ description: |-
184
+ The indexing latency on Elasticsearch cluster is higher than the threshold.
185
+ VALUE = {{ $value }}
186
+ LABELS = {{ $labels }}
187
+ - alert: ElasticsearchHighIndexingRate
188
+ expr: sum(rate(elasticsearch_indices_indexing_index_total[1m]))> 10000
189
+ for: 5m
190
+ labels:
191
+ severity: warning
192
+ annotations:
193
+ summary: Elasticsearch High Indexing Rate (instance {{ $labels.instance }})
194
+ description: |-
195
+ The indexing rate on Elasticsearch cluster is higher than the threshold.
196
+ VALUE = {{ $value }}
197
+ LABELS = {{ $labels }}
198
+ - alert: ElasticsearchHighQueryRate
199
+ expr: sum(rate(elasticsearch_indices_search_query_total[1m])) > 100
200
+ for: 5m
201
+ labels:
202
+ severity: warning
203
+ annotations:
204
+ summary: Elasticsearch High Query Rate (instance {{ $labels.instance }})
205
+ description: |-
206
+ The query rate on Elasticsearch cluster is higher than the threshold.
207
+ VALUE = {{ $value }}
208
+ LABELS = {{ $labels }}
209
+ - alert: ElasticsearchHighQueryLatency
210
+ expr: elasticsearch_indices_search_fetch_time_seconds / elasticsearch_indices_search_fetch_total > 1
211
+ for: 5m
212
+ labels:
213
+ severity: warning
214
+ annotations:
215
+ summary: Elasticsearch High Query Latency (instance {{ $labels.instance }})
216
+ description: |-
217
+ The query latency on Elasticsearch cluster is higher than the threshold.
218
+ VALUE = {{ $value }}
219
+ LABELS = {{ $labels }}
@@ -0,0 +1,153 @@
1
+ # https://samber.github.io/awesome-prometheus-alerts/rules#etcd
2
+ apiVersion: monitoring.coreos.com/v1
3
+ kind: PrometheusRule
4
+ metadata:
5
+ name: etcd-exporter # embedded-exporter
6
+ namespace: prometheus
7
+ spec:
8
+ groups:
9
+ - name: Etcd (awesome) # EmbeddedExporter-rules
10
+ rules:
11
+ - alert: EtcdInsufficientMembers
12
+ expr: count(etcd_server_id) % 2 == 0
13
+ for: 0m
14
+ labels:
15
+ severity: critical
16
+ annotations:
17
+ summary: Etcd insufficient Members (instance {{ $labels.instance }})
18
+ description: |-
19
+ Etcd cluster should have an odd number of members
20
+ VALUE = {{ $value }}
21
+ LABELS = {{ $labels }}
22
+ - alert: EtcdNoLeader
23
+ expr: etcd_server_has_leader == 0
24
+ for: 0m
25
+ labels:
26
+ severity: critical
27
+ annotations:
28
+ summary: Etcd no Leader (instance {{ $labels.instance }})
29
+ description: |-
30
+ Etcd cluster have no leader
31
+ VALUE = {{ $value }}
32
+ LABELS = {{ $labels }}
33
+ - alert: EtcdHighNumberOfLeaderChanges
34
+ expr: increase(etcd_server_leader_changes_seen_total[10m]) > 2
35
+ for: 0m
36
+ labels:
37
+ severity: warning
38
+ annotations:
39
+ summary: Etcd high number of leader changes (instance {{ $labels.instance }})
40
+ description: |-
41
+ Etcd leader changed more than 2 times during 10 minutes
42
+ VALUE = {{ $value }}
43
+ LABELS = {{ $labels }}
44
+ - alert: EtcdHighNumberOfFailedGrpcRequests
45
+ expr: sum(rate(grpc_server_handled_total{grpc_code!="OK"}[1m])) BY (grpc_service, grpc_method) / sum(rate(grpc_server_handled_total[1m])) BY (grpc_service, grpc_method) > 0.01
46
+ for: 2m
47
+ labels:
48
+ severity: warning
49
+ annotations:
50
+ summary: Etcd high number of failed GRPC requests (instance {{ $labels.instance }})
51
+ description: |-
52
+ More than 1% GRPC request failure detected in Etcd
53
+ VALUE = {{ $value }}
54
+ LABELS = {{ $labels }}
55
+ - alert: EtcdHighNumberOfFailedGrpcRequests
56
+ expr: sum(rate(grpc_server_handled_total{grpc_code!="OK"}[1m])) BY (grpc_service, grpc_method) / sum(rate(grpc_server_handled_total[1m])) BY (grpc_service, grpc_method) > 0.05
57
+ for: 2m
58
+ labels:
59
+ severity: critical
60
+ annotations:
61
+ summary: Etcd high number of failed GRPC requests (instance {{ $labels.instance }})
62
+ description: |-
63
+ More than 5% GRPC request failure detected in Etcd
64
+ VALUE = {{ $value }}
65
+ LABELS = {{ $labels }}
66
+ - alert: EtcdGrpcRequestsSlow
67
+ expr: histogram_quantile(0.99, sum(rate(grpc_server_handling_seconds_bucket{grpc_type="unary"}[1m])) by (grpc_service, grpc_method, le)) > 0.15
68
+ for: 2m
69
+ labels:
70
+ severity: warning
71
+ annotations:
72
+ summary: Etcd GRPC requests slow (instance {{ $labels.instance }})
73
+ description: |-
74
+ GRPC requests slowing down, 99th percentile is over 0.15s
75
+ VALUE = {{ $value }}
76
+ LABELS = {{ $labels }}
77
+ - alert: EtcdHighNumberOfFailedHttpRequests
78
+ expr: sum(rate(etcd_http_failed_total[1m])) BY (method) / sum(rate(etcd_http_received_total[1m])) BY (method) > 0.01
79
+ for: 2m
80
+ labels:
81
+ severity: warning
82
+ annotations:
83
+ summary: Etcd high number of failed HTTP requests (instance {{ $labels.instance }})
84
+ description: |-
85
+ More than 1% HTTP failure detected in Etcd
86
+ VALUE = {{ $value }}
87
+ LABELS = {{ $labels }}
88
+ - alert: EtcdHighNumberOfFailedHttpRequests
89
+ expr: sum(rate(etcd_http_failed_total[1m])) BY (method) / sum(rate(etcd_http_received_total[1m])) BY (method) > 0.05
90
+ for: 2m
91
+ labels:
92
+ severity: critical
93
+ annotations:
94
+ summary: Etcd high number of failed HTTP requests (instance {{ $labels.instance }})
95
+ description: |-
96
+ More than 5% HTTP failure detected in Etcd
97
+ VALUE = {{ $value }}
98
+ LABELS = {{ $labels }}
99
+ - alert: EtcdHttpRequestsSlow
100
+ expr: histogram_quantile(0.99, rate(etcd_http_successful_duration_seconds_bucket[1m])) > 0.15
101
+ for: 2m
102
+ labels:
103
+ severity: warning
104
+ annotations:
105
+ summary: Etcd HTTP requests slow (instance {{ $labels.instance }})
106
+ description: |-
107
+ HTTP requests slowing down, 99th percentile is over 0.15s
108
+ VALUE = {{ $value }}
109
+ LABELS = {{ $labels }}
110
+ - alert: EtcdMemberCommunicationSlow
111
+ expr: histogram_quantile(0.99, rate(etcd_network_peer_round_trip_time_seconds_bucket[1m])) > 0.15
112
+ for: 2m
113
+ labels:
114
+ severity: warning
115
+ annotations:
116
+ summary: Etcd member communication slow (instance {{ $labels.instance }})
117
+ description: |-
118
+ Etcd member communication slowing down, 99th percentile is over 0.15s
119
+ VALUE = {{ $value }}
120
+ LABELS = {{ $labels }}
121
+ - alert: EtcdHighNumberOfFailedProposals
122
+ expr: increase(etcd_server_proposals_failed_total[1h]) > 5
123
+ for: 2m
124
+ labels:
125
+ severity: warning
126
+ annotations:
127
+ summary: Etcd high number of failed proposals (instance {{ $labels.instance }})
128
+ description: |-
129
+ Etcd server got more than 5 failed proposals past hour
130
+ VALUE = {{ $value }}
131
+ LABELS = {{ $labels }}
132
+ - alert: EtcdHighFsyncDurations
133
+ expr: histogram_quantile(0.99, rate(etcd_disk_wal_fsync_duration_seconds_bucket[1m])) > 0.5
134
+ for: 2m
135
+ labels:
136
+ severity: warning
137
+ annotations:
138
+ summary: Etcd high fsync durations (instance {{ $labels.instance }})
139
+ description: |-
140
+ Etcd WAL fsync duration increasing, 99th percentile is over 0.5s
141
+ VALUE = {{ $value }}
142
+ LABELS = {{ $labels }}
143
+ - alert: EtcdHighCommitDurations
144
+ expr: histogram_quantile(0.99, rate(etcd_disk_backend_commit_duration_seconds_bucket[1m])) > 0.25
145
+ for: 2m
146
+ labels:
147
+ severity: warning
148
+ annotations:
149
+ summary: Etcd high commit durations (instance {{ $labels.instance }})
150
+ description: |-
151
+ Etcd commit duration increasing, 99th percentile is over 0.25s
152
+ VALUE = {{ $value }}
153
+ LABELS = {{ $labels }}