update monitoring stack to latest
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
7a98de6d1f
commit
301e297d45
|
@ -18,7 +18,7 @@
|
||||||
"subdir": "Documentation/etcd-mixin"
|
"subdir": "Documentation/etcd-mixin"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": "4a64198a9f424549c64d6c2eeb92eed8ff3a7bd8",
|
"version": "ab494956bffb94b5e5cb088cebcf7572aad70d4a",
|
||||||
"sum": "pk7mLpdUrHuJKkj2vhD6LGMU7P+oYYooBXAeZyZa398="
|
"sum": "pk7mLpdUrHuJKkj2vhD6LGMU7P+oYYooBXAeZyZa398="
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -28,8 +28,8 @@
|
||||||
"subdir": "jsonnet/kube-prometheus"
|
"subdir": "jsonnet/kube-prometheus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": "d07466766d46710e54a627f913eea5661382331a",
|
"version": "f58d7b5695072bfcc15039969fd491a90b011aa8",
|
||||||
"sum": "vFv2xVX1SALKIOlQmcIvQ2pDKXqAbdBJ6zdGIrZUcis="
|
"sum": "0LX0oFnq5YHb3XNWxoakJiJQWFkf38bEWA1226nk0BU="
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"source": {
|
"source": {
|
||||||
|
@ -38,8 +38,8 @@
|
||||||
"subdir": "jsonnet/prometheus-operator"
|
"subdir": "jsonnet/prometheus-operator"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": "00cbd4911f931380cf9e19d771d7ebae1ec0a807",
|
"version": "d0a871b710de7b764c05ced98dbd1eb32a681790",
|
||||||
"sum": "PfB8G2nfy3e/BrXS1ayymsRRFJvQLWT+oY5aqLS0tE8="
|
"sum": "cIOKRTNBUOl3a+QsaA/NjClmZAhyVJHlDFReKlXJBAs="
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"source": {
|
"source": {
|
||||||
|
@ -48,8 +48,8 @@
|
||||||
"subdir": "grafonnet"
|
"subdir": "grafonnet"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": "f1ceb29c053445881cf47c8761225d463273f7e2",
|
"version": "7f971cae3e4dc5dc26d1a1991868e4810f73d6fb",
|
||||||
"sum": "PQ1u4FqaLkqmYF1tE/BNx6Db8roTei0uqo+SKCwRlbo="
|
"sum": "/7/gQuDrIcbpbpFCMWhe63RtZ66iT5ECTlJdhVTtUTM="
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"source": {
|
"source": {
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
"subdir": "grafana-builder"
|
"subdir": "grafana-builder"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": "d851699bb178b62deabb5532cdb9e48c1a83b1b9",
|
"version": "461d09cbda1bf520f94628c8159b444d4467862f",
|
||||||
"sum": "slxrtftVDiTlQK22ertdfrg4Epnq97gdrLI63ftUfaE="
|
"sum": "slxrtftVDiTlQK22ertdfrg4Epnq97gdrLI63ftUfaE="
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -79,8 +79,8 @@
|
||||||
"subdir": ""
|
"subdir": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": "90a6d132e3c9558c0690153c9b404b16b4754139",
|
"version": "37f8263d17bc9d429fece3d345365650587bc56c",
|
||||||
"sum": "RZn1B0sbrPEKenxKIrXGdDN3NGb9OesQ+IA5whAP4ik="
|
"sum": "n8CG7muquuYMFV03s5D3GA1JVyDLSFifcNRs2JpNfvA="
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"source": {
|
"source": {
|
||||||
|
@ -89,7 +89,7 @@
|
||||||
"subdir": "lib/promgrafonnet"
|
"subdir": "lib/promgrafonnet"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": "90a6d132e3c9558c0690153c9b404b16b4754139",
|
"version": "37f8263d17bc9d429fece3d345365650587bc56c",
|
||||||
"sum": "VhgBM39yv0f4bKv8VfGg4FXkg573evGDRalip9ypKbc="
|
"sum": "VhgBM39yv0f4bKv8VfGg4FXkg573evGDRalip9ypKbc="
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
"subdir": "jsonnet/kube-state-metrics"
|
"subdir": "jsonnet/kube-state-metrics"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": "765afc98be4b2a53b3b12c48df2cf93379932a29",
|
"version": "1d132e7e728face5ba35be3f3310139c98f3a001",
|
||||||
"sum": "cJjGZaLBjcIGrLHZLjRPU9c3KL+ep9rZTb9dbALSKqA="
|
"sum": "cJjGZaLBjcIGrLHZLjRPU9c3KL+ep9rZTb9dbALSKqA="
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
"subdir": "jsonnet/kube-state-metrics-mixin"
|
"subdir": "jsonnet/kube-state-metrics-mixin"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": "765afc98be4b2a53b3b12c48df2cf93379932a29",
|
"version": "1d132e7e728face5ba35be3f3310139c98f3a001",
|
||||||
"sum": "E1GGavnf9PCWBm4WVrxWnc0FIj72UcbcweqGioWrOdU="
|
"sum": "E1GGavnf9PCWBm4WVrxWnc0FIj72UcbcweqGioWrOdU="
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
"subdir": "documentation/prometheus-mixin"
|
"subdir": "documentation/prometheus-mixin"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": "0e2004f6fbe9eeddcd0c0084e401b5acb61760a4",
|
"version": "da217cbde262c056e5582a56d0ef7d353f7a163b",
|
||||||
"sum": "kRb3XBTe/AALDcaTFfyuiKqzhxtLvihBkVkvJ5cUd/I=",
|
"sum": "kRb3XBTe/AALDcaTFfyuiKqzhxtLvihBkVkvJ5cUd/I=",
|
||||||
"name": "prometheus"
|
"name": "prometheus"
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
spec:
|
spec:
|
||||||
encryptedData:
|
encryptedData:
|
||||||
alertmanager.yaml: AgB6MMnL2RsryYbKhQIyJvqXopB4wtUdotRShqk32jFScXUaJKMxPFF8t1Uhwpt1UPcjdrzOElEdHVX9nYj2LK+KGa23L5IV6ZACfjFLbHsn2PHA/kWDNCS7hLaAahSO2ByfoAnoGQp8OejsYDCSsp4NtkM+ooNgw1mGbO/yVNZZRDzccVLZFwJchsR0+26KEqzL3eHtsG40e7lf71uxBgYhvggukEeDfuuPDkKG4YeFJSQ7clURFhckbe+/MmnP+MHw7K9xkdlANl4Tu+e2+njm32PuZ34PKUrLQJBFSHG3DpGjPJBxBZbV7GP+T+VK5GQHrUZOewjgp5e4fDrqZvOVoASPJqY1C961bLjhwsTC8uzdJVHE78LR29hWnjlDBEbQdNsGwDoAHG0yBiC5N0rWfm+XNLh1+e96IF4OKp0/BVqNJaxrs6jlmTDMQEp4Q8JwVTqNSKfFr2jMMW0uI3ggqPAXnWDsLWLd9pD6gpbqGHELmG7dmPi2FQWBlnLXf4VllFbYzRpLZ12hKILBzWuhY6OkCSXfb/bbLyfxyjO8rWvgKxcm9RpjdwtiU4+wT6KKc1/x9nSvqqgaXq81ecHZr8EbJz6nAE/+0Qm1WhQ5wB89RtbX0K4D3i0e7P7JEB3mrSwdSxUd1JLyVKesWKwDiIiwpA7ljD6cTgmLS/00be1eHreqSJ0SLSODBkIadIH4Kc0tyO3/dbdRTkQC3pTQp5q7gVfJzPEGcmZFG0OUHHDXgigS4VUDalpTnaXXDj0Gjuq0+rf1Gu3ZuVC1QKwZ3W26eUrUz4NLtRDtJNYTgsrtJs+T3T3iQHjoO53vTp1TFDX6zGTaJd7yzis5CZWVIn4K8t1rcR/MexzR/Dk46HBLVJXuL0uN17RvFuKsCIFy0rR0BH8qbmWUwiqEfjDG4csBPgH5xAHWGVJHfPStILSZbDoZ/twms391umr+eVeZrSyjgb/W9MSsikqTJaMRH6gHByqljm5/fdmnF3G+Pe6wT8UTM4E1gSOwfmVaow2sqLCT0wdL/ZVOaJBPIG5MIBS7nSQ9nMsDVCmQp7TUD/XNp0M9hYB96AbJOElONQq+0aPzfMgyZElsAMO6Odkr8FBSitMe8lSz2WJvjF7XWPvOQrj1eaXOwNKawArvBjwMqEX5lnMcjHKFgSAOzeWjcEdnTFpifg6kmQn9hO2HKwNggXO8evT9undrnm8qj6vPcc+oXEgs2RlYk5pHUbf4V+O1KxVSBWJCIC2sXyacHI3Emkb5qkTw+Wv4BXla2JJSbLWn9o1hgOI88xpyZpnFG4A1Y/XVQa2002TFccF78UjxcFSA2c1XL0uQxJFkERNxwinrCPjXqA1i7CnCYH53ZpAGj/TqwAzZSZ1FN3L1s+Ro0ASiN/92ppeHhXGPhhTLhj1i4rr2qQ1XhixDSMQLgctAN0ebe2lnjG07yZodRaZbHHl4GfYfcxLCqemwHg5xVzbS4XP+70/hoWes9UVygK9rkzTUUN9IbbtZpgpGplnT3MymbqbYbrlAU59U/vSpxS6K3RUiTMz5IK6p5u7baMYeVuthUy3LU9r07P+vicwAlEQ6jEWKXQD1Q/Vhc5H0wUgZrTBcgo2w9JwT4QUhO1qzIKiUmMEWn1bDh1GaurRZtMRgjP5sfWGMGtUqMCVmAZvUbYsr8k6+1nn93xmn78QNOabtth8Ayfp6vHYeF4h3xA==
|
alertmanager.yaml: AgBXsELNPdwcMBR9vl4ZCj18D3aQHjsVXITCD2cshBl+o9fKHUkCYg2u9TOvt26Osi1rLo9ZV1QZthNBbp/65g+0l9lUXbWMeCHy80fCc0ISWf1+MN+L6Yeh71sNYY81HfaLoDWY48roanGN4IIF0hcEryVKfY9gOUzDkEag7ZY4lJ60/irUzUlTIEdak6IlwzGKpaokn0yitpbYRR1rkxIpdQ7jVJhCE5fSEw0xXU7NYuqOpKeYEZkHFCEMnLVnzIAVtMpJ0asLTnRFIj4hZa13USsX/Lm98Q41QTO0FpTNMurlCLgQPDTI5pdKJzyDFFOsMBwscO5T35ykXHcybsf6ykZ12gOlfhjfbU746/jCB3j5H0pGLmTRS1kChGaJOLpyXyTQeGpk79aJKOyn2ZaLxLpkfgFlK6amLH8QfOUJSTiCWvpMks38wnWlYKngT36kogUROY/72vBJKrz1bMkwOR+4ed4i+3KV/6K6d6vcMemmrXtgT8Z+2656vjLTDDIM1ztogACDI+urS49OigXiutzJlqbMGh2/IcSOeDaFO42qe1m4fDONAs4t0asuXmBv+eYbFffyRxVzkt5Or8jX1UUuy3ynzwHjjA+/PCVo5co32oL+kKQtM2FdYaNoHcikSNDog/XkUaTetE6WQAyS8o5+fT6SitirGOmQJyazYW71QT6O1aBW0vhowhcsvHxsV/5sfhZ7+M1SAdn/gI3VEYS46NNk4U3jg2u6JAXNbE4nObevS71HqcSRQjyPR+Od1DuCYiUm6HBk2lsIOZOstcLrhRpiKH7fNzEIlZUsWPwrosWMB+quks8tb1E2Xy4y8DkIyQ4hK9frNOfvORavjNUaBphw55A0/Bb9iXRIZ51KbtpqtEJWzO9Fhbu0iEoYLnkzx1h8JbSy+oHjPRIZJAwMdtLoWfc5liMrYaQu5/Y6qWWinnmZRKusQJLSgQIBcWQsJjwLZbbL/wvUU9Un6BBsMbH8sHdmqh1a8QPspFwFmOcxWWNrloHgACQfkDoh27LnMCFa7qloKI4JsQcp3uASiaOUEaU1Zidty3Y2zc8pvTY5iJhiagXIm7AnJLPzpmApqd6rniuan4IqR/rRW1yKXzvgRFW1B05tKSlg4XaZ87safhG8AAE2v0m3AStD7B68Ol7LGusGBiJcPJeGrDYWXae4TG+QcESdJ1GeulERjGtCgDvqCl/ylNYsR9Ud3wwk773JkIaq72OAi02pT01iruLYKAKIGZUyZOAwmWbkLvAMPB6HdKOq/oP/7uaylZu8YeuIFmj5gxv1fU2NQZecFQOwMww0D++6P8AhHRIeagSBAg3XFXhTNIzmOhqawdGNru2pfWSIBM32cGuJOdRQB+tYcEnaB/OFFSfAaiMbMTIgHhxHTHujPvyHIUXzG9CXSca+XjflP7e4KiBk3ztunWFlX/Dc42XHMIH+4vGTgYsMhZJl9Dyou/417Tr40vaSFQqfn6TaYQxH4zYbZt3dL3n9VtNlMRfPRDyjHEcuRib1DPPU4soI5jTVN6irfZ27IqFQNSqHsEBhhUV29M5T9UpuAhxR6l1O0WFEnumJbm4U72PEA2v5L/ooR4yKdO3/61MbCYjgI+nfFkxkj1Zd1yx789byhj5zeJCnTXw0SJvpSYCcQAAwd3a54qwO341NMwwKhvG57gBCy4j6fMtQY78fwbCFdCfGX7kKYfjdaw==
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
creationTimestamp: null
|
creationTimestamp: null
|
||||||
|
|
|
@ -25,7 +25,7 @@ spec:
|
||||||
- --metrics-relist-interval=1m
|
- --metrics-relist-interval=1m
|
||||||
- --prometheus-url=http://prometheus-k8s.monitoring.svc:9090/
|
- --prometheus-url=http://prometheus-k8s.monitoring.svc:9090/
|
||||||
- --secure-port=6443
|
- --secure-port=6443
|
||||||
image: quay.io/coreos/k8s-prometheus-adapter-amd64:v0.5.0
|
image: quay.io/coreos/k8s-prometheus-adapter-amd64:v0.7.0
|
||||||
name: prometheus-adapter
|
name: prometheus-adapter
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 6443
|
- containerPort: 6443
|
||||||
|
|
|
@ -4,7 +4,7 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/component: controller
|
app.kubernetes.io/component: controller
|
||||||
app.kubernetes.io/name: prometheus-operator
|
app.kubernetes.io/name: prometheus-operator
|
||||||
app.kubernetes.io/version: v0.38.1
|
app.kubernetes.io/version: v0.39.0
|
||||||
name: prometheus-operator
|
name: prometheus-operator
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
spec:
|
spec:
|
||||||
|
@ -19,4 +19,4 @@ spec:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app.kubernetes.io/component: controller
|
app.kubernetes.io/component: controller
|
||||||
app.kubernetes.io/name: prometheus-operator
|
app.kubernetes.io/name: prometheus-operator
|
||||||
app.kubernetes.io/version: v0.38.1
|
app.kubernetes.io/version: v0.39.0
|
||||||
|
|
|
@ -524,31 +524,31 @@ spec:
|
||||||
sum by (cluster, namespace, pod, container) (
|
sum by (cluster, namespace, pod, container) (
|
||||||
rate(container_cpu_usage_seconds_total{job="kubelet", metrics_path="/metrics/cadvisor", image!="", container!="POD"}[5m])
|
rate(container_cpu_usage_seconds_total{job="kubelet", metrics_path="/metrics/cadvisor", image!="", container!="POD"}[5m])
|
||||||
) * on (cluster, namespace, pod) group_left(node) topk by (cluster, namespace, pod) (
|
) * on (cluster, namespace, pod) group_left(node) topk by (cluster, namespace, pod) (
|
||||||
1, max by(cluster, namespace, pod, node) (kube_pod_info)
|
1, max by(cluster, namespace, pod, node) (kube_pod_info{node!=""})
|
||||||
)
|
)
|
||||||
record: node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate
|
record: node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate
|
||||||
- expr: |
|
- expr: |
|
||||||
container_memory_working_set_bytes{job="kubelet", metrics_path="/metrics/cadvisor", image!=""}
|
container_memory_working_set_bytes{job="kubelet", metrics_path="/metrics/cadvisor", image!=""}
|
||||||
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
||||||
max by(namespace, pod, node) (kube_pod_info)
|
max by(namespace, pod, node) (kube_pod_info{node!=""})
|
||||||
)
|
)
|
||||||
record: node_namespace_pod_container:container_memory_working_set_bytes
|
record: node_namespace_pod_container:container_memory_working_set_bytes
|
||||||
- expr: |
|
- expr: |
|
||||||
container_memory_rss{job="kubelet", metrics_path="/metrics/cadvisor", image!=""}
|
container_memory_rss{job="kubelet", metrics_path="/metrics/cadvisor", image!=""}
|
||||||
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
||||||
max by(namespace, pod, node) (kube_pod_info)
|
max by(namespace, pod, node) (kube_pod_info{node!=""})
|
||||||
)
|
)
|
||||||
record: node_namespace_pod_container:container_memory_rss
|
record: node_namespace_pod_container:container_memory_rss
|
||||||
- expr: |
|
- expr: |
|
||||||
container_memory_cache{job="kubelet", metrics_path="/metrics/cadvisor", image!=""}
|
container_memory_cache{job="kubelet", metrics_path="/metrics/cadvisor", image!=""}
|
||||||
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
||||||
max by(namespace, pod, node) (kube_pod_info)
|
max by(namespace, pod, node) (kube_pod_info{node!=""})
|
||||||
)
|
)
|
||||||
record: node_namespace_pod_container:container_memory_cache
|
record: node_namespace_pod_container:container_memory_cache
|
||||||
- expr: |
|
- expr: |
|
||||||
container_memory_swap{job="kubelet", metrics_path="/metrics/cadvisor", image!=""}
|
container_memory_swap{job="kubelet", metrics_path="/metrics/cadvisor", image!=""}
|
||||||
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
||||||
max by(namespace, pod, node) (kube_pod_info)
|
max by(namespace, pod, node) (kube_pod_info{node!=""})
|
||||||
)
|
)
|
||||||
record: node_namespace_pod_container:container_memory_swap
|
record: node_namespace_pod_container:container_memory_swap
|
||||||
- expr: |
|
- expr: |
|
||||||
|
@ -663,12 +663,12 @@ spec:
|
||||||
- name: node.rules
|
- name: node.rules
|
||||||
rules:
|
rules:
|
||||||
- expr: |
|
- expr: |
|
||||||
sum(min(kube_pod_info) by (cluster, node))
|
sum(min(kube_pod_info{node!=""}) by (cluster, node))
|
||||||
record: ':kube_pod_info_node_count:'
|
record: ':kube_pod_info_node_count:'
|
||||||
- expr: |
|
- expr: |
|
||||||
topk by(namespace, pod) (1,
|
topk by(namespace, pod) (1,
|
||||||
max by (node, namespace, pod) (
|
max by (node, namespace, pod) (
|
||||||
label_replace(kube_pod_info{job="kube-state-metrics"}, "pod", "$1", "pod", "(.*)")
|
label_replace(kube_pod_info{job="kube-state-metrics",node!=""}, "pod", "$1", "pod", "(.*)")
|
||||||
))
|
))
|
||||||
record: 'node_namespace_pod:kube_pod_info:'
|
record: 'node_namespace_pod:kube_pod_info:'
|
||||||
- expr: |
|
- expr: |
|
||||||
|
@ -977,7 +977,7 @@ spec:
|
||||||
}}) is restarting {{ printf "%.2f" $value }} times / 5 minutes.
|
}}) is restarting {{ printf "%.2f" $value }} times / 5 minutes.
|
||||||
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubepodcrashlooping
|
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubepodcrashlooping
|
||||||
expr: |
|
expr: |
|
||||||
rate(kube_pod_container_status_restarts_total{job="kube-state-metrics"}[15m]) * 60 * 5 > 0
|
rate(kube_pod_container_status_restarts_total{job="kube-state-metrics"}[5m]) * 60 * 5 > 0
|
||||||
for: 15m
|
for: 15m
|
||||||
labels:
|
labels:
|
||||||
severity: warning
|
severity: warning
|
||||||
|
@ -987,7 +987,13 @@ spec:
|
||||||
state for longer than 15 minutes.
|
state for longer than 15 minutes.
|
||||||
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubepodnotready
|
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubepodnotready
|
||||||
expr: |
|
expr: |
|
||||||
sum by (namespace, pod) (max by(namespace, pod) (kube_pod_status_phase{job="kube-state-metrics", phase=~"Pending|Unknown"}) * on(namespace, pod) group_left(owner_kind) max by(namespace, pod, owner_kind) (kube_pod_owner{owner_kind!="Job"})) > 0
|
sum by (namespace, pod) (
|
||||||
|
max by(namespace, pod) (
|
||||||
|
kube_pod_status_phase{job="kube-state-metrics", phase=~"Pending|Unknown"}
|
||||||
|
) * on(namespace, pod) group_left(owner_kind) topk by(namespace, pod) (
|
||||||
|
1, max by(namespace, pod, owner_kind) (kube_pod_owner{owner_kind!="Job"})
|
||||||
|
)
|
||||||
|
) > 0
|
||||||
for: 15m
|
for: 15m
|
||||||
labels:
|
labels:
|
||||||
severity: warning
|
severity: warning
|
||||||
|
@ -1472,8 +1478,7 @@ spec:
|
||||||
message: '{{ $labels.node }} is unreachable and some workloads may be rescheduled.'
|
message: '{{ $labels.node }} is unreachable and some workloads may be rescheduled.'
|
||||||
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubenodeunreachable
|
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubenodeunreachable
|
||||||
expr: |
|
expr: |
|
||||||
kube_node_spec_taint{job="kube-state-metrics",key="node.kubernetes.io/unreachable",effect="NoSchedule"} == 1
|
(kube_node_spec_taint{job="kube-state-metrics",key="node.kubernetes.io/unreachable",effect="NoSchedule"} unless ignoring(key,value) kube_node_spec_taint{job="kube-state-metrics",key="ToBeDeletedByClusterAutoscaler"}) == 1
|
||||||
for: 2m
|
|
||||||
labels:
|
labels:
|
||||||
severity: warning
|
severity: warning
|
||||||
- alert: KubeletTooManyPods
|
- alert: KubeletTooManyPods
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,4 @@
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
kind: CustomResourceDefinition
|
kind: CustomResourceDefinition
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
|
@ -13,247 +13,248 @@ spec:
|
||||||
plural: podmonitors
|
plural: podmonitors
|
||||||
singular: podmonitor
|
singular: podmonitor
|
||||||
scope: Namespaced
|
scope: Namespaced
|
||||||
validation:
|
versions:
|
||||||
openAPIV3Schema:
|
- name: v1
|
||||||
description: PodMonitor defines monitoring for a set of pods.
|
schema:
|
||||||
properties:
|
openAPIV3Schema:
|
||||||
apiVersion:
|
description: PodMonitor defines monitoring for a set of pods.
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
properties:
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
apiVersion:
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
description: 'APIVersion defines the versioned schema of this representation
|
||||||
type: string
|
of an object. Servers should convert recognized schemas to the latest
|
||||||
kind:
|
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||||
description: 'Kind is a string value representing the REST resource this
|
type: string
|
||||||
object represents. Servers may infer this from the endpoint the client
|
kind:
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
description: 'Kind is a string value representing the REST resource this
|
||||||
type: string
|
object represents. Servers may infer this from the endpoint the client
|
||||||
metadata:
|
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||||
type: object
|
type: string
|
||||||
spec:
|
metadata:
|
||||||
description: Specification of desired Pod selection for target discovery
|
type: object
|
||||||
by Prometheus.
|
spec:
|
||||||
properties:
|
description: Specification of desired Pod selection for target discovery
|
||||||
jobLabel:
|
by Prometheus.
|
||||||
description: The label to use to retrieve the job name from.
|
properties:
|
||||||
type: string
|
jobLabel:
|
||||||
namespaceSelector:
|
description: The label to use to retrieve the job name from.
|
||||||
description: Selector to select which namespaces the Endpoints objects
|
|
||||||
are discovered from.
|
|
||||||
properties:
|
|
||||||
any:
|
|
||||||
description: Boolean describing whether all namespaces are selected
|
|
||||||
in contrast to a list restricting them.
|
|
||||||
type: boolean
|
|
||||||
matchNames:
|
|
||||||
description: List of namespace names.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
podMetricsEndpoints:
|
|
||||||
description: A list of endpoints allowed as part of this PodMonitor.
|
|
||||||
items:
|
|
||||||
description: PodMetricsEndpoint defines a scrapeable endpoint of a
|
|
||||||
Kubernetes Pod serving Prometheus metrics.
|
|
||||||
properties:
|
|
||||||
honorLabels:
|
|
||||||
description: HonorLabels chooses the metric's labels on collisions
|
|
||||||
with target labels.
|
|
||||||
type: boolean
|
|
||||||
honorTimestamps:
|
|
||||||
description: HonorTimestamps controls whether Prometheus respects
|
|
||||||
the timestamps present in scraped data.
|
|
||||||
type: boolean
|
|
||||||
interval:
|
|
||||||
description: Interval at which metrics should be scraped
|
|
||||||
type: string
|
|
||||||
metricRelabelings:
|
|
||||||
description: MetricRelabelConfigs to apply to samples before ingestion.
|
|
||||||
items:
|
|
||||||
description: 'RelabelConfig allows dynamic rewriting of the
|
|
||||||
label set, being applied to samples before ingestion. It defines
|
|
||||||
`<metric_relabel_configs>`-section of Prometheus configuration.
|
|
||||||
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
|
|
||||||
properties:
|
|
||||||
action:
|
|
||||||
description: Action to perform based on regex matching.
|
|
||||||
Default is 'replace'
|
|
||||||
type: string
|
|
||||||
modulus:
|
|
||||||
description: Modulus to take of the hash of the source label
|
|
||||||
values.
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
regex:
|
|
||||||
description: Regular expression against which the extracted
|
|
||||||
value is matched. Default is '(.*)'
|
|
||||||
type: string
|
|
||||||
replacement:
|
|
||||||
description: Replacement value against which a regex replace
|
|
||||||
is performed if the regular expression matches. Regex
|
|
||||||
capture groups are available. Default is '$1'
|
|
||||||
type: string
|
|
||||||
separator:
|
|
||||||
description: Separator placed between concatenated source
|
|
||||||
label values. default is ';'.
|
|
||||||
type: string
|
|
||||||
sourceLabels:
|
|
||||||
description: The source labels select values from existing
|
|
||||||
labels. Their content is concatenated using the configured
|
|
||||||
separator and matched against the configured regular expression
|
|
||||||
for the replace, keep, and drop actions.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
targetLabel:
|
|
||||||
description: Label to which the resulting value is written
|
|
||||||
in a replace action. It is mandatory for replace actions.
|
|
||||||
Regex capture groups are available.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
params:
|
|
||||||
additionalProperties:
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
description: Optional HTTP URL parameters
|
|
||||||
type: object
|
|
||||||
path:
|
|
||||||
description: HTTP path to scrape for metrics.
|
|
||||||
type: string
|
|
||||||
port:
|
|
||||||
description: Name of the pod port this endpoint refers to. Mutually
|
|
||||||
exclusive with targetPort.
|
|
||||||
type: string
|
|
||||||
proxyUrl:
|
|
||||||
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
|
|
||||||
to proxy through this endpoint.
|
|
||||||
type: string
|
|
||||||
relabelings:
|
|
||||||
description: 'RelabelConfigs to apply to samples before ingestion.
|
|
||||||
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
|
|
||||||
items:
|
|
||||||
description: 'RelabelConfig allows dynamic rewriting of the
|
|
||||||
label set, being applied to samples before ingestion. It defines
|
|
||||||
`<metric_relabel_configs>`-section of Prometheus configuration.
|
|
||||||
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
|
|
||||||
properties:
|
|
||||||
action:
|
|
||||||
description: Action to perform based on regex matching.
|
|
||||||
Default is 'replace'
|
|
||||||
type: string
|
|
||||||
modulus:
|
|
||||||
description: Modulus to take of the hash of the source label
|
|
||||||
values.
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
regex:
|
|
||||||
description: Regular expression against which the extracted
|
|
||||||
value is matched. Default is '(.*)'
|
|
||||||
type: string
|
|
||||||
replacement:
|
|
||||||
description: Replacement value against which a regex replace
|
|
||||||
is performed if the regular expression matches. Regex
|
|
||||||
capture groups are available. Default is '$1'
|
|
||||||
type: string
|
|
||||||
separator:
|
|
||||||
description: Separator placed between concatenated source
|
|
||||||
label values. default is ';'.
|
|
||||||
type: string
|
|
||||||
sourceLabels:
|
|
||||||
description: The source labels select values from existing
|
|
||||||
labels. Their content is concatenated using the configured
|
|
||||||
separator and matched against the configured regular expression
|
|
||||||
for the replace, keep, and drop actions.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
targetLabel:
|
|
||||||
description: Label to which the resulting value is written
|
|
||||||
in a replace action. It is mandatory for replace actions.
|
|
||||||
Regex capture groups are available.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
scheme:
|
|
||||||
description: HTTP scheme to use for scraping.
|
|
||||||
type: string
|
|
||||||
scrapeTimeout:
|
|
||||||
description: Timeout after which the scrape is ended
|
|
||||||
type: string
|
|
||||||
targetPort:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: 'Deprecated: Use ''port'' instead.'
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
podTargetLabels:
|
|
||||||
description: PodTargetLabels transfers labels on the Kubernetes Pod
|
|
||||||
onto the target.
|
|
||||||
items:
|
|
||||||
type: string
|
type: string
|
||||||
type: array
|
namespaceSelector:
|
||||||
sampleLimit:
|
description: Selector to select which namespaces the Endpoints objects
|
||||||
description: SampleLimit defines per-scrape limit on number of scraped
|
are discovered from.
|
||||||
samples that will be accepted.
|
properties:
|
||||||
format: int64
|
any:
|
||||||
type: integer
|
description: Boolean describing whether all namespaces are selected
|
||||||
selector:
|
in contrast to a list restricting them.
|
||||||
description: Selector to select Pod objects.
|
type: boolean
|
||||||
properties:
|
matchNames:
|
||||||
matchExpressions:
|
description: List of namespace names.
|
||||||
description: matchExpressions is a list of label selector requirements.
|
items:
|
||||||
The requirements are ANDed.
|
type: string
|
||||||
items:
|
type: array
|
||||||
description: A label selector requirement is a selector that contains
|
type: object
|
||||||
values, a key, and an operator that relates the key and values.
|
podMetricsEndpoints:
|
||||||
properties:
|
description: A list of endpoints allowed as part of this PodMonitor.
|
||||||
key:
|
items:
|
||||||
description: key is the label key that the selector applies
|
description: PodMetricsEndpoint defines a scrapeable endpoint of
|
||||||
to.
|
a Kubernetes Pod serving Prometheus metrics.
|
||||||
type: string
|
properties:
|
||||||
operator:
|
honorLabels:
|
||||||
description: operator represents a key's relationship to a
|
description: HonorLabels chooses the metric's labels on collisions
|
||||||
set of values. Valid operators are In, NotIn, Exists and
|
with target labels.
|
||||||
DoesNotExist.
|
type: boolean
|
||||||
type: string
|
honorTimestamps:
|
||||||
values:
|
description: HonorTimestamps controls whether Prometheus respects
|
||||||
description: values is an array of string values. If the operator
|
the timestamps present in scraped data.
|
||||||
is In or NotIn, the values array must be non-empty. If the
|
type: boolean
|
||||||
operator is Exists or DoesNotExist, the values array must
|
interval:
|
||||||
be empty. This array is replaced during a strategic merge
|
description: Interval at which metrics should be scraped
|
||||||
patch.
|
type: string
|
||||||
|
metricRelabelings:
|
||||||
|
description: MetricRelabelConfigs to apply to samples before
|
||||||
|
ingestion.
|
||||||
|
items:
|
||||||
|
description: 'RelabelConfig allows dynamic rewriting of the
|
||||||
|
label set, being applied to samples before ingestion. It
|
||||||
|
defines `<metric_relabel_configs>`-section of Prometheus
|
||||||
|
configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
|
||||||
|
properties:
|
||||||
|
action:
|
||||||
|
description: Action to perform based on regex matching.
|
||||||
|
Default is 'replace'
|
||||||
|
type: string
|
||||||
|
modulus:
|
||||||
|
description: Modulus to take of the hash of the source
|
||||||
|
label values.
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
regex:
|
||||||
|
description: Regular expression against which the extracted
|
||||||
|
value is matched. Default is '(.*)'
|
||||||
|
type: string
|
||||||
|
replacement:
|
||||||
|
description: Replacement value against which a regex replace
|
||||||
|
is performed if the regular expression matches. Regex
|
||||||
|
capture groups are available. Default is '$1'
|
||||||
|
type: string
|
||||||
|
separator:
|
||||||
|
description: Separator placed between concatenated source
|
||||||
|
label values. default is ';'.
|
||||||
|
type: string
|
||||||
|
sourceLabels:
|
||||||
|
description: The source labels select values from existing
|
||||||
|
labels. Their content is concatenated using the configured
|
||||||
|
separator and matched against the configured regular
|
||||||
|
expression for the replace, keep, and drop actions.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
targetLabel:
|
||||||
|
description: Label to which the resulting value is written
|
||||||
|
in a replace action. It is mandatory for replace actions.
|
||||||
|
Regex capture groups are available.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
params:
|
||||||
|
additionalProperties:
|
||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
required:
|
description: Optional HTTP URL parameters
|
||||||
- key
|
type: object
|
||||||
- operator
|
path:
|
||||||
type: object
|
description: HTTP path to scrape for metrics.
|
||||||
type: array
|
type: string
|
||||||
matchLabels:
|
port:
|
||||||
additionalProperties:
|
description: Name of the pod port this endpoint refers to. Mutually
|
||||||
type: string
|
exclusive with targetPort.
|
||||||
description: matchLabels is a map of {key,value} pairs. A single
|
type: string
|
||||||
{key,value} in the matchLabels map is equivalent to an element
|
proxyUrl:
|
||||||
of matchExpressions, whose key field is "key", the operator is
|
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
|
||||||
"In", and the values array contains only "value". The requirements
|
to proxy through this endpoint.
|
||||||
are ANDed.
|
type: string
|
||||||
|
relabelings:
|
||||||
|
description: 'RelabelConfigs to apply to samples before ingestion.
|
||||||
|
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
|
||||||
|
items:
|
||||||
|
description: 'RelabelConfig allows dynamic rewriting of the
|
||||||
|
label set, being applied to samples before ingestion. It
|
||||||
|
defines `<metric_relabel_configs>`-section of Prometheus
|
||||||
|
configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
|
||||||
|
properties:
|
||||||
|
action:
|
||||||
|
description: Action to perform based on regex matching.
|
||||||
|
Default is 'replace'
|
||||||
|
type: string
|
||||||
|
modulus:
|
||||||
|
description: Modulus to take of the hash of the source
|
||||||
|
label values.
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
regex:
|
||||||
|
description: Regular expression against which the extracted
|
||||||
|
value is matched. Default is '(.*)'
|
||||||
|
type: string
|
||||||
|
replacement:
|
||||||
|
description: Replacement value against which a regex replace
|
||||||
|
is performed if the regular expression matches. Regex
|
||||||
|
capture groups are available. Default is '$1'
|
||||||
|
type: string
|
||||||
|
separator:
|
||||||
|
description: Separator placed between concatenated source
|
||||||
|
label values. default is ';'.
|
||||||
|
type: string
|
||||||
|
sourceLabels:
|
||||||
|
description: The source labels select values from existing
|
||||||
|
labels. Their content is concatenated using the configured
|
||||||
|
separator and matched against the configured regular
|
||||||
|
expression for the replace, keep, and drop actions.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
targetLabel:
|
||||||
|
description: Label to which the resulting value is written
|
||||||
|
in a replace action. It is mandatory for replace actions.
|
||||||
|
Regex capture groups are available.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
scheme:
|
||||||
|
description: HTTP scheme to use for scraping.
|
||||||
|
type: string
|
||||||
|
scrapeTimeout:
|
||||||
|
description: Timeout after which the scrape is ended
|
||||||
|
type: string
|
||||||
|
targetPort:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
description: 'Deprecated: Use ''port'' instead.'
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: array
|
||||||
required:
|
podTargetLabels:
|
||||||
- podMetricsEndpoints
|
description: PodTargetLabels transfers labels on the Kubernetes Pod
|
||||||
- selector
|
onto the target.
|
||||||
type: object
|
items:
|
||||||
required:
|
type: string
|
||||||
- spec
|
type: array
|
||||||
type: object
|
sampleLimit:
|
||||||
version: v1
|
description: SampleLimit defines per-scrape limit on number of scraped
|
||||||
versions:
|
samples that will be accepted.
|
||||||
- name: v1
|
format: int64
|
||||||
|
type: integer
|
||||||
|
selector:
|
||||||
|
description: Selector to select Pod objects.
|
||||||
|
properties:
|
||||||
|
matchExpressions:
|
||||||
|
description: matchExpressions is a list of label selector requirements.
|
||||||
|
The requirements are ANDed.
|
||||||
|
items:
|
||||||
|
description: A label selector requirement is a selector that
|
||||||
|
contains values, a key, and an operator that relates the key
|
||||||
|
and values.
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
description: key is the label key that the selector applies
|
||||||
|
to.
|
||||||
|
type: string
|
||||||
|
operator:
|
||||||
|
description: operator represents a key's relationship to
|
||||||
|
a set of values. Valid operators are In, NotIn, Exists
|
||||||
|
and DoesNotExist.
|
||||||
|
type: string
|
||||||
|
values:
|
||||||
|
description: values is an array of string values. If the
|
||||||
|
operator is In or NotIn, the values array must be non-empty.
|
||||||
|
If the operator is Exists or DoesNotExist, the values
|
||||||
|
array must be empty. This array is replaced during a strategic
|
||||||
|
merge patch.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
- operator
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
matchLabels:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: matchLabels is a map of {key,value} pairs. A single
|
||||||
|
{key,value} in the matchLabels map is equivalent to an element
|
||||||
|
of matchExpressions, whose key field is "key", the operator
|
||||||
|
is "In", and the values array contains only "value". The requirements
|
||||||
|
are ANDed.
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- podMetricsEndpoints
|
||||||
|
- selector
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
served: true
|
served: true
|
||||||
storage: true
|
storage: true
|
||||||
status:
|
status:
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,4 @@
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
kind: CustomResourceDefinition
|
kind: CustomResourceDefinition
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
|
@ -13,78 +13,77 @@ spec:
|
||||||
plural: prometheusrules
|
plural: prometheusrules
|
||||||
singular: prometheusrule
|
singular: prometheusrule
|
||||||
scope: Namespaced
|
scope: Namespaced
|
||||||
validation:
|
|
||||||
openAPIV3Schema:
|
|
||||||
description: PrometheusRule defines alerting rules for a Prometheus instance
|
|
||||||
properties:
|
|
||||||
apiVersion:
|
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
|
||||||
type: string
|
|
||||||
kind:
|
|
||||||
description: 'Kind is a string value representing the REST resource this
|
|
||||||
object represents. Servers may infer this from the endpoint the client
|
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
|
||||||
type: string
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
spec:
|
|
||||||
description: Specification of desired alerting rule definitions for Prometheus.
|
|
||||||
properties:
|
|
||||||
groups:
|
|
||||||
description: Content of Prometheus rule file
|
|
||||||
items:
|
|
||||||
description: 'RuleGroup is a list of sequentially evaluated recording
|
|
||||||
and alerting rules. Note: PartialResponseStrategy is only used by
|
|
||||||
ThanosRuler and will be ignored by Prometheus instances. Valid
|
|
||||||
values for this field are ''warn'' or ''abort''. More info: https://github.com/thanos-io/thanos/blob/master/docs/components/rule.md#partial-response'
|
|
||||||
properties:
|
|
||||||
interval:
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
partial_response_strategy:
|
|
||||||
type: string
|
|
||||||
rules:
|
|
||||||
items:
|
|
||||||
description: Rule describes an alerting or recording rule.
|
|
||||||
properties:
|
|
||||||
alert:
|
|
||||||
type: string
|
|
||||||
annotations:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
expr:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
for:
|
|
||||||
type: string
|
|
||||||
labels:
|
|
||||||
additionalProperties:
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
record:
|
|
||||||
type: string
|
|
||||||
required:
|
|
||||||
- expr
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
- rules
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- spec
|
|
||||||
type: object
|
|
||||||
version: v1
|
|
||||||
versions:
|
versions:
|
||||||
- name: v1
|
- name: v1
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
description: PrometheusRule defines alerting rules for a Prometheus instance
|
||||||
|
properties:
|
||||||
|
apiVersion:
|
||||||
|
description: 'APIVersion defines the versioned schema of this representation
|
||||||
|
of an object. Servers should convert recognized schemas to the latest
|
||||||
|
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||||
|
type: string
|
||||||
|
kind:
|
||||||
|
description: 'Kind is a string value representing the REST resource this
|
||||||
|
object represents. Servers may infer this from the endpoint the client
|
||||||
|
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||||
|
type: string
|
||||||
|
metadata:
|
||||||
|
type: object
|
||||||
|
spec:
|
||||||
|
description: Specification of desired alerting rule definitions for Prometheus.
|
||||||
|
properties:
|
||||||
|
groups:
|
||||||
|
description: Content of Prometheus rule file
|
||||||
|
items:
|
||||||
|
description: 'RuleGroup is a list of sequentially evaluated recording
|
||||||
|
and alerting rules. Note: PartialResponseStrategy is only used
|
||||||
|
by ThanosRuler and will be ignored by Prometheus instances. Valid
|
||||||
|
values for this field are ''warn'' or ''abort''. More info: https://github.com/thanos-io/thanos/blob/master/docs/components/rule.md#partial-response'
|
||||||
|
properties:
|
||||||
|
interval:
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
partial_response_strategy:
|
||||||
|
type: string
|
||||||
|
rules:
|
||||||
|
items:
|
||||||
|
description: Rule describes an alerting or recording rule.
|
||||||
|
properties:
|
||||||
|
alert:
|
||||||
|
type: string
|
||||||
|
annotations:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
expr:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
for:
|
||||||
|
type: string
|
||||||
|
labels:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
record:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- expr
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- rules
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
served: true
|
served: true
|
||||||
storage: true
|
storage: true
|
||||||
status:
|
status:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
apiVersion: apiextensions.k8s.io/v1beta1
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
kind: CustomResourceDefinition
|
kind: CustomResourceDefinition
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
annotations:
|
||||||
|
@ -13,446 +13,448 @@ spec:
|
||||||
plural: servicemonitors
|
plural: servicemonitors
|
||||||
singular: servicemonitor
|
singular: servicemonitor
|
||||||
scope: Namespaced
|
scope: Namespaced
|
||||||
validation:
|
versions:
|
||||||
openAPIV3Schema:
|
- name: v1
|
||||||
description: ServiceMonitor defines monitoring for a set of services.
|
schema:
|
||||||
properties:
|
openAPIV3Schema:
|
||||||
apiVersion:
|
description: ServiceMonitor defines monitoring for a set of services.
|
||||||
description: 'APIVersion defines the versioned schema of this representation
|
properties:
|
||||||
of an object. Servers should convert recognized schemas to the latest
|
apiVersion:
|
||||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
description: 'APIVersion defines the versioned schema of this representation
|
||||||
type: string
|
of an object. Servers should convert recognized schemas to the latest
|
||||||
kind:
|
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||||
description: 'Kind is a string value representing the REST resource this
|
type: string
|
||||||
object represents. Servers may infer this from the endpoint the client
|
kind:
|
||||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
description: 'Kind is a string value representing the REST resource this
|
||||||
type: string
|
object represents. Servers may infer this from the endpoint the client
|
||||||
metadata:
|
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||||
type: object
|
type: string
|
||||||
spec:
|
metadata:
|
||||||
description: Specification of desired Service selection for target discovery
|
type: object
|
||||||
by Prometheus.
|
spec:
|
||||||
properties:
|
description: Specification of desired Service selection for target discovery
|
||||||
endpoints:
|
by Prometheus.
|
||||||
description: A list of endpoints allowed as part of this ServiceMonitor.
|
properties:
|
||||||
items:
|
endpoints:
|
||||||
description: Endpoint defines a scrapeable endpoint serving Prometheus
|
description: A list of endpoints allowed as part of this ServiceMonitor.
|
||||||
metrics.
|
items:
|
||||||
properties:
|
description: Endpoint defines a scrapeable endpoint serving Prometheus
|
||||||
basicAuth:
|
metrics.
|
||||||
description: 'BasicAuth allow an endpoint to authenticate over
|
properties:
|
||||||
basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints'
|
basicAuth:
|
||||||
properties:
|
description: 'BasicAuth allow an endpoint to authenticate over
|
||||||
password:
|
basic authentication More info: https://prometheus.io/docs/operating/configuration/#endpoints'
|
||||||
description: The secret in the service monitor namespace that
|
|
||||||
contains the password for authentication.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: The key of the secret to select from. Must
|
|
||||||
be a valid secret key.
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
||||||
TODO: Add other useful fields. apiVersion, kind, uid?'
|
|
||||||
type: string
|
|
||||||
optional:
|
|
||||||
description: Specify whether the Secret or its key must
|
|
||||||
be defined
|
|
||||||
type: boolean
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
type: object
|
|
||||||
username:
|
|
||||||
description: The secret in the service monitor namespace that
|
|
||||||
contains the username for authentication.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: The key of the secret to select from. Must
|
|
||||||
be a valid secret key.
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
||||||
TODO: Add other useful fields. apiVersion, kind, uid?'
|
|
||||||
type: string
|
|
||||||
optional:
|
|
||||||
description: Specify whether the Secret or its key must
|
|
||||||
be defined
|
|
||||||
type: boolean
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
bearerTokenFile:
|
|
||||||
description: File to read bearer token for scraping targets.
|
|
||||||
type: string
|
|
||||||
bearerTokenSecret:
|
|
||||||
description: Secret to mount to read bearer token for scraping
|
|
||||||
targets. The secret needs to be in the same namespace as the
|
|
||||||
service monitor and accessible by the Prometheus Operator.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: The key of the secret to select from. Must be
|
|
||||||
a valid secret key.
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
||||||
TODO: Add other useful fields. apiVersion, kind, uid?'
|
|
||||||
type: string
|
|
||||||
optional:
|
|
||||||
description: Specify whether the Secret or its key must be
|
|
||||||
defined
|
|
||||||
type: boolean
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
type: object
|
|
||||||
honorLabels:
|
|
||||||
description: HonorLabels chooses the metric's labels on collisions
|
|
||||||
with target labels.
|
|
||||||
type: boolean
|
|
||||||
honorTimestamps:
|
|
||||||
description: HonorTimestamps controls whether Prometheus respects
|
|
||||||
the timestamps present in scraped data.
|
|
||||||
type: boolean
|
|
||||||
interval:
|
|
||||||
description: Interval at which metrics should be scraped
|
|
||||||
type: string
|
|
||||||
metricRelabelings:
|
|
||||||
description: MetricRelabelConfigs to apply to samples before ingestion.
|
|
||||||
items:
|
|
||||||
description: 'RelabelConfig allows dynamic rewriting of the
|
|
||||||
label set, being applied to samples before ingestion. It defines
|
|
||||||
`<metric_relabel_configs>`-section of Prometheus configuration.
|
|
||||||
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
|
|
||||||
properties:
|
properties:
|
||||||
action:
|
password:
|
||||||
description: Action to perform based on regex matching.
|
description: The secret in the service monitor namespace
|
||||||
Default is 'replace'
|
that contains the password for authentication.
|
||||||
type: string
|
properties:
|
||||||
modulus:
|
key:
|
||||||
description: Modulus to take of the hash of the source label
|
description: The key of the secret to select from. Must
|
||||||
values.
|
be a valid secret key.
|
||||||
format: int64
|
type: string
|
||||||
type: integer
|
name:
|
||||||
regex:
|
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
description: Regular expression against which the extracted
|
TODO: Add other useful fields. apiVersion, kind, uid?'
|
||||||
value is matched. Default is '(.*)'
|
type: string
|
||||||
type: string
|
optional:
|
||||||
replacement:
|
description: Specify whether the Secret or its key must
|
||||||
description: Replacement value against which a regex replace
|
be defined
|
||||||
is performed if the regular expression matches. Regex
|
type: boolean
|
||||||
capture groups are available. Default is '$1'
|
required:
|
||||||
type: string
|
- key
|
||||||
separator:
|
type: object
|
||||||
description: Separator placed between concatenated source
|
username:
|
||||||
label values. default is ';'.
|
description: The secret in the service monitor namespace
|
||||||
type: string
|
that contains the username for authentication.
|
||||||
sourceLabels:
|
properties:
|
||||||
description: The source labels select values from existing
|
key:
|
||||||
labels. Their content is concatenated using the configured
|
description: The key of the secret to select from. Must
|
||||||
separator and matched against the configured regular expression
|
be a valid secret key.
|
||||||
for the replace, keep, and drop actions.
|
type: string
|
||||||
items:
|
name:
|
||||||
type: string
|
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
type: array
|
TODO: Add other useful fields. apiVersion, kind, uid?'
|
||||||
targetLabel:
|
type: string
|
||||||
description: Label to which the resulting value is written
|
optional:
|
||||||
in a replace action. It is mandatory for replace actions.
|
description: Specify whether the Secret or its key must
|
||||||
Regex capture groups are available.
|
be defined
|
||||||
type: string
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
type: object
|
type: object
|
||||||
type: array
|
bearerTokenFile:
|
||||||
params:
|
description: File to read bearer token for scraping targets.
|
||||||
additionalProperties:
|
type: string
|
||||||
|
bearerTokenSecret:
|
||||||
|
description: Secret to mount to read bearer token for scraping
|
||||||
|
targets. The secret needs to be in the same namespace as the
|
||||||
|
service monitor and accessible by the Prometheus Operator.
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
description: The key of the secret to select from. Must
|
||||||
|
be a valid secret key.
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
TODO: Add other useful fields. apiVersion, kind, uid?'
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
description: Specify whether the Secret or its key must
|
||||||
|
be defined
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
honorLabels:
|
||||||
|
description: HonorLabels chooses the metric's labels on collisions
|
||||||
|
with target labels.
|
||||||
|
type: boolean
|
||||||
|
honorTimestamps:
|
||||||
|
description: HonorTimestamps controls whether Prometheus respects
|
||||||
|
the timestamps present in scraped data.
|
||||||
|
type: boolean
|
||||||
|
interval:
|
||||||
|
description: Interval at which metrics should be scraped
|
||||||
|
type: string
|
||||||
|
metricRelabelings:
|
||||||
|
description: MetricRelabelConfigs to apply to samples before
|
||||||
|
ingestion.
|
||||||
items:
|
items:
|
||||||
type: string
|
description: 'RelabelConfig allows dynamic rewriting of the
|
||||||
|
label set, being applied to samples before ingestion. It
|
||||||
|
defines `<metric_relabel_configs>`-section of Prometheus
|
||||||
|
configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
|
||||||
|
properties:
|
||||||
|
action:
|
||||||
|
description: Action to perform based on regex matching.
|
||||||
|
Default is 'replace'
|
||||||
|
type: string
|
||||||
|
modulus:
|
||||||
|
description: Modulus to take of the hash of the source
|
||||||
|
label values.
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
regex:
|
||||||
|
description: Regular expression against which the extracted
|
||||||
|
value is matched. Default is '(.*)'
|
||||||
|
type: string
|
||||||
|
replacement:
|
||||||
|
description: Replacement value against which a regex replace
|
||||||
|
is performed if the regular expression matches. Regex
|
||||||
|
capture groups are available. Default is '$1'
|
||||||
|
type: string
|
||||||
|
separator:
|
||||||
|
description: Separator placed between concatenated source
|
||||||
|
label values. default is ';'.
|
||||||
|
type: string
|
||||||
|
sourceLabels:
|
||||||
|
description: The source labels select values from existing
|
||||||
|
labels. Their content is concatenated using the configured
|
||||||
|
separator and matched against the configured regular
|
||||||
|
expression for the replace, keep, and drop actions.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
targetLabel:
|
||||||
|
description: Label to which the resulting value is written
|
||||||
|
in a replace action. It is mandatory for replace actions.
|
||||||
|
Regex capture groups are available.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
type: array
|
type: array
|
||||||
description: Optional HTTP URL parameters
|
params:
|
||||||
type: object
|
additionalProperties:
|
||||||
path:
|
|
||||||
description: HTTP path to scrape for metrics.
|
|
||||||
type: string
|
|
||||||
port:
|
|
||||||
description: Name of the service port this endpoint refers to.
|
|
||||||
Mutually exclusive with targetPort.
|
|
||||||
type: string
|
|
||||||
proxyUrl:
|
|
||||||
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
|
|
||||||
to proxy through this endpoint.
|
|
||||||
type: string
|
|
||||||
relabelings:
|
|
||||||
description: 'RelabelConfigs to apply to samples before scraping.
|
|
||||||
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
|
|
||||||
items:
|
|
||||||
description: 'RelabelConfig allows dynamic rewriting of the
|
|
||||||
label set, being applied to samples before ingestion. It defines
|
|
||||||
`<metric_relabel_configs>`-section of Prometheus configuration.
|
|
||||||
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
|
|
||||||
properties:
|
|
||||||
action:
|
|
||||||
description: Action to perform based on regex matching.
|
|
||||||
Default is 'replace'
|
|
||||||
type: string
|
|
||||||
modulus:
|
|
||||||
description: Modulus to take of the hash of the source label
|
|
||||||
values.
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
regex:
|
|
||||||
description: Regular expression against which the extracted
|
|
||||||
value is matched. Default is '(.*)'
|
|
||||||
type: string
|
|
||||||
replacement:
|
|
||||||
description: Replacement value against which a regex replace
|
|
||||||
is performed if the regular expression matches. Regex
|
|
||||||
capture groups are available. Default is '$1'
|
|
||||||
type: string
|
|
||||||
separator:
|
|
||||||
description: Separator placed between concatenated source
|
|
||||||
label values. default is ';'.
|
|
||||||
type: string
|
|
||||||
sourceLabels:
|
|
||||||
description: The source labels select values from existing
|
|
||||||
labels. Their content is concatenated using the configured
|
|
||||||
separator and matched against the configured regular expression
|
|
||||||
for the replace, keep, and drop actions.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
targetLabel:
|
|
||||||
description: Label to which the resulting value is written
|
|
||||||
in a replace action. It is mandatory for replace actions.
|
|
||||||
Regex capture groups are available.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
scheme:
|
|
||||||
description: HTTP scheme to use for scraping.
|
|
||||||
type: string
|
|
||||||
scrapeTimeout:
|
|
||||||
description: Timeout after which the scrape is ended
|
|
||||||
type: string
|
|
||||||
targetPort:
|
|
||||||
anyOf:
|
|
||||||
- type: integer
|
|
||||||
- type: string
|
|
||||||
description: Name or number of the pod port this endpoint refers
|
|
||||||
to. Mutually exclusive with port.
|
|
||||||
x-kubernetes-int-or-string: true
|
|
||||||
tlsConfig:
|
|
||||||
description: TLS configuration to use when scraping the endpoint
|
|
||||||
properties:
|
|
||||||
ca:
|
|
||||||
description: Stuct containing the CA cert to use for the targets.
|
|
||||||
properties:
|
|
||||||
configMap:
|
|
||||||
description: ConfigMap containing data to use for the
|
|
||||||
targets.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: The key to select.
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
||||||
TODO: Add other useful fields. apiVersion, kind,
|
|
||||||
uid?'
|
|
||||||
type: string
|
|
||||||
optional:
|
|
||||||
description: Specify whether the ConfigMap or its
|
|
||||||
key must be defined
|
|
||||||
type: boolean
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
type: object
|
|
||||||
secret:
|
|
||||||
description: Secret containing data to use for the targets.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: The key of the secret to select from. Must
|
|
||||||
be a valid secret key.
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
||||||
TODO: Add other useful fields. apiVersion, kind,
|
|
||||||
uid?'
|
|
||||||
type: string
|
|
||||||
optional:
|
|
||||||
description: Specify whether the Secret or its key
|
|
||||||
must be defined
|
|
||||||
type: boolean
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
caFile:
|
|
||||||
description: Path to the CA cert in the Prometheus container
|
|
||||||
to use for the targets.
|
|
||||||
type: string
|
|
||||||
cert:
|
|
||||||
description: Struct containing the client cert file for the
|
|
||||||
targets.
|
|
||||||
properties:
|
|
||||||
configMap:
|
|
||||||
description: ConfigMap containing data to use for the
|
|
||||||
targets.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: The key to select.
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
||||||
TODO: Add other useful fields. apiVersion, kind,
|
|
||||||
uid?'
|
|
||||||
type: string
|
|
||||||
optional:
|
|
||||||
description: Specify whether the ConfigMap or its
|
|
||||||
key must be defined
|
|
||||||
type: boolean
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
type: object
|
|
||||||
secret:
|
|
||||||
description: Secret containing data to use for the targets.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: The key of the secret to select from. Must
|
|
||||||
be a valid secret key.
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
||||||
TODO: Add other useful fields. apiVersion, kind,
|
|
||||||
uid?'
|
|
||||||
type: string
|
|
||||||
optional:
|
|
||||||
description: Specify whether the Secret or its key
|
|
||||||
must be defined
|
|
||||||
type: boolean
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
certFile:
|
|
||||||
description: Path to the client cert file in the Prometheus
|
|
||||||
container for the targets.
|
|
||||||
type: string
|
|
||||||
insecureSkipVerify:
|
|
||||||
description: Disable target certificate validation.
|
|
||||||
type: boolean
|
|
||||||
keyFile:
|
|
||||||
description: Path to the client key file in the Prometheus
|
|
||||||
container for the targets.
|
|
||||||
type: string
|
|
||||||
keySecret:
|
|
||||||
description: Secret containing the client key file for the
|
|
||||||
targets.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: The key of the secret to select from. Must
|
|
||||||
be a valid secret key.
|
|
||||||
type: string
|
|
||||||
name:
|
|
||||||
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
|
||||||
TODO: Add other useful fields. apiVersion, kind, uid?'
|
|
||||||
type: string
|
|
||||||
optional:
|
|
||||||
description: Specify whether the Secret or its key must
|
|
||||||
be defined
|
|
||||||
type: boolean
|
|
||||||
required:
|
|
||||||
- key
|
|
||||||
type: object
|
|
||||||
serverName:
|
|
||||||
description: Used to verify the hostname for the targets.
|
|
||||||
type: string
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
type: array
|
|
||||||
jobLabel:
|
|
||||||
description: The label to use to retrieve the job name from.
|
|
||||||
type: string
|
|
||||||
namespaceSelector:
|
|
||||||
description: Selector to select which namespaces the Endpoints objects
|
|
||||||
are discovered from.
|
|
||||||
properties:
|
|
||||||
any:
|
|
||||||
description: Boolean describing whether all namespaces are selected
|
|
||||||
in contrast to a list restricting them.
|
|
||||||
type: boolean
|
|
||||||
matchNames:
|
|
||||||
description: List of namespace names.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
type: object
|
|
||||||
podTargetLabels:
|
|
||||||
description: PodTargetLabels transfers labels on the Kubernetes Pod
|
|
||||||
onto the target.
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
type: array
|
|
||||||
sampleLimit:
|
|
||||||
description: SampleLimit defines per-scrape limit on number of scraped
|
|
||||||
samples that will be accepted.
|
|
||||||
format: int64
|
|
||||||
type: integer
|
|
||||||
selector:
|
|
||||||
description: Selector to select Endpoints objects.
|
|
||||||
properties:
|
|
||||||
matchExpressions:
|
|
||||||
description: matchExpressions is a list of label selector requirements.
|
|
||||||
The requirements are ANDed.
|
|
||||||
items:
|
|
||||||
description: A label selector requirement is a selector that contains
|
|
||||||
values, a key, and an operator that relates the key and values.
|
|
||||||
properties:
|
|
||||||
key:
|
|
||||||
description: key is the label key that the selector applies
|
|
||||||
to.
|
|
||||||
type: string
|
|
||||||
operator:
|
|
||||||
description: operator represents a key's relationship to a
|
|
||||||
set of values. Valid operators are In, NotIn, Exists and
|
|
||||||
DoesNotExist.
|
|
||||||
type: string
|
|
||||||
values:
|
|
||||||
description: values is an array of string values. If the operator
|
|
||||||
is In or NotIn, the values array must be non-empty. If the
|
|
||||||
operator is Exists or DoesNotExist, the values array must
|
|
||||||
be empty. This array is replaced during a strategic merge
|
|
||||||
patch.
|
|
||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
type: array
|
type: array
|
||||||
required:
|
description: Optional HTTP URL parameters
|
||||||
- key
|
type: object
|
||||||
- operator
|
path:
|
||||||
type: object
|
description: HTTP path to scrape for metrics.
|
||||||
type: array
|
type: string
|
||||||
matchLabels:
|
port:
|
||||||
additionalProperties:
|
description: Name of the service port this endpoint refers to.
|
||||||
type: string
|
Mutually exclusive with targetPort.
|
||||||
description: matchLabels is a map of {key,value} pairs. A single
|
type: string
|
||||||
{key,value} in the matchLabels map is equivalent to an element
|
proxyUrl:
|
||||||
of matchExpressions, whose key field is "key", the operator is
|
description: ProxyURL eg http://proxyserver:2195 Directs scrapes
|
||||||
"In", and the values array contains only "value". The requirements
|
to proxy through this endpoint.
|
||||||
are ANDed.
|
type: string
|
||||||
|
relabelings:
|
||||||
|
description: 'RelabelConfigs to apply to samples before scraping.
|
||||||
|
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
|
||||||
|
items:
|
||||||
|
description: 'RelabelConfig allows dynamic rewriting of the
|
||||||
|
label set, being applied to samples before ingestion. It
|
||||||
|
defines `<metric_relabel_configs>`-section of Prometheus
|
||||||
|
configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
|
||||||
|
properties:
|
||||||
|
action:
|
||||||
|
description: Action to perform based on regex matching.
|
||||||
|
Default is 'replace'
|
||||||
|
type: string
|
||||||
|
modulus:
|
||||||
|
description: Modulus to take of the hash of the source
|
||||||
|
label values.
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
regex:
|
||||||
|
description: Regular expression against which the extracted
|
||||||
|
value is matched. Default is '(.*)'
|
||||||
|
type: string
|
||||||
|
replacement:
|
||||||
|
description: Replacement value against which a regex replace
|
||||||
|
is performed if the regular expression matches. Regex
|
||||||
|
capture groups are available. Default is '$1'
|
||||||
|
type: string
|
||||||
|
separator:
|
||||||
|
description: Separator placed between concatenated source
|
||||||
|
label values. default is ';'.
|
||||||
|
type: string
|
||||||
|
sourceLabels:
|
||||||
|
description: The source labels select values from existing
|
||||||
|
labels. Their content is concatenated using the configured
|
||||||
|
separator and matched against the configured regular
|
||||||
|
expression for the replace, keep, and drop actions.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
targetLabel:
|
||||||
|
description: Label to which the resulting value is written
|
||||||
|
in a replace action. It is mandatory for replace actions.
|
||||||
|
Regex capture groups are available.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
scheme:
|
||||||
|
description: HTTP scheme to use for scraping.
|
||||||
|
type: string
|
||||||
|
scrapeTimeout:
|
||||||
|
description: Timeout after which the scrape is ended
|
||||||
|
type: string
|
||||||
|
targetPort:
|
||||||
|
anyOf:
|
||||||
|
- type: integer
|
||||||
|
- type: string
|
||||||
|
description: Name or number of the pod port this endpoint refers
|
||||||
|
to. Mutually exclusive with port.
|
||||||
|
x-kubernetes-int-or-string: true
|
||||||
|
tlsConfig:
|
||||||
|
description: TLS configuration to use when scraping the endpoint
|
||||||
|
properties:
|
||||||
|
ca:
|
||||||
|
description: Stuct containing the CA cert to use for the
|
||||||
|
targets.
|
||||||
|
properties:
|
||||||
|
configMap:
|
||||||
|
description: ConfigMap containing data to use for the
|
||||||
|
targets.
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
description: The key to select.
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
TODO: Add other useful fields. apiVersion, kind,
|
||||||
|
uid?'
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
description: Specify whether the ConfigMap or its
|
||||||
|
key must be defined
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
secret:
|
||||||
|
description: Secret containing data to use for the targets.
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
description: The key of the secret to select from. Must
|
||||||
|
be a valid secret key.
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
TODO: Add other useful fields. apiVersion, kind,
|
||||||
|
uid?'
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
description: Specify whether the Secret or its key
|
||||||
|
must be defined
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
caFile:
|
||||||
|
description: Path to the CA cert in the Prometheus container
|
||||||
|
to use for the targets.
|
||||||
|
type: string
|
||||||
|
cert:
|
||||||
|
description: Struct containing the client cert file for
|
||||||
|
the targets.
|
||||||
|
properties:
|
||||||
|
configMap:
|
||||||
|
description: ConfigMap containing data to use for the
|
||||||
|
targets.
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
description: The key to select.
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
TODO: Add other useful fields. apiVersion, kind,
|
||||||
|
uid?'
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
description: Specify whether the ConfigMap or its
|
||||||
|
key must be defined
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
secret:
|
||||||
|
description: Secret containing data to use for the targets.
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
description: The key of the secret to select from. Must
|
||||||
|
be a valid secret key.
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
TODO: Add other useful fields. apiVersion, kind,
|
||||||
|
uid?'
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
description: Specify whether the Secret or its key
|
||||||
|
must be defined
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
certFile:
|
||||||
|
description: Path to the client cert file in the Prometheus
|
||||||
|
container for the targets.
|
||||||
|
type: string
|
||||||
|
insecureSkipVerify:
|
||||||
|
description: Disable target certificate validation.
|
||||||
|
type: boolean
|
||||||
|
keyFile:
|
||||||
|
description: Path to the client key file in the Prometheus
|
||||||
|
container for the targets.
|
||||||
|
type: string
|
||||||
|
keySecret:
|
||||||
|
description: Secret containing the client key file for the
|
||||||
|
targets.
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
description: The key of the secret to select from. Must
|
||||||
|
be a valid secret key.
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
|
||||||
|
TODO: Add other useful fields. apiVersion, kind, uid?'
|
||||||
|
type: string
|
||||||
|
optional:
|
||||||
|
description: Specify whether the Secret or its key must
|
||||||
|
be defined
|
||||||
|
type: boolean
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
type: object
|
||||||
|
serverName:
|
||||||
|
description: Used to verify the hostname for the targets.
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: array
|
||||||
targetLabels:
|
jobLabel:
|
||||||
description: TargetLabels transfers labels on the Kubernetes Service
|
description: The label to use to retrieve the job name from.
|
||||||
onto the target.
|
|
||||||
items:
|
|
||||||
type: string
|
type: string
|
||||||
type: array
|
namespaceSelector:
|
||||||
required:
|
description: Selector to select which namespaces the Endpoints objects
|
||||||
- endpoints
|
are discovered from.
|
||||||
- selector
|
properties:
|
||||||
type: object
|
any:
|
||||||
required:
|
description: Boolean describing whether all namespaces are selected
|
||||||
- spec
|
in contrast to a list restricting them.
|
||||||
type: object
|
type: boolean
|
||||||
version: v1
|
matchNames:
|
||||||
versions:
|
description: List of namespace names.
|
||||||
- name: v1
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
type: object
|
||||||
|
podTargetLabels:
|
||||||
|
description: PodTargetLabels transfers labels on the Kubernetes Pod
|
||||||
|
onto the target.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
sampleLimit:
|
||||||
|
description: SampleLimit defines per-scrape limit on number of scraped
|
||||||
|
samples that will be accepted.
|
||||||
|
format: int64
|
||||||
|
type: integer
|
||||||
|
selector:
|
||||||
|
description: Selector to select Endpoints objects.
|
||||||
|
properties:
|
||||||
|
matchExpressions:
|
||||||
|
description: matchExpressions is a list of label selector requirements.
|
||||||
|
The requirements are ANDed.
|
||||||
|
items:
|
||||||
|
description: A label selector requirement is a selector that
|
||||||
|
contains values, a key, and an operator that relates the key
|
||||||
|
and values.
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
description: key is the label key that the selector applies
|
||||||
|
to.
|
||||||
|
type: string
|
||||||
|
operator:
|
||||||
|
description: operator represents a key's relationship to
|
||||||
|
a set of values. Valid operators are In, NotIn, Exists
|
||||||
|
and DoesNotExist.
|
||||||
|
type: string
|
||||||
|
values:
|
||||||
|
description: values is an array of string values. If the
|
||||||
|
operator is In or NotIn, the values array must be non-empty.
|
||||||
|
If the operator is Exists or DoesNotExist, the values
|
||||||
|
array must be empty. This array is replaced during a strategic
|
||||||
|
merge patch.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
- operator
|
||||||
|
type: object
|
||||||
|
type: array
|
||||||
|
matchLabels:
|
||||||
|
additionalProperties:
|
||||||
|
type: string
|
||||||
|
description: matchLabels is a map of {key,value} pairs. A single
|
||||||
|
{key,value} in the matchLabels map is equivalent to an element
|
||||||
|
of matchExpressions, whose key field is "key", the operator
|
||||||
|
is "In", and the values array contains only "value". The requirements
|
||||||
|
are ANDed.
|
||||||
|
type: object
|
||||||
|
type: object
|
||||||
|
targetLabels:
|
||||||
|
description: TargetLabels transfers labels on the Kubernetes Service
|
||||||
|
onto the target.
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
type: array
|
||||||
|
required:
|
||||||
|
- endpoints
|
||||||
|
- selector
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- spec
|
||||||
|
type: object
|
||||||
served: true
|
served: true
|
||||||
storage: true
|
storage: true
|
||||||
status:
|
status:
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -4,29 +4,9 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/component: controller
|
app.kubernetes.io/component: controller
|
||||||
app.kubernetes.io/name: prometheus-operator
|
app.kubernetes.io/name: prometheus-operator
|
||||||
app.kubernetes.io/version: v0.38.1
|
app.kubernetes.io/version: v0.39.0
|
||||||
name: prometheus-operator
|
name: prometheus-operator
|
||||||
rules:
|
rules:
|
||||||
- apiGroups:
|
|
||||||
- apiextensions.k8s.io
|
|
||||||
resources:
|
|
||||||
- customresourcedefinitions
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- apiGroups:
|
|
||||||
- apiextensions.k8s.io
|
|
||||||
resourceNames:
|
|
||||||
- alertmanagers.monitoring.coreos.com
|
|
||||||
- podmonitors.monitoring.coreos.com
|
|
||||||
- prometheuses.monitoring.coreos.com
|
|
||||||
- prometheusrules.monitoring.coreos.com
|
|
||||||
- servicemonitors.monitoring.coreos.com
|
|
||||||
- thanosrulers.monitoring.coreos.com
|
|
||||||
resources:
|
|
||||||
- customresourcedefinitions
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- update
|
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- monitoring.coreos.com
|
- monitoring.coreos.com
|
||||||
resources:
|
resources:
|
||||||
|
|
|
@ -4,7 +4,7 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/component: controller
|
app.kubernetes.io/component: controller
|
||||||
app.kubernetes.io/name: prometheus-operator
|
app.kubernetes.io/name: prometheus-operator
|
||||||
app.kubernetes.io/version: v0.38.1
|
app.kubernetes.io/version: v0.39.0
|
||||||
name: prometheus-operator
|
name: prometheus-operator
|
||||||
roleRef:
|
roleRef:
|
||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
|
|
@ -4,7 +4,7 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/component: controller
|
app.kubernetes.io/component: controller
|
||||||
app.kubernetes.io/name: prometheus-operator
|
app.kubernetes.io/name: prometheus-operator
|
||||||
app.kubernetes.io/version: v0.38.1
|
app.kubernetes.io/version: v0.39.0
|
||||||
name: prometheus-operator
|
name: prometheus-operator
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
spec:
|
spec:
|
||||||
|
@ -18,15 +18,15 @@ spec:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/component: controller
|
app.kubernetes.io/component: controller
|
||||||
app.kubernetes.io/name: prometheus-operator
|
app.kubernetes.io/name: prometheus-operator
|
||||||
app.kubernetes.io/version: v0.38.1
|
app.kubernetes.io/version: v0.39.0
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- args:
|
- args:
|
||||||
- --kubelet-service=kube-system/kubelet
|
- --kubelet-service=kube-system/kubelet
|
||||||
- --logtostderr=true
|
- --logtostderr=true
|
||||||
- --config-reloader-image=jimmidyson/configmap-reload:v0.3.0
|
- --config-reloader-image=jimmidyson/configmap-reload:v0.3.0
|
||||||
- --prometheus-config-reloader=quay.io/coreos/prometheus-config-reloader:v0.38.1
|
- --prometheus-config-reloader=quay.io/coreos/prometheus-config-reloader:v0.39.0
|
||||||
image: quay.io/coreos/prometheus-operator:v0.38.1
|
image: quay.io/coreos/prometheus-operator:v0.39.0
|
||||||
name: prometheus-operator
|
name: prometheus-operator
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
|
|
|
@ -4,7 +4,7 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/component: controller
|
app.kubernetes.io/component: controller
|
||||||
app.kubernetes.io/name: prometheus-operator
|
app.kubernetes.io/name: prometheus-operator
|
||||||
app.kubernetes.io/version: v0.38.1
|
app.kubernetes.io/version: v0.39.0
|
||||||
name: prometheus-operator
|
name: prometheus-operator
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
spec:
|
spec:
|
||||||
|
|
|
@ -4,6 +4,6 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/component: controller
|
app.kubernetes.io/component: controller
|
||||||
app.kubernetes.io/name: prometheus-operator
|
app.kubernetes.io/name: prometheus-operator
|
||||||
app.kubernetes.io/version: v0.38.1
|
app.kubernetes.io/version: v0.39.0
|
||||||
name: prometheus-operator
|
name: prometheus-operator
|
||||||
namespace: monitoring
|
namespace: monitoring
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
"subdir": "jsonnet/prometheus-operator"
|
"subdir": "jsonnet/prometheus-operator"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": "release-0.38"
|
"version": "release-0.39"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"source": {
|
"source": {
|
||||||
|
|
|
@ -134,6 +134,24 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
|
||||||
versionPriority: 100,
|
versionPriority: 100,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
customMetricsApiServiceV1Beta2: {
|
||||||
|
apiVersion: 'apiregistration.k8s.io/v1',
|
||||||
|
kind: 'APIService',
|
||||||
|
metadata: {
|
||||||
|
name: 'v1beta2.custom.metrics.k8s.io',
|
||||||
|
},
|
||||||
|
spec: {
|
||||||
|
service: {
|
||||||
|
name: $.prometheusAdapter.service.metadata.name,
|
||||||
|
namespace: $._config.namespace,
|
||||||
|
},
|
||||||
|
group: 'custom.metrics.k8s.io',
|
||||||
|
version: 'v1beta2',
|
||||||
|
insecureSkipTLSVerify: true,
|
||||||
|
groupPriorityMinimum: 100,
|
||||||
|
versionPriority: 200,
|
||||||
|
},
|
||||||
|
},
|
||||||
customMetricsClusterRoleServerResources:
|
customMetricsClusterRoleServerResources:
|
||||||
local clusterRole = k.rbac.v1.clusterRole;
|
local clusterRole = k.rbac.v1.clusterRole;
|
||||||
local policyRule = clusterRole.rulesType;
|
local policyRule = clusterRole.rulesType;
|
||||||
|
|
|
@ -18,38 +18,7 @@ local configMapList = k3.core.v1.configMapList;
|
||||||
kubePrometheus+:: {
|
kubePrometheus+:: {
|
||||||
namespace: k.core.v1.namespace.new($._config.namespace),
|
namespace: k.core.v1.namespace.new($._config.namespace),
|
||||||
},
|
},
|
||||||
prometheusOperator+::
|
prometheusOperator+:: {
|
||||||
{
|
|
||||||
'0alertmanagerCustomResourceDefinition'+: {
|
|
||||||
spec: std.mergePatch(super.spec, {
|
|
||||||
preserveUnknownFields: null,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
'0prometheusCustomResourceDefinition'+: {
|
|
||||||
spec: std.mergePatch(super.spec, {
|
|
||||||
preserveUnknownFields: null,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
'0servicemonitorCustomResourceDefinition'+: {
|
|
||||||
spec: std.mergePatch(super.spec, {
|
|
||||||
preserveUnknownFields: null,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
'0podmonitorCustomResourceDefinition'+: {
|
|
||||||
spec: std.mergePatch(super.spec, {
|
|
||||||
preserveUnknownFields: null,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
'0prometheusruleCustomResourceDefinition'+: {
|
|
||||||
spec: std.mergePatch(super.spec, {
|
|
||||||
preserveUnknownFields: null,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
'0thanosrulerCustomResourceDefinition'+: {
|
|
||||||
spec: std.mergePatch(super.spec, {
|
|
||||||
preserveUnknownFields: null,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
service+: {
|
service+: {
|
||||||
spec+: {
|
spec+: {
|
||||||
ports: [
|
ports: [
|
||||||
|
|
|
@ -5,7 +5,7 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
|
||||||
namespace: 'default',
|
namespace: 'default',
|
||||||
|
|
||||||
versions+:: {
|
versions+:: {
|
||||||
prometheusAdapter: 'v0.5.0',
|
prometheusAdapter: 'v0.7.0',
|
||||||
},
|
},
|
||||||
|
|
||||||
imageRepos+:: {
|
imageRepos+:: {
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -15,7 +15,7 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
|
||||||
},
|
},
|
||||||
|
|
||||||
versions+:: {
|
versions+:: {
|
||||||
prometheusOperator: 'v0.38.1',
|
prometheusOperator: 'v0.39.0',
|
||||||
prometheusConfigReloader: self.prometheusOperator,
|
prometheusConfigReloader: self.prometheusOperator,
|
||||||
configmapReloader: 'v0.3.0',
|
configmapReloader: 'v0.3.0',
|
||||||
},
|
},
|
||||||
|
@ -64,28 +64,6 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
|
||||||
local clusterRole = k.rbac.v1.clusterRole;
|
local clusterRole = k.rbac.v1.clusterRole;
|
||||||
local policyRule = clusterRole.rulesType;
|
local policyRule = clusterRole.rulesType;
|
||||||
|
|
||||||
local crdCreateRule = policyRule.new() +
|
|
||||||
policyRule.withApiGroups(['apiextensions.k8s.io']) +
|
|
||||||
policyRule.withResources([
|
|
||||||
'customresourcedefinitions',
|
|
||||||
]) +
|
|
||||||
policyRule.withVerbs(['create']);
|
|
||||||
|
|
||||||
local crdMonitoringRule = policyRule.new() +
|
|
||||||
policyRule.withApiGroups(['apiextensions.k8s.io']) +
|
|
||||||
policyRule.withResources([
|
|
||||||
'customresourcedefinitions',
|
|
||||||
]) +
|
|
||||||
policyRule.withResourceNames([
|
|
||||||
'alertmanagers.monitoring.coreos.com',
|
|
||||||
'podmonitors.monitoring.coreos.com',
|
|
||||||
'prometheuses.monitoring.coreos.com',
|
|
||||||
'prometheusrules.monitoring.coreos.com',
|
|
||||||
'servicemonitors.monitoring.coreos.com',
|
|
||||||
'thanosrulers.monitoring.coreos.com',
|
|
||||||
]) +
|
|
||||||
policyRule.withVerbs(['get', 'update']);
|
|
||||||
|
|
||||||
local monitoringRule = policyRule.new() +
|
local monitoringRule = policyRule.new() +
|
||||||
policyRule.withApiGroups(['monitoring.coreos.com']) +
|
policyRule.withApiGroups(['monitoring.coreos.com']) +
|
||||||
policyRule.withResources([
|
policyRule.withResources([
|
||||||
|
@ -146,7 +124,7 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
|
||||||
]) +
|
]) +
|
||||||
policyRule.withVerbs(['get', 'list', 'watch']);
|
policyRule.withVerbs(['get', 'list', 'watch']);
|
||||||
|
|
||||||
local rules = [crdCreateRule, crdMonitoringRule, monitoringRule, appsRule, coreRule, podRule, routingRule, nodeRule, namespaceRule];
|
local rules = [monitoringRule, appsRule, coreRule, podRule, routingRule, nodeRule, namespaceRule];
|
||||||
|
|
||||||
clusterRole.new() +
|
clusterRole.new() +
|
||||||
clusterRole.mixin.metadata.withLabels(po.commonLabels) +
|
clusterRole.mixin.metadata.withLabels(po.commonLabels) +
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"apiVersion":"apiextensions.k8s.io/v1beta1","kind":"CustomResourceDefinition","metadata":{"annotations":{"controller-gen.kubebuilder.io/version":"v0.2.4"},"creationTimestamp":null,"name":"prometheusrules.monitoring.coreos.com"},"spec":{"group":"monitoring.coreos.com","names":{"kind":"PrometheusRule","listKind":"PrometheusRuleList","plural":"prometheusrules","singular":"prometheusrule"},"preserveUnknownFields":false,"scope":"Namespaced","validation":{"openAPIV3Schema":{"description":"PrometheusRule defines alerting rules for a Prometheus instance","properties":{"apiVersion":{"description":"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources","type":"string"},"kind":{"description":"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds","type":"string"},"metadata":{"type":"object"},"spec":{"description":"Specification of desired alerting rule definitions for Prometheus.","properties":{"groups":{"description":"Content of Prometheus rule file","items":{"description":"RuleGroup is a list of sequentially evaluated recording and alerting rules. Note: PartialResponseStrategy is only used by ThanosRuler and will be ignored by Prometheus instances. Valid values for this field are 'warn' or 'abort'. More info: https://github.com/thanos-io/thanos/blob/master/docs/components/rule.md#partial-response","properties":{"interval":{"type":"string"},"name":{"type":"string"},"partial_response_strategy":{"type":"string"},"rules":{"items":{"description":"Rule describes an alerting or recording rule.","properties":{"alert":{"type":"string"},"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"expr":{"anyOf":[{"type":"integer"},{"type":"string"}],"x-kubernetes-int-or-string":true},"for":{"type":"string"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"record":{"type":"string"}},"required":["expr"],"type":"object"},"type":"array"}},"required":["name","rules"],"type":"object"},"type":"array"}},"type":"object"}},"required":["spec"],"type":"object"}},"version":"v1","versions":[{"name":"v1","served":true,"storage":true}]},"status":{"acceptedNames":{"kind":"","plural":""},"conditions":[],"storedVersions":[]}}
|
{"apiVersion":"apiextensions.k8s.io/v1","kind":"CustomResourceDefinition","metadata":{"annotations":{"controller-gen.kubebuilder.io/version":"v0.2.4"},"creationTimestamp":null,"name":"prometheusrules.monitoring.coreos.com"},"spec":{"group":"monitoring.coreos.com","names":{"kind":"PrometheusRule","listKind":"PrometheusRuleList","plural":"prometheusrules","singular":"prometheusrule"},"scope":"Namespaced","versions":[{"name":"v1","schema":{"openAPIV3Schema":{"description":"PrometheusRule defines alerting rules for a Prometheus instance","properties":{"apiVersion":{"description":"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources","type":"string"},"kind":{"description":"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds","type":"string"},"metadata":{"type":"object"},"spec":{"description":"Specification of desired alerting rule definitions for Prometheus.","properties":{"groups":{"description":"Content of Prometheus rule file","items":{"description":"RuleGroup is a list of sequentially evaluated recording and alerting rules. Note: PartialResponseStrategy is only used by ThanosRuler and will be ignored by Prometheus instances. Valid values for this field are 'warn' or 'abort'. More info: https://github.com/thanos-io/thanos/blob/master/docs/components/rule.md#partial-response","properties":{"interval":{"type":"string"},"name":{"type":"string"},"partial_response_strategy":{"type":"string"},"rules":{"items":{"description":"Rule describes an alerting or recording rule.","properties":{"alert":{"type":"string"},"annotations":{"additionalProperties":{"type":"string"},"type":"object"},"expr":{"anyOf":[{"type":"integer"},{"type":"string"}],"x-kubernetes-int-or-string":true},"for":{"type":"string"},"labels":{"additionalProperties":{"type":"string"},"type":"object"},"record":{"type":"string"}},"required":["expr"],"type":"object"},"type":"array"}},"required":["name","rules"],"type":"object"},"type":"array"}},"type":"object"}},"required":["spec"],"type":"object"}},"served":true,"storage":true}]},"status":{"acceptedNames":{"kind":"","plural":""},"conditions":[],"storedVersions":[]}}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -4,6 +4,8 @@
|
||||||
* Currently the only condition type that exists is a Query condition
|
* Currently the only condition type that exists is a Query condition
|
||||||
* that allows to specify a query letter, time range and an aggregation function.
|
* that allows to specify a query letter, time range and an aggregation function.
|
||||||
*
|
*
|
||||||
|
* @name alertCondition.new
|
||||||
|
*
|
||||||
* @param evaluatorParams Value of threshold
|
* @param evaluatorParams Value of threshold
|
||||||
* @param evaluatorType Type of threshold
|
* @param evaluatorType Type of threshold
|
||||||
* @param operatorType Operator between conditions
|
* @param operatorType Operator between conditions
|
||||||
|
@ -12,6 +14,7 @@
|
||||||
* @param queryTimeEnd End of time range
|
* @param queryTimeEnd End of time range
|
||||||
* @param reducerParams Params of an aggregation function
|
* @param reducerParams Params of an aggregation function
|
||||||
* @param reducerType Name of an aggregation function
|
* @param reducerType Name of an aggregation function
|
||||||
|
*
|
||||||
* @return A json that represents a condition of alert
|
* @return A json that represents a condition of alert
|
||||||
*/
|
*/
|
||||||
new(
|
new(
|
||||||
|
|
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/alertlist.libsonnet
generated
vendored
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/alertlist.libsonnet
generated
vendored
|
@ -1,4 +1,7 @@
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @name alertlist.new
|
||||||
|
*/
|
||||||
new(
|
new(
|
||||||
title='',
|
title='',
|
||||||
span=null,
|
span=null,
|
||||||
|
|
5
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/annotation.libsonnet
generated
vendored
5
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/annotation.libsonnet
generated
vendored
|
@ -9,6 +9,11 @@
|
||||||
name: 'Annotations & Alerts',
|
name: 'Annotations & Alerts',
|
||||||
type: 'dashboard',
|
type: 'dashboard',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name annotation.datasource
|
||||||
|
*/
|
||||||
|
|
||||||
datasource(
|
datasource(
|
||||||
name,
|
name,
|
||||||
datasource,
|
datasource,
|
||||||
|
|
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/cloudwatch.libsonnet
generated
vendored
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/cloudwatch.libsonnet
generated
vendored
|
@ -2,6 +2,8 @@
|
||||||
/**
|
/**
|
||||||
* Return a CloudWatch Target
|
* Return a CloudWatch Target
|
||||||
*
|
*
|
||||||
|
* @name cloudwatch.target
|
||||||
|
*
|
||||||
* @param region
|
* @param region
|
||||||
* @param namespace
|
* @param namespace
|
||||||
* @param metric
|
* @param metric
|
||||||
|
|
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/dashboard.libsonnet
generated
vendored
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/dashboard.libsonnet
generated
vendored
|
@ -1,6 +1,9 @@
|
||||||
local timepickerlib = import 'timepicker.libsonnet';
|
local timepickerlib = import 'timepicker.libsonnet';
|
||||||
|
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @name dashboard.new
|
||||||
|
*/
|
||||||
new(
|
new(
|
||||||
title,
|
title,
|
||||||
editable=false,
|
editable=false,
|
||||||
|
|
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/dashlist.libsonnet
generated
vendored
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/dashlist.libsonnet
generated
vendored
|
@ -3,6 +3,8 @@
|
||||||
* Returns a new dashlist panel that can be added in a row.
|
* Returns a new dashlist panel that can be added in a row.
|
||||||
* It requires the dashlist panel plugin in grafana, which is built-in.
|
* It requires the dashlist panel plugin in grafana, which is built-in.
|
||||||
*
|
*
|
||||||
|
* @name dashlist.new
|
||||||
|
*
|
||||||
* @param title The title of the dashlist panel.
|
* @param title The title of the dashlist panel.
|
||||||
* @param description Description of the panel
|
* @param description Description of the panel
|
||||||
* @param query Query to search by
|
* @param query Query to search by
|
||||||
|
|
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/elasticsearch.libsonnet
generated
vendored
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/elasticsearch.libsonnet
generated
vendored
|
@ -1,4 +1,7 @@
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @name elasticsearch.target
|
||||||
|
*/
|
||||||
target(
|
target(
|
||||||
query,
|
query,
|
||||||
timeField,
|
timeField,
|
||||||
|
|
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/gauge.libsonnet
generated
vendored
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/gauge.libsonnet
generated
vendored
|
@ -1,4 +1,7 @@
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @name gauge.new
|
||||||
|
*/
|
||||||
new(
|
new(
|
||||||
title,
|
title,
|
||||||
datasource=null,
|
datasource=null,
|
||||||
|
|
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/graph_panel.libsonnet
generated
vendored
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/graph_panel.libsonnet
generated
vendored
|
@ -3,6 +3,8 @@
|
||||||
* Returns a new graph panel that can be added in a row.
|
* Returns a new graph panel that can be added in a row.
|
||||||
* It requires the graph panel plugin in grafana, which is built-in.
|
* It requires the graph panel plugin in grafana, which is built-in.
|
||||||
*
|
*
|
||||||
|
* @name graphPanel.new
|
||||||
|
*
|
||||||
* @param title The title of the graph panel.
|
* @param title The title of the graph panel.
|
||||||
* @param span Width of the panel
|
* @param span Width of the panel
|
||||||
* @param datasource Datasource
|
* @param datasource Datasource
|
||||||
|
|
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/graphite.libsonnet
generated
vendored
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/graphite.libsonnet
generated
vendored
|
@ -2,6 +2,8 @@
|
||||||
/**
|
/**
|
||||||
* Return an Graphite Target
|
* Return an Graphite Target
|
||||||
*
|
*
|
||||||
|
* @name graphite.target
|
||||||
|
*
|
||||||
* @param target Graphite Query. Nested queries are possible by adding the query reference (refId).
|
* @param target Graphite Query. Nested queries are possible by adding the query reference (refId).
|
||||||
* @param targetFull Expanding the @target. Used in nested queries.
|
* @param targetFull Expanding the @target. Used in nested queries.
|
||||||
* @param hide Disable query on graph.
|
* @param hide Disable query on graph.
|
||||||
|
|
4
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/heatmap_panel.libsonnet
generated
vendored
4
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/heatmap_panel.libsonnet
generated
vendored
|
@ -1,8 +1,10 @@
|
||||||
{
|
{
|
||||||
/*
|
/**
|
||||||
* Returns a heatmap panel.
|
* Returns a heatmap panel.
|
||||||
* Requires the heatmap panel plugin in Grafana, which is built-in.
|
* Requires the heatmap panel plugin in Grafana, which is built-in.
|
||||||
*
|
*
|
||||||
|
* @name heatmapPanel.new
|
||||||
|
*
|
||||||
* @param title The title of the heatmap panel
|
* @param title The title of the heatmap panel
|
||||||
* @param datasource Datasource
|
* @param datasource Datasource
|
||||||
* @param min_span Min span
|
* @param min_span Min span
|
||||||
|
|
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/influxdb.libsonnet
generated
vendored
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/influxdb.libsonnet
generated
vendored
|
@ -2,6 +2,8 @@
|
||||||
/**
|
/**
|
||||||
* Return an InfluxDB Target
|
* Return an InfluxDB Target
|
||||||
*
|
*
|
||||||
|
* @name influxdb.target
|
||||||
|
*
|
||||||
* @param query Raw InfluxQL statement
|
* @param query Raw InfluxQL statement
|
||||||
* @param alias Alias By pattern
|
* @param alias Alias By pattern
|
||||||
* @param datasource Datasource
|
* @param datasource Datasource
|
||||||
|
|
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/link.libsonnet
generated
vendored
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/link.libsonnet
generated
vendored
|
@ -1,4 +1,7 @@
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @name link.dashboards
|
||||||
|
*/
|
||||||
dashboards(
|
dashboards(
|
||||||
title,
|
title,
|
||||||
tags,
|
tags,
|
||||||
|
|
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/log_panel.libsonnet
generated
vendored
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/log_panel.libsonnet
generated
vendored
|
@ -3,6 +3,8 @@
|
||||||
* Returns a new log panel that can be added in a row.
|
* Returns a new log panel that can be added in a row.
|
||||||
* It requires the log panel plugin in grafana, which is built-in.
|
* It requires the log panel plugin in grafana, which is built-in.
|
||||||
*
|
*
|
||||||
|
* @name logPanel.new
|
||||||
|
*
|
||||||
* @param title The title of the log panel.
|
* @param title The title of the log panel.
|
||||||
* @param span Width of the panel
|
* @param span Width of the panel
|
||||||
* @param datasource Datasource
|
* @param datasource Datasource
|
||||||
|
|
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/loki.libsonnet
generated
vendored
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/loki.libsonnet
generated
vendored
|
@ -1,4 +1,7 @@
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @name loki.target
|
||||||
|
*/
|
||||||
target(
|
target(
|
||||||
expr,
|
expr,
|
||||||
hide=null,
|
hide=null,
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
* Returns a new pie chart panel that can be added in a row.
|
* Returns a new pie chart panel that can be added in a row.
|
||||||
* It requires the pie chart panel plugin in grafana, which needs to be explicitly installed.
|
* It requires the pie chart panel plugin in grafana, which needs to be explicitly installed.
|
||||||
*
|
*
|
||||||
|
* @name pieChartPanel.new
|
||||||
|
*
|
||||||
* @param title The title of the pie chart panel.
|
* @param title The title of the pie chart panel.
|
||||||
* @param description Description of the panel
|
* @param description Description of the panel
|
||||||
* @param span Width of the panel
|
* @param span Width of the panel
|
||||||
|
|
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/pluginlist.libsonnet
generated
vendored
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/pluginlist.libsonnet
generated
vendored
|
@ -3,6 +3,8 @@
|
||||||
* Returns a new pluginlist panel that can be added in a row.
|
* Returns a new pluginlist panel that can be added in a row.
|
||||||
* It requires the pluginlist panel plugin in grafana, which is built-in.
|
* It requires the pluginlist panel plugin in grafana, which is built-in.
|
||||||
*
|
*
|
||||||
|
* @name pluginlist.new
|
||||||
|
*
|
||||||
* @param title The title of the pluginlist panel.
|
* @param title The title of the pluginlist panel.
|
||||||
* @param description Description of the panel
|
* @param description Description of the panel
|
||||||
* @param limit Set maximum items in a list
|
* @param limit Set maximum items in a list
|
||||||
|
|
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/prometheus.libsonnet
generated
vendored
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/prometheus.libsonnet
generated
vendored
|
@ -1,4 +1,7 @@
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @name prometheus.target
|
||||||
|
*/
|
||||||
target(
|
target(
|
||||||
expr,
|
expr,
|
||||||
format='time_series',
|
format='time_series',
|
||||||
|
|
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/row.libsonnet
generated
vendored
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/row.libsonnet
generated
vendored
|
@ -1,4 +1,7 @@
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @name row.new
|
||||||
|
*/
|
||||||
new(
|
new(
|
||||||
title='Dashboard Row',
|
title='Dashboard Row',
|
||||||
height=null,
|
height=null,
|
||||||
|
|
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/singlestat.libsonnet
generated
vendored
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/singlestat.libsonnet
generated
vendored
|
@ -1,4 +1,7 @@
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @name singlestat.new
|
||||||
|
*/
|
||||||
new(
|
new(
|
||||||
title,
|
title,
|
||||||
format='none',
|
format='none',
|
||||||
|
|
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/sql.libsonnet
generated
vendored
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/sql.libsonnet
generated
vendored
|
@ -1,4 +1,7 @@
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @name sql.target
|
||||||
|
*/
|
||||||
target(
|
target(
|
||||||
rawSql,
|
rawSql,
|
||||||
datasource=null,
|
datasource=null,
|
||||||
|
|
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/table_panel.libsonnet
generated
vendored
2
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/table_panel.libsonnet
generated
vendored
|
@ -3,6 +3,8 @@
|
||||||
* Returns a new table panel that can be added in a row.
|
* Returns a new table panel that can be added in a row.
|
||||||
* It requires the table panel plugin in grafana, which is built-in.
|
* It requires the table panel plugin in grafana, which is built-in.
|
||||||
*
|
*
|
||||||
|
* @name table.new
|
||||||
|
*
|
||||||
* @param title The title of the graph panel.
|
* @param title The title of the graph panel.
|
||||||
* @param span Width of the panel
|
* @param span Width of the panel
|
||||||
* @param height Height of the panel
|
* @param height Height of the panel
|
||||||
|
|
15
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/template.libsonnet
generated
vendored
15
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/template.libsonnet
generated
vendored
|
@ -1,4 +1,7 @@
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @name template.new
|
||||||
|
*/
|
||||||
new(
|
new(
|
||||||
name,
|
name,
|
||||||
datasource,
|
datasource,
|
||||||
|
@ -34,6 +37,9 @@
|
||||||
type: 'query',
|
type: 'query',
|
||||||
useTags: false,
|
useTags: false,
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* @name template.interval
|
||||||
|
*/
|
||||||
interval(
|
interval(
|
||||||
name,
|
name,
|
||||||
query,
|
query,
|
||||||
|
@ -66,6 +72,9 @@
|
||||||
else
|
else
|
||||||
current,
|
current,
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* @name template.datasource
|
||||||
|
*/
|
||||||
datasource(
|
datasource(
|
||||||
name,
|
name,
|
||||||
query,
|
query,
|
||||||
|
@ -97,6 +106,9 @@
|
||||||
else
|
else
|
||||||
refresh,
|
refresh,
|
||||||
filterAuto(str):: str != 'auto',
|
filterAuto(str):: str != 'auto',
|
||||||
|
/**
|
||||||
|
* @name template.custom
|
||||||
|
*/
|
||||||
custom(
|
custom(
|
||||||
name,
|
name,
|
||||||
query,
|
query,
|
||||||
|
@ -131,6 +143,9 @@
|
||||||
query: query,
|
query: query,
|
||||||
type: 'custom',
|
type: 'custom',
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* @name template.text
|
||||||
|
*/
|
||||||
text(
|
text(
|
||||||
name,
|
name,
|
||||||
label=''
|
label=''
|
||||||
|
|
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/text.libsonnet
generated
vendored
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/text.libsonnet
generated
vendored
|
@ -1,4 +1,7 @@
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @name text.new
|
||||||
|
*/
|
||||||
new(
|
new(
|
||||||
title='',
|
title='',
|
||||||
span=null,
|
span=null,
|
||||||
|
|
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/timepicker.libsonnet
generated
vendored
3
monitoring/vendor/github.com/grafana/grafonnet-lib/grafonnet/timepicker.libsonnet
generated
vendored
|
@ -1,4 +1,7 @@
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @name timepicker.new
|
||||||
|
*/
|
||||||
new(
|
new(
|
||||||
refresh_intervals=[
|
refresh_intervals=[
|
||||||
'5s',
|
'5s',
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
rules: [
|
rules: [
|
||||||
{
|
{
|
||||||
expr: |||
|
expr: |||
|
||||||
rate(kube_pod_container_status_restarts_total{%(prefixedNamespaceSelector)s%(kubeStateMetricsSelector)s}[15m]) * 60 * 5 > 0
|
rate(kube_pod_container_status_restarts_total{%(prefixedNamespaceSelector)s%(kubeStateMetricsSelector)s}[5m]) * 60 * 5 > 0
|
||||||
||| % $._config,
|
||| % $._config,
|
||||||
labels: {
|
labels: {
|
||||||
severity: 'warning',
|
severity: 'warning',
|
||||||
|
@ -24,8 +24,18 @@
|
||||||
alert: 'KubePodCrashLooping',
|
alert: 'KubePodCrashLooping',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
// We wrap kube_pod_owner with the topk() aggregator to ensure that
|
||||||
|
// every (namespace, pod) tuple is unique even if the "owner_kind"
|
||||||
|
// label exists for 2 values. This avoids "many-to-many matching
|
||||||
|
// not allowed" errors when joining with kube_pod_status_phase.
|
||||||
expr: |||
|
expr: |||
|
||||||
sum by (namespace, pod) (max by(namespace, pod) (kube_pod_status_phase{%(prefixedNamespaceSelector)s%(kubeStateMetricsSelector)s, phase=~"Pending|Unknown"}) * on(namespace, pod) group_left(owner_kind) max by(namespace, pod, owner_kind) (kube_pod_owner{owner_kind!="Job"})) > 0
|
sum by (namespace, pod) (
|
||||||
|
max by(namespace, pod) (
|
||||||
|
kube_pod_status_phase{%(prefixedNamespaceSelector)s%(kubeStateMetricsSelector)s, phase=~"Pending|Unknown"}
|
||||||
|
) * on(namespace, pod) group_left(owner_kind) topk by(namespace, pod) (
|
||||||
|
1, max by(namespace, pod, owner_kind) (kube_pod_owner{owner_kind!="Job"})
|
||||||
|
)
|
||||||
|
) > 0
|
||||||
||| % $._config,
|
||| % $._config,
|
||||||
labels: {
|
labels: {
|
||||||
severity: 'warning',
|
severity: 'warning',
|
||||||
|
|
|
@ -24,9 +24,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
expr: |||
|
expr: |||
|
||||||
kube_node_spec_taint{%(kubeStateMetricsSelector)s,key="node.kubernetes.io/unreachable",effect="NoSchedule"} == 1
|
(kube_node_spec_taint{%(kubeStateMetricsSelector)s,key="node.kubernetes.io/unreachable",effect="NoSchedule"} unless ignoring(key,value) kube_node_spec_taint{%(kubeStateMetricsSelector)s,key="ToBeDeletedByClusterAutoscaler"}) == 1
|
||||||
||| % $._config,
|
||| % $._config,
|
||||||
'for': '2m',
|
|
||||||
labels: {
|
labels: {
|
||||||
severity: 'warning',
|
severity: 'warning',
|
||||||
},
|
},
|
||||||
|
|
10
monitoring/vendor/github.com/kubernetes-monitoring/kubernetes-mixin/rules/apps.libsonnet
generated
vendored
10
monitoring/vendor/github.com/kubernetes-monitoring/kubernetes-mixin/rules/apps.libsonnet
generated
vendored
|
@ -24,7 +24,7 @@
|
||||||
sum by (%(clusterLabel)s, namespace, pod, container) (
|
sum by (%(clusterLabel)s, namespace, pod, container) (
|
||||||
rate(container_cpu_usage_seconds_total{%(cadvisorSelector)s, image!="", container!="POD"}[5m])
|
rate(container_cpu_usage_seconds_total{%(cadvisorSelector)s, image!="", container!="POD"}[5m])
|
||||||
) * on (%(clusterLabel)s, namespace, pod) group_left(node) topk by (%(clusterLabel)s, namespace, pod) (
|
) * on (%(clusterLabel)s, namespace, pod) group_left(node) topk by (%(clusterLabel)s, namespace, pod) (
|
||||||
1, max by(%(clusterLabel)s, namespace, pod, node) (kube_pod_info)
|
1, max by(%(clusterLabel)s, namespace, pod, node) (kube_pod_info{node!=""})
|
||||||
)
|
)
|
||||||
||| % $._config,
|
||| % $._config,
|
||||||
},
|
},
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
expr: |||
|
expr: |||
|
||||||
container_memory_working_set_bytes{%(cadvisorSelector)s, image!=""}
|
container_memory_working_set_bytes{%(cadvisorSelector)s, image!=""}
|
||||||
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
||||||
max by(namespace, pod, node) (kube_pod_info)
|
max by(namespace, pod, node) (kube_pod_info{node!=""})
|
||||||
)
|
)
|
||||||
||| % $._config,
|
||| % $._config,
|
||||||
},
|
},
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
expr: |||
|
expr: |||
|
||||||
container_memory_rss{%(cadvisorSelector)s, image!=""}
|
container_memory_rss{%(cadvisorSelector)s, image!=""}
|
||||||
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
||||||
max by(namespace, pod, node) (kube_pod_info)
|
max by(namespace, pod, node) (kube_pod_info{node!=""})
|
||||||
)
|
)
|
||||||
||| % $._config,
|
||| % $._config,
|
||||||
},
|
},
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
expr: |||
|
expr: |||
|
||||||
container_memory_cache{%(cadvisorSelector)s, image!=""}
|
container_memory_cache{%(cadvisorSelector)s, image!=""}
|
||||||
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
||||||
max by(namespace, pod, node) (kube_pod_info)
|
max by(namespace, pod, node) (kube_pod_info{node!=""})
|
||||||
)
|
)
|
||||||
||| % $._config,
|
||| % $._config,
|
||||||
},
|
},
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
expr: |||
|
expr: |||
|
||||||
container_memory_swap{%(cadvisorSelector)s, image!=""}
|
container_memory_swap{%(cadvisorSelector)s, image!=""}
|
||||||
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
* on (namespace, pod) group_left(node) topk by(namespace, pod) (1,
|
||||||
max by(namespace, pod, node) (kube_pod_info)
|
max by(namespace, pod, node) (kube_pod_info{node!=""})
|
||||||
)
|
)
|
||||||
||| % $._config,
|
||| % $._config,
|
||||||
},
|
},
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
// SINCE 2018-02-08
|
// SINCE 2018-02-08
|
||||||
record: ':kube_pod_info_node_count:',
|
record: ':kube_pod_info_node_count:',
|
||||||
expr: |||
|
expr: |||
|
||||||
sum(min(kube_pod_info) by (%(clusterLabel)s, node))
|
sum(min(kube_pod_info{node!=""}) by (%(clusterLabel)s, node))
|
||||||
||| % $._config,
|
||| % $._config,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
expr: |||
|
expr: |||
|
||||||
topk by(namespace, %(podLabel)s) (1,
|
topk by(namespace, %(podLabel)s) (1,
|
||||||
max by (node, namespace, %(podLabel)s) (
|
max by (node, namespace, %(podLabel)s) (
|
||||||
label_replace(kube_pod_info{%(kubeStateMetricsSelector)s}, "%(podLabel)s", "$1", "pod", "(.*)")
|
label_replace(kube_pod_info{%(kubeStateMetricsSelector)s,node!=""}, "%(podLabel)s", "$1", "pod", "(.*)")
|
||||||
))
|
))
|
||||||
||| % $._config,
|
||| % $._config,
|
||||||
},
|
},
|
||||||
|
|
Reference in a new issue