@leverege/build-tools 2.96.8 → 2.97.0
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.
- package/.vscode/launch.json +21 -1
- package/package.json +10 -10
- package/src/Utils.mjs +6 -1
- package/src/artifacts/Utils.mjs +5 -2
- package/src/build-cnpg-image.mjs +0 -1
- package/src/chart-compass.yaml +1 -1
- package/src/chart-to-registry.mjs +10 -1
- package/src/helm-charts/api-server/values-local.yaml +3 -0
- package/src/helm-charts/cnpg-db-psql-stack/cluster.yaml.ovh +37 -32
- package/src/helm-charts/cnpg-db-psql-stack/pooler.yaml +2 -0
- package/src/helm-charts/cnpg-db-recovery/cluster.yaml.ovh +1 -1
- package/src/helm-charts/cnpg-db-tsdb-basic/cluster.yaml.ovh +50 -46
- package/src/helm-charts/cnpg-db-tsdb-basic/pooler.yaml +2 -0
- package/src/helm-charts/cnpg-db-tsdb-dense/cluster.yaml.ovh +55 -47
- package/src/helm-charts/cnpg-db-tsdb-dense/pooler.yaml +2 -0
- package/src/helm-charts/cnpg-operator/helmup.bootstrap +8 -0
- package/src/helm-charts/cnpg-operator/helmup.plugin +29 -4
- package/src/helm-charts/db-curator/values-local.yaml +9 -1
- package/src/helm-charts/elasticsearch8/elasticsearch-local.yaml +54 -51
- package/src/helm-charts/emailer/values-local.yaml +4 -1
- package/src/helm-charts/messenger/values-local.yaml +1 -5
- package/src/helm-charts/pgbouncer/values-local.yaml +8 -3
- package/src/helm-charts/prom-operator/helmup.bootstrap +8 -5
- package/src/helm-charts/prom-operator/helmup.plugin +1 -1
- package/src/helm-charts/prom-operator/prometheus-stack.yaml.ovh +51 -11
- package/src/helm-charts/prom-operator/rules/elasticsearch-rules.yaml +1 -1
- package/src/helm-charts/prom-operator/rules/kubestate-rules.yaml +1 -1
- package/src/helm-charts/push-notifier/values-local.yaml +8 -0
- package/src/helm-charts/redis/values-local.yaml +2 -1
- package/src/helm-charts/traefik/values-local.yaml +1 -1
- package/src/helm-charts/transponder-dh/values-local.yaml +1 -0
- package/src/helm-charts/transponder-tsdb/values-local.yaml +1 -0
- package/src/helm-charts/velero/helmup.plugin +2 -2
- package/src/helm-charts/velero/values-local.yaml +17 -15
- package/src/helmdn.sh +1 -1
- package/src/helmup.sh +3 -3
- package/src/init-my-chart/Chartwright.mjs +69 -0
- package/src/init-my-chart/init-my-chart-v1.mjs +124 -0
- package/src/init-my-chart/init-my-chart.mjs +80 -0
- package/src/init-my-chart/leaf-chart-templates/Chart.yaml.hbs +10 -0
- package/src/init-my-chart/leaf-chart-templates/templates/configmap.yaml +1 -0
- package/src/init-my-chart/leaf-chart-templates/templates/deployment.yaml +1 -0
- package/src/init-my-chart/leaf-chart-templates/templates/hpa.yaml +1 -0
- package/src/init-my-chart/leaf-chart-templates/templates/pdb.yaml +1 -0
- package/src/init-my-chart/leaf-chart-templates/templates/service.yaml +1 -0
- package/src/init-my-chart/leaf-chart-templates/templates/serviceaccount.yaml +1 -0
- package/src/init-my-chart/leaf-chart-templates/templates/servicemonitor.yaml +1 -0
- package/src/init-my-chart/leaf-chart-templates/values.schema.json +623 -0
- package/src/init-my-chart/leaf-chart-templates/values.yaml.hbs +135 -0
- package/src/init-my-chart/legacy-helm-template/Chart.yaml +5 -0
- package/src/init-my-chart/legacy-helm-template/templates/NOTES.txt +5 -0
- package/src/init-my-chart/legacy-helm-template/templates/_helpers.tpl +135 -0
- package/src/init-my-chart/legacy-helm-template/templates/configmap.yaml +10 -0
- package/src/init-my-chart/legacy-helm-template/templates/deployment.yaml +125 -0
- package/src/init-my-chart/legacy-helm-template/templates/hpa.yaml +26 -0
- package/src/init-my-chart/legacy-helm-template/templates/ingressroute.yaml +18 -0
- package/src/init-my-chart/legacy-helm-template/templates/pdb.yaml +22 -0
- package/src/init-my-chart/legacy-helm-template/templates/service.yaml +15 -0
- package/src/init-my-chart/legacy-helm-template/templates/serviceaccount.yaml +13 -0
- package/src/init-my-chart/legacy-helm-template/templates/servicemonitor.yaml +23 -0
- package/src/init-my-chart/legacy-helm-template/values.yaml +152 -0
- package/src/testOauthLogic.mjs +12 -0
- package/leverege-build-tools-2.21.13.tgz +0 -0
- package/lib/server/build-tools.js +0 -138
- package/lib/server/firebaseDeploy.js +0 -195
- package/lib/server/firebaseServe.js +0 -116
- package/lib/server/getfbcfg.js +0 -25
- package/lib/server/getjson.js +0 -70
- package/lib/server/overwhelm.js +0 -447
- package/lib/server/push-my-chart.js +0 -18
- package/lib/server/refresh-npm-token.js +0 -135
- package/lib/server/tag-release.js +0 -681
- package/lib/server/unleash.js +0 -50
- package/lib/web/build-tools.js +0 -138
- package/lib/web/firebaseDeploy.js +0 -195
- package/lib/web/firebaseServe.js +0 -116
- package/lib/web/getfbcfg.js +0 -25
- package/lib/web/getjson.js +0 -70
- package/lib/web/overwhelm.js +0 -447
- package/lib/web/push-my-chart.js +0 -18
- package/lib/web/refresh-npm-token.js +0 -135
- package/lib/web/tag-release.js +0 -681
- package/lib/web/unleash.js +0 -50
- package/src/helm-charts/prom-operator/rules/awesome-base/elasticsearch-rules.yaml +0 -219
- package/src/helm-charts/prom-operator/rules/awesome-base/google-cadvisor.yaml +0 -108
- package/src/helm-charts/prom-operator/rules/awesome-base/kubestate-exporter.yaml +0 -394
- package/src/helm-charts/prom-operator/rules/awesome-base/prometheus-rules.yaml +0 -318
- package/src/helm-charts/prom-operator/rules/awesome-base/redis-rules.yaml +0 -142
- package/src/helm-charts/prom-operator/rules/awesome-base/traefik-rules.yaml +0 -43
- package/src/init-my-chart.mjs +0 -18
|
@@ -1,394 +0,0 @@
|
|
|
1
|
-
# https://samber.github.io/awesome-prometheus-alerts/rules#kubernetes
|
|
2
|
-
apiVersion: monitoring.coreos.com/v1
|
|
3
|
-
kind: PrometheusRule
|
|
4
|
-
metadata:
|
|
5
|
-
name: kubestate-exporter
|
|
6
|
-
spec:
|
|
7
|
-
groups:
|
|
8
|
-
- name: Kubestate (awesome) # KubestateExporter-rules
|
|
9
|
-
rules:
|
|
10
|
-
- alert: KubernetesNodeNotReady
|
|
11
|
-
expr: kube_node_status_condition{condition="Ready",status="true"} == 0
|
|
12
|
-
for: 10m
|
|
13
|
-
labels:
|
|
14
|
-
severity: critical
|
|
15
|
-
annotations:
|
|
16
|
-
summary: Kubernetes Node ready (node {{ $labels.node }})
|
|
17
|
-
description: |-
|
|
18
|
-
Node {{ $labels.node }} has been unready for a long time
|
|
19
|
-
VALUE = {{ $value }}
|
|
20
|
-
LABELS = {{ $labels }}
|
|
21
|
-
- alert: KubernetesNodeMemoryPressure
|
|
22
|
-
expr: kube_node_status_condition{condition="MemoryPressure",status="true"} == 1
|
|
23
|
-
for: 2m
|
|
24
|
-
labels:
|
|
25
|
-
severity: critical
|
|
26
|
-
annotations:
|
|
27
|
-
summary: Kubernetes memory pressure (node {{ $labels.node }})
|
|
28
|
-
description: |-
|
|
29
|
-
Node {{ $labels.node }} has MemoryPressure condition
|
|
30
|
-
VALUE = {{ $value }}
|
|
31
|
-
LABELS = {{ $labels }}
|
|
32
|
-
- alert: KubernetesNodeDiskPressure
|
|
33
|
-
expr: kube_node_status_condition{condition="DiskPressure",status="true"} == 1
|
|
34
|
-
for: 2m
|
|
35
|
-
labels:
|
|
36
|
-
severity: critical
|
|
37
|
-
annotations:
|
|
38
|
-
summary: Kubernetes disk pressure (node {{ $labels.node }})
|
|
39
|
-
description: |-
|
|
40
|
-
Node {{ $labels.node }} has DiskPressure condition
|
|
41
|
-
VALUE = {{ $value }}
|
|
42
|
-
LABELS = {{ $labels }}
|
|
43
|
-
- alert: KubernetesNodeNetworkUnavailable
|
|
44
|
-
expr: kube_node_status_condition{condition="NetworkUnavailable",status="true"} == 1
|
|
45
|
-
for: 2m
|
|
46
|
-
labels:
|
|
47
|
-
severity: critical
|
|
48
|
-
annotations:
|
|
49
|
-
summary: Kubernetes Node network unavailable (instance {{ $labels.instance }})
|
|
50
|
-
description: |-
|
|
51
|
-
Node {{ $labels.node }} has NetworkUnavailable condition
|
|
52
|
-
VALUE = {{ $value }}
|
|
53
|
-
LABELS = {{ $labels }}
|
|
54
|
-
- alert: KubernetesNodeOutOfPodCapacity
|
|
55
|
-
expr: sum by (node) ((kube_pod_status_phase{phase="Running"} == 1) + on(uid, instance) group_left(node) (0 * kube_pod_info{pod_template_hash=""})) / sum by (node) (kube_node_status_allocatable{resource="pods"}) * 100 > 90
|
|
56
|
-
for: 2m
|
|
57
|
-
labels:
|
|
58
|
-
severity: warning
|
|
59
|
-
annotations:
|
|
60
|
-
summary: Kubernetes Node out of pod capacity (instance {{ $labels.instance }})
|
|
61
|
-
description: |-
|
|
62
|
-
Node {{ $labels.node }} is out of pod capacity
|
|
63
|
-
VALUE = {{ $value }}
|
|
64
|
-
LABELS = {{ $labels }}
|
|
65
|
-
- alert: KubernetesContainerOomKiller
|
|
66
|
-
expr: (kube_pod_container_status_restarts_total - kube_pod_container_status_restarts_total offset 10m >= 1) and ignoring (reason) min_over_time(kube_pod_container_status_last_terminated_reason{reason="OOMKilled"}[10m]) == 1
|
|
67
|
-
for: 0m
|
|
68
|
-
labels:
|
|
69
|
-
severity: warning
|
|
70
|
-
annotations:
|
|
71
|
-
summary: Kubernetes container oom killer ({{ $labels.namespace }}/{{ $labels.pod }}:{{ $labels.container }})
|
|
72
|
-
description: |-
|
|
73
|
-
Container {{ $labels.container }} in pod {{ $labels.namespace }}/{{ $labels.pod }} has been OOMKilled {{ $value }} times in the last 10 minutes.
|
|
74
|
-
VALUE = {{ $value }}
|
|
75
|
-
LABELS = {{ $labels }}
|
|
76
|
-
- alert: KubernetesJobFailed
|
|
77
|
-
expr: kube_job_status_failed > 0
|
|
78
|
-
for: 0m
|
|
79
|
-
labels:
|
|
80
|
-
severity: warning
|
|
81
|
-
annotations:
|
|
82
|
-
summary: Kubernetes Job failed ({{ $labels.namespace }}/{{ $labels.job_name }})
|
|
83
|
-
description: |-
|
|
84
|
-
Job {{ $labels.namespace }}/{{ $labels.job_name }} failed to complete
|
|
85
|
-
VALUE = {{ $value }}
|
|
86
|
-
LABELS = {{ $labels }}
|
|
87
|
-
- alert: KubernetesJobNotStarting
|
|
88
|
-
expr: kube_job_status_active == 0 and kube_job_status_failed == 0 and kube_job_status_succeeded == 0 and (time() - kube_job_status_start_time) > 600
|
|
89
|
-
for: 0m
|
|
90
|
-
labels:
|
|
91
|
-
severity: warning
|
|
92
|
-
annotations:
|
|
93
|
-
summary: Kubernetes Job not starting ({{ $labels.namespace }}/{{ $labels.job_name }})
|
|
94
|
-
description: |-
|
|
95
|
-
Job {{ $labels.namespace }}/{{ $labels.job_name }} did not start for 10 minutes
|
|
96
|
-
VALUE = {{ $value }}
|
|
97
|
-
LABELS = {{ $labels }}
|
|
98
|
-
- alert: KubernetesCronjobSuspended
|
|
99
|
-
expr: kube_cronjob_spec_suspend != 0
|
|
100
|
-
for: 0m
|
|
101
|
-
labels:
|
|
102
|
-
severity: warning
|
|
103
|
-
annotations:
|
|
104
|
-
summary: Kubernetes CronJob suspended ({{ $labels.namespace }}/{{ $labels.cronjob }})
|
|
105
|
-
description: |-
|
|
106
|
-
CronJob {{ $labels.namespace }}/{{ $labels.cronjob }} is suspended
|
|
107
|
-
VALUE = {{ $value }}
|
|
108
|
-
LABELS = {{ $labels }}
|
|
109
|
-
- alert: KubernetesPersistentvolumeclaimPending
|
|
110
|
-
expr: kube_persistentvolumeclaim_status_phase{phase="Pending"} == 1
|
|
111
|
-
for: 2m
|
|
112
|
-
labels:
|
|
113
|
-
severity: warning
|
|
114
|
-
annotations:
|
|
115
|
-
summary: Kubernetes PersistentVolumeClaim pending ({{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }})
|
|
116
|
-
description: |-
|
|
117
|
-
PersistentVolumeClaim {{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }} is pending
|
|
118
|
-
VALUE = {{ $value }}
|
|
119
|
-
LABELS = {{ $labels }}
|
|
120
|
-
- alert: KubernetesVolumeOutOfDiskSpace
|
|
121
|
-
expr: kubelet_volume_stats_available_bytes / kubelet_volume_stats_capacity_bytes * 100 < 10
|
|
122
|
-
for: 2m
|
|
123
|
-
labels:
|
|
124
|
-
severity: warning
|
|
125
|
-
annotations:
|
|
126
|
-
summary: Kubernetes Volume out of disk space (instance {{ $labels.instance }})
|
|
127
|
-
description: |-
|
|
128
|
-
Volume is almost full (< 10% left)
|
|
129
|
-
VALUE = {{ $value }}
|
|
130
|
-
LABELS = {{ $labels }}
|
|
131
|
-
- alert: KubernetesVolumeFullInFourDays
|
|
132
|
-
expr: predict_linear(kubelet_volume_stats_available_bytes[6h:5m], 4 * 24 * 3600) < 0
|
|
133
|
-
for: 0m
|
|
134
|
-
labels:
|
|
135
|
-
severity: critical
|
|
136
|
-
annotations:
|
|
137
|
-
summary: Kubernetes Volume full in four days (instance {{ $labels.instance }})
|
|
138
|
-
description: |-
|
|
139
|
-
Volume under {{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }} is expected to fill up within four days. Currently {{ $value | humanize }}% is available.
|
|
140
|
-
VALUE = {{ $value }}
|
|
141
|
-
LABELS = {{ $labels }}
|
|
142
|
-
- alert: KubernetesPersistentvolumeError
|
|
143
|
-
expr: kube_persistentvolume_status_phase{phase=~"Failed|Pending", job="kube-state-metrics"} > 0
|
|
144
|
-
for: 0m
|
|
145
|
-
labels:
|
|
146
|
-
severity: critical
|
|
147
|
-
annotations:
|
|
148
|
-
summary: Kubernetes PersistentVolumeClaim pending ({{ $labels.namespace }}/{{ $labels.persistentvolumeclaim }})
|
|
149
|
-
description: |-
|
|
150
|
-
Persistent volume {{ $labels.persistentvolume }} is in bad state
|
|
151
|
-
VALUE = {{ $value }}
|
|
152
|
-
LABELS = {{ $labels }}
|
|
153
|
-
- alert: KubernetesStatefulsetDown
|
|
154
|
-
expr: kube_statefulset_replicas != kube_statefulset_status_replicas_ready > 0
|
|
155
|
-
for: 1m
|
|
156
|
-
labels:
|
|
157
|
-
severity: critical
|
|
158
|
-
annotations:
|
|
159
|
-
summary: Kubernetes StatefulSet down ({{ $labels.namespace }}/{{ $labels.statefulset }})
|
|
160
|
-
description: |-
|
|
161
|
-
StatefulSet {{ $labels.namespace }}/{{ $labels.statefulset }} went down
|
|
162
|
-
VALUE = {{ $value }}
|
|
163
|
-
LABELS = {{ $labels }}
|
|
164
|
-
- alert: KubernetesHpaScaleInability
|
|
165
|
-
expr: (kube_horizontalpodautoscaler_spec_max_replicas - kube_horizontalpodautoscaler_status_desired_replicas) * on (horizontalpodautoscaler,namespace) (kube_horizontalpodautoscaler_status_condition{condition="ScalingLimited", status="true"} == 1) == 0
|
|
166
|
-
for: 2m
|
|
167
|
-
labels:
|
|
168
|
-
severity: warning
|
|
169
|
-
annotations:
|
|
170
|
-
summary: Kubernetes HPA scale inability (instance {{ $labels.instance }})
|
|
171
|
-
description: |-
|
|
172
|
-
HPA {{ $labels.namespace }}/{{ $labels.horizontalpodautoscaler }} is unable to scale
|
|
173
|
-
VALUE = {{ $value }}
|
|
174
|
-
LABELS = {{ $labels }}
|
|
175
|
-
- alert: KubernetesHpaMetricsUnavailability
|
|
176
|
-
expr: kube_horizontalpodautoscaler_status_condition{status="false", condition="ScalingActive"} == 1
|
|
177
|
-
for: 0m
|
|
178
|
-
labels:
|
|
179
|
-
severity: warning
|
|
180
|
-
annotations:
|
|
181
|
-
summary: Kubernetes HPA metrics unavailability (instance {{ $labels.instance }})
|
|
182
|
-
description: |-
|
|
183
|
-
HPA {{ $labels.namespace }}/{{ $labels.horizontalpodautoscaler }} is unable to collect metrics
|
|
184
|
-
VALUE = {{ $value }}
|
|
185
|
-
LABELS = {{ $labels }}
|
|
186
|
-
- alert: KubernetesHpaScaleMaximum
|
|
187
|
-
expr: (kube_horizontalpodautoscaler_status_desired_replicas >= kube_horizontalpodautoscaler_spec_max_replicas) and (kube_horizontalpodautoscaler_spec_max_replicas > 1) and (kube_horizontalpodautoscaler_spec_min_replicas != kube_horizontalpodautoscaler_spec_max_replicas)
|
|
188
|
-
for: 2m
|
|
189
|
-
labels:
|
|
190
|
-
severity: info
|
|
191
|
-
annotations:
|
|
192
|
-
summary: Kubernetes HPA scale maximum (instance {{ $labels.instance }})
|
|
193
|
-
description: |-
|
|
194
|
-
HPA {{ $labels.namespace }}/{{ $labels.horizontalpodautoscaler }} has hit maximum number of desired pods
|
|
195
|
-
VALUE = {{ $value }}
|
|
196
|
-
LABELS = {{ $labels }}
|
|
197
|
-
- alert: KubernetesHpaUnderutilized
|
|
198
|
-
expr: max(quantile_over_time(0.5, kube_horizontalpodautoscaler_status_desired_replicas[1d]) == kube_horizontalpodautoscaler_spec_min_replicas) by (horizontalpodautoscaler) > 3
|
|
199
|
-
for: 0m
|
|
200
|
-
labels:
|
|
201
|
-
severity: info
|
|
202
|
-
annotations:
|
|
203
|
-
summary: Kubernetes HPA underutilized (instance {{ $labels.instance }})
|
|
204
|
-
description: |-
|
|
205
|
-
HPA {{ $labels.namespace }}/{{ $labels.horizontalpodautoscaler }} is constantly at minimum replicas for 50% of the time. Potential cost saving here.
|
|
206
|
-
VALUE = {{ $value }}
|
|
207
|
-
LABELS = {{ $labels }}
|
|
208
|
-
- alert: KubernetesPodNotHealthy
|
|
209
|
-
expr: sum by (namespace, pod) (kube_pod_status_phase{phase=~"Pending|Unknown|Failed"}) > 0
|
|
210
|
-
for: 15m
|
|
211
|
-
labels:
|
|
212
|
-
severity: critical
|
|
213
|
-
annotations:
|
|
214
|
-
summary: Kubernetes Pod not healthy ({{ $labels.namespace }}/{{ $labels.pod }})
|
|
215
|
-
description: |-
|
|
216
|
-
Pod {{ $labels.namespace }}/{{ $labels.pod }} has been in a non-running state for longer than 15 minutes.
|
|
217
|
-
VALUE = {{ $value }}
|
|
218
|
-
LABELS = {{ $labels }}
|
|
219
|
-
- alert: KubernetesPodCrashLooping
|
|
220
|
-
expr: increase(kube_pod_container_status_restarts_total[1m]) > 3
|
|
221
|
-
for: 2m
|
|
222
|
-
labels:
|
|
223
|
-
severity: warning
|
|
224
|
-
annotations:
|
|
225
|
-
summary: Kubernetes pod crash looping ({{ $labels.namespace }}/{{ $labels.pod }})
|
|
226
|
-
description: |-
|
|
227
|
-
Pod {{ $labels.namespace }}/{{ $labels.pod }} is crash looping
|
|
228
|
-
VALUE = {{ $value }}
|
|
229
|
-
LABELS = {{ $labels }}
|
|
230
|
-
- alert: KubernetesReplicasetReplicasMismatch
|
|
231
|
-
expr: kube_replicaset_spec_replicas != kube_replicaset_status_ready_replicas
|
|
232
|
-
for: 10m
|
|
233
|
-
labels:
|
|
234
|
-
severity: warning
|
|
235
|
-
annotations:
|
|
236
|
-
summary: Kubernetes ReplicasSet mismatch ({{ $labels.namespace }}/{{ $labels.replicaset }})
|
|
237
|
-
description: |-
|
|
238
|
-
ReplicaSet {{ $labels.namespace }}/{{ $labels.replicaset }} replicas mismatch
|
|
239
|
-
VALUE = {{ $value }}
|
|
240
|
-
LABELS = {{ $labels }}
|
|
241
|
-
- alert: KubernetesDeploymentReplicasMismatch
|
|
242
|
-
expr: kube_deployment_spec_replicas != kube_deployment_status_replicas_available
|
|
243
|
-
for: 10m
|
|
244
|
-
labels:
|
|
245
|
-
severity: warning
|
|
246
|
-
annotations:
|
|
247
|
-
summary: Kubernetes Deployment replicas mismatch ({{ $labels.namespace }}/{{ $labels.deployment }})
|
|
248
|
-
description: |-
|
|
249
|
-
Deployment {{ $labels.namespace }}/{{ $labels.deployment }} replicas mismatch
|
|
250
|
-
VALUE = {{ $value }}
|
|
251
|
-
LABELS = {{ $labels }}
|
|
252
|
-
- alert: KubernetesStatefulsetReplicasMismatch
|
|
253
|
-
expr: kube_statefulset_status_replicas_ready != kube_statefulset_status_replicas
|
|
254
|
-
for: 10m
|
|
255
|
-
labels:
|
|
256
|
-
severity: warning
|
|
257
|
-
annotations:
|
|
258
|
-
summary: Kubernetes StatefulSet replicas mismatch (instance {{ $labels.instance }})
|
|
259
|
-
description: |-
|
|
260
|
-
StatefulSet does not match the expected number of replicas.
|
|
261
|
-
VALUE = {{ $value }}
|
|
262
|
-
LABELS = {{ $labels }}
|
|
263
|
-
- alert: KubernetesDeploymentGenerationMismatch
|
|
264
|
-
expr: kube_deployment_status_observed_generation != kube_deployment_metadata_generation
|
|
265
|
-
for: 10m
|
|
266
|
-
labels:
|
|
267
|
-
severity: critical
|
|
268
|
-
annotations:
|
|
269
|
-
summary: Kubernetes Deployment generation mismatch ({{ $labels.namespace }}/{{ $labels.deployment }})
|
|
270
|
-
description: |-
|
|
271
|
-
Deployment {{ $labels.namespace }}/{{ $labels.deployment }} has failed but has not been rolled back.
|
|
272
|
-
VALUE = {{ $value }}
|
|
273
|
-
LABELS = {{ $labels }}
|
|
274
|
-
- alert: KubernetesStatefulsetGenerationMismatch
|
|
275
|
-
expr: kube_statefulset_status_observed_generation != kube_statefulset_metadata_generation
|
|
276
|
-
for: 10m
|
|
277
|
-
labels:
|
|
278
|
-
severity: critical
|
|
279
|
-
annotations:
|
|
280
|
-
summary: Kubernetes StatefulSet generation mismatch ({{ $labels.namespace }}/{{ $labels.statefulset }})
|
|
281
|
-
description: |-
|
|
282
|
-
StatefulSet {{ $labels.namespace }}/{{ $labels.statefulset }} has failed but has not been rolled back.
|
|
283
|
-
VALUE = {{ $value }}
|
|
284
|
-
LABELS = {{ $labels }}
|
|
285
|
-
- alert: KubernetesStatefulsetUpdateNotRolledOut
|
|
286
|
-
expr: max without (revision) (kube_statefulset_status_current_revision unless kube_statefulset_status_update_revision) * (kube_statefulset_replicas != kube_statefulset_status_replicas_updated)
|
|
287
|
-
for: 10m
|
|
288
|
-
labels:
|
|
289
|
-
severity: warning
|
|
290
|
-
annotations:
|
|
291
|
-
summary: Kubernetes StatefulSet update not rolled out ({{ $labels.namespace }}/{{ $labels.statefulset }})
|
|
292
|
-
description: |-
|
|
293
|
-
StatefulSet {{ $labels.namespace }}/{{ $labels.statefulset }} update has not been rolled out.
|
|
294
|
-
VALUE = {{ $value }}
|
|
295
|
-
LABELS = {{ $labels }}
|
|
296
|
-
- alert: KubernetesDaemonsetRolloutStuck
|
|
297
|
-
expr: kube_daemonset_status_number_ready / kube_daemonset_status_desired_number_scheduled * 100 < 100 or kube_daemonset_status_desired_number_scheduled - kube_daemonset_status_current_number_scheduled > 0
|
|
298
|
-
for: 10m
|
|
299
|
-
labels:
|
|
300
|
-
severity: warning
|
|
301
|
-
annotations:
|
|
302
|
-
summary: Kubernetes DaemonSet rollout stuck ({{ $labels.namespace }}/{{ $labels.daemonset }})
|
|
303
|
-
description: |-
|
|
304
|
-
Some Pods of DaemonSet {{ $labels.namespace }}/{{ $labels.daemonset }} are not scheduled or not ready
|
|
305
|
-
VALUE = {{ $value }}
|
|
306
|
-
LABELS = {{ $labels }}
|
|
307
|
-
- alert: KubernetesDaemonsetMisscheduled
|
|
308
|
-
expr: kube_daemonset_status_number_misscheduled > 0
|
|
309
|
-
for: 1m
|
|
310
|
-
labels:
|
|
311
|
-
severity: critical
|
|
312
|
-
annotations:
|
|
313
|
-
summary: Kubernetes DaemonSet misscheduled ({{ $labels.namespace }}/{{ $labels.daemonset }})
|
|
314
|
-
description: |-
|
|
315
|
-
Some Pods of DaemonSet {{ $labels.namespace }}/{{ $labels.daemonset }} are running where they are not supposed to run
|
|
316
|
-
VALUE = {{ $value }}
|
|
317
|
-
LABELS = {{ $labels }}
|
|
318
|
-
- alert: KubernetesCronjobTooLong
|
|
319
|
-
expr: time() - kube_cronjob_next_schedule_time > 3600
|
|
320
|
-
for: 0m
|
|
321
|
-
labels:
|
|
322
|
-
severity: warning
|
|
323
|
-
annotations:
|
|
324
|
-
summary: Kubernetes CronJob too long ({{ $labels.namespace }}/{{ $labels.cronjob }})
|
|
325
|
-
description: |-
|
|
326
|
-
CronJob {{ $labels.namespace }}/{{ $labels.cronjob }} is taking more than 1h to complete.
|
|
327
|
-
VALUE = {{ $value }}
|
|
328
|
-
LABELS = {{ $labels }}
|
|
329
|
-
- alert: KubernetesJobSlowCompletion
|
|
330
|
-
expr: kube_job_spec_completions - kube_job_status_succeeded - kube_job_status_failed > 0
|
|
331
|
-
for: 12h
|
|
332
|
-
labels:
|
|
333
|
-
severity: critical
|
|
334
|
-
annotations:
|
|
335
|
-
summary: Kubernetes job slow completion ({{ $labels.namespace }}/{{ $labels.job_name }})
|
|
336
|
-
description: |-
|
|
337
|
-
Kubernetes Job {{ $labels.namespace }}/{{ $labels.job_name }} did not complete in time.
|
|
338
|
-
VALUE = {{ $value }}
|
|
339
|
-
LABELS = {{ $labels }}
|
|
340
|
-
- alert: KubernetesApiServerErrors
|
|
341
|
-
expr: sum(rate(apiserver_request_total{job="apiserver",code=~"(?:5..)"}[1m])) by (instance, job) / sum(rate(apiserver_request_total{job="apiserver"}[1m])) by (instance, job) * 100 > 3
|
|
342
|
-
for: 2m
|
|
343
|
-
labels:
|
|
344
|
-
severity: critical
|
|
345
|
-
annotations:
|
|
346
|
-
summary: Kubernetes API server errors (instance {{ $labels.instance }})
|
|
347
|
-
description: |-
|
|
348
|
-
Kubernetes API server is experiencing high error rate
|
|
349
|
-
VALUE = {{ $value }}
|
|
350
|
-
LABELS = {{ $labels }}
|
|
351
|
-
- alert: KubernetesApiClientErrors
|
|
352
|
-
expr: (sum(rate(rest_client_requests_total{code=~"(4|5).."}[1m])) by (instance, job) / sum(rate(rest_client_requests_total[1m])) by (instance, job)) * 100 > 1
|
|
353
|
-
for: 2m
|
|
354
|
-
labels:
|
|
355
|
-
severity: critical
|
|
356
|
-
annotations:
|
|
357
|
-
summary: Kubernetes API client errors (instance {{ $labels.instance }})
|
|
358
|
-
description: |-
|
|
359
|
-
Kubernetes API client is experiencing high error rate
|
|
360
|
-
VALUE = {{ $value }}
|
|
361
|
-
LABELS = {{ $labels }}
|
|
362
|
-
- alert: KubernetesClientCertificateExpiresNextWeek
|
|
363
|
-
expr: apiserver_client_certificate_expiration_seconds_count{job="apiserver"} > 0 and histogram_quantile(0.01, sum by (job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job="apiserver"}[5m]))) < 7*24*60*60
|
|
364
|
-
for: 0m
|
|
365
|
-
labels:
|
|
366
|
-
severity: warning
|
|
367
|
-
annotations:
|
|
368
|
-
summary: Kubernetes client certificate expires next week (instance {{ $labels.instance }})
|
|
369
|
-
description: |-
|
|
370
|
-
A client certificate used to authenticate to the apiserver is expiring next week.
|
|
371
|
-
VALUE = {{ $value }}
|
|
372
|
-
LABELS = {{ $labels }}
|
|
373
|
-
- alert: KubernetesClientCertificateExpiresSoon
|
|
374
|
-
expr: apiserver_client_certificate_expiration_seconds_count{job="apiserver"} > 0 and histogram_quantile(0.01, sum by (job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job="apiserver"}[5m]))) < 24*60*60
|
|
375
|
-
for: 0m
|
|
376
|
-
labels:
|
|
377
|
-
severity: critical
|
|
378
|
-
annotations:
|
|
379
|
-
summary: Kubernetes client certificate expires soon (instance {{ $labels.instance }})
|
|
380
|
-
description: |-
|
|
381
|
-
A client certificate used to authenticate to the apiserver is expiring in less than 24.0 hours.
|
|
382
|
-
VALUE = {{ $value }}
|
|
383
|
-
LABELS = {{ $labels }}
|
|
384
|
-
- alert: KubernetesApiServerLatency
|
|
385
|
-
expr: histogram_quantile(0.99, sum(rate(apiserver_request_duration_seconds_bucket{verb!~"(?:CONNECT|WATCHLIST|WATCH|PROXY)"} [10m])) WITHOUT (subresource)) > 1
|
|
386
|
-
for: 2m
|
|
387
|
-
labels:
|
|
388
|
-
severity: warning
|
|
389
|
-
annotations:
|
|
390
|
-
summary: Kubernetes API server latency (instance {{ $labels.instance }})
|
|
391
|
-
description: |-
|
|
392
|
-
Kubernetes API server has a 99th percentile latency of {{ $value }} seconds for {{ $labels.verb }} {{ $labels.resource }}.
|
|
393
|
-
VALUE = {{ $value }}
|
|
394
|
-
LABELS = {{ $labels }}
|