upgrade all the things
This commit is contained in:
parent
6d10ef8741
commit
860d4c1f35
|
@ -8,7 +8,7 @@
|
|||
"subdir": "Documentation/etcd-mixin"
|
||||
}
|
||||
},
|
||||
"version": "221f0cc107cb3497eeb20fb241e1bcafca2e9115",
|
||||
"version": "dd816f0735f8a5ee7a1bbd134002961b2884197c",
|
||||
"sum": "Ko3qhNfC2vN/houLh6C0Ryacjv70gl0DVPGU/PQ4OD0="
|
||||
},
|
||||
{
|
||||
|
@ -30,7 +30,7 @@
|
|||
"subdir": "grafana-builder"
|
||||
}
|
||||
},
|
||||
"version": "c19a92e586a6752f11745b47f309b13f02ef7147",
|
||||
"version": "e347979bbe1e89fa0f48ea61fb486fdbaec42b74",
|
||||
"sum": "slxrtftVDiTlQK22ertdfrg4Epnq97gdrLI63ftUfaE="
|
||||
},
|
||||
{
|
||||
|
@ -41,8 +41,8 @@
|
|||
"subdir": "grafonnet"
|
||||
}
|
||||
},
|
||||
"version": "db36a706bd1c87056759eacb686102133eb4740c",
|
||||
"sum": "g1aMw5iYEP/Dkw1wo1pcfe7q4LIpXc4wqDZsjaCpsRc="
|
||||
"version": "906768d46973e022594d3f03d82c5a51d86de2cc",
|
||||
"sum": "J3Vp0EVbxTObr6KydLXsi4Rc0ssNVAEuwLc0NQ+4wqU="
|
||||
},
|
||||
{
|
||||
"name": "ksonnet",
|
||||
|
@ -63,8 +63,8 @@
|
|||
"subdir": "jsonnet/kube-prometheus"
|
||||
}
|
||||
},
|
||||
"version": "66c625d0bfbc080f40ee453ea093c66faa8e1cc0",
|
||||
"sum": "lBFnEmkRi9RiJrHnWWxVPB0pOGuYans1FdDSiRD/z68="
|
||||
"version": "cf7bb8706c840ae5ff80ffbc255ed0d49d3fff33",
|
||||
"sum": "jBsN3YSsYzSmaV2zNU4Um4K+28qUtw9uga7HwF/tqI4="
|
||||
},
|
||||
{
|
||||
"name": "kube-state-metrics",
|
||||
|
@ -74,7 +74,7 @@
|
|||
"subdir": "jsonnet/kube-state-metrics"
|
||||
}
|
||||
},
|
||||
"version": "e048e7058295e218066068d8de70772da5bbbc23",
|
||||
"version": "e99fbbc6b2b6539f44b4e769e432016eaabee650",
|
||||
"sum": "cJjGZaLBjcIGrLHZLjRPU9c3KL+ep9rZTb9dbALSKqA="
|
||||
},
|
||||
{
|
||||
|
@ -85,7 +85,7 @@
|
|||
"subdir": "jsonnet/kube-state-metrics-mixin"
|
||||
}
|
||||
},
|
||||
"version": "e048e7058295e218066068d8de70772da5bbbc23",
|
||||
"version": "e99fbbc6b2b6539f44b4e769e432016eaabee650",
|
||||
"sum": "E1GGavnf9PCWBm4WVrxWnc0FIj72UcbcweqGioWrOdU="
|
||||
},
|
||||
{
|
||||
|
@ -96,8 +96,8 @@
|
|||
"subdir": ""
|
||||
}
|
||||
},
|
||||
"version": "12773f7181057163a3761913bb629d7ce9e13bca",
|
||||
"sum": "HvDNaf17rnzrdiRCjofCRrFm+tXfC5M4kmARK7bNBpw="
|
||||
"version": "544148ee3ea4da1ffa1e97ebb66599a9548fde8d",
|
||||
"sum": "6uEUlF5xrvjk8FBLpGaIyfH+3PNAPnzedbTsbqEaB3U="
|
||||
},
|
||||
{
|
||||
"name": "node-mixin",
|
||||
|
@ -107,8 +107,8 @@
|
|||
"subdir": "docs/node-mixin"
|
||||
}
|
||||
},
|
||||
"version": "0107bc794204f50d887898da60032da890637471",
|
||||
"sum": "VKdF0zPMSCiuIuXWblSz2VOeBaXzQ7fp40vz9sxj+Bo="
|
||||
"version": "da5972b5398cd67a8854e6b1ee6b861bfda5ef83",
|
||||
"sum": "ZwrC0+4o1xD6+oPBu1p+rBXLlf6pMBD9rT8ygyl2aW0="
|
||||
},
|
||||
{
|
||||
"name": "prometheus",
|
||||
|
@ -118,7 +118,7 @@
|
|||
"subdir": "documentation/prometheus-mixin"
|
||||
}
|
||||
},
|
||||
"version": "84b00564f4df8477d59ac275e7c62972664c2926",
|
||||
"version": "fe47c9c86ee01cb089b76002cbc047e0f22b5501",
|
||||
"sum": "5EUgr6Spr1zNR8Y2/NevjvEkGV9WMvKo6nEScNER1Lc="
|
||||
},
|
||||
{
|
||||
|
@ -129,8 +129,8 @@
|
|||
"subdir": "jsonnet/prometheus-operator"
|
||||
}
|
||||
},
|
||||
"version": "59bdf55453ba08b4ed7c271cb3c6627058945ed5",
|
||||
"sum": "qwMbUQkdPhAn9Sl4OVLgzmNOuOTnRLUmvv14I0unsa8="
|
||||
"version": "378d36df448366414de53a66a64020cd053002b7",
|
||||
"sum": "vegTm8VSDazwYflBQGLkjs3ystWahwUv0fUyuMbpNRg="
|
||||
},
|
||||
{
|
||||
"name": "prometheus-pushgateway",
|
||||
|
@ -151,7 +151,7 @@
|
|||
"subdir": "lib/promgrafonnet"
|
||||
}
|
||||
},
|
||||
"version": "12773f7181057163a3761913bb629d7ce9e13bca",
|
||||
"version": "544148ee3ea4da1ffa1e97ebb66599a9548fde8d",
|
||||
"sum": "VhgBM39yv0f4bKv8VfGg4FXkg573evGDRalip9ypKbc="
|
||||
},
|
||||
{
|
||||
|
@ -162,8 +162,8 @@
|
|||
"subdir": "slo-libsonnet"
|
||||
}
|
||||
},
|
||||
"version": "5ddd7ffc39e7a54c9aca997c2c389a8046fab0ff",
|
||||
"sum": "S7/+tnAkzVh8Li7sg7Hu4aeIQAWHCtxhRQ+k1OKjoQk="
|
||||
"version": "2615ffbafc121fc0a507b75509764e53c58409e2",
|
||||
"sum": "D9MryEvtOBLzIBC1nU4IvVeJPP+l3P/vpZsC0KG8vnk="
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ metadata:
|
|||
namespace: monitoring
|
||||
spec:
|
||||
encryptedData:
|
||||
alertmanager.yaml: AgAmUkS+d1fSbxwpOqRmih5LXcMHbxziwjZ/7XZrAOouYcQ3sC1TUJ36gqhKrzHEd/RPvMFHGOvYSFP84h4Fszd3UvKhQrt+tf4ljUnkDPOpF8rPdDOglJrUHbfmC+jxiGUBlWUKiG4vxuuq2rUy0RNivLrOyDcpw2xVqMcPvAwzuzYvy51ZtstBFOv/o75xXekent04wtTJdVbPjnCQHyYpECgCb8N5Q1ehjwHQLAsxaECovnVejGoMvKY52/j1oZ4vZYRSzxCULpO90lMcoidCB+TwuA1V+ndEeNA7NDE7Xp6QNLXGolkSfHd9Ot4gajAWNnA1EQHo45IFU2D+6fO/HaazTtJw8AtjLIKW4pAQzIBY2NE7CoNsKFl/tE9eLCr72Y8voRCR3SEncYJ9/6RQOMiC+i3IPevL4UQ+CLqEtEDupW8rwJLD+qERugMDMT5bcd4WRLxDbReE2HB9GexXFVM1y92arBn06+C6wcZZsufXEzCwnJByNCYZpuQmYv34kKyZmvZCxxbspDKcKwsKeuaDysjq23ukdt8+nan2Tow16GAn3KgguGfgiLh05ZJaDzBzqwzT8En5w9Erc/nQoCp97BGSM2CZvoZum0K7RoJWMIblx4kUwFn6TsvXfsSc8mQXFDR35OcsNsqGHvCGMmXsbzO9f0xQ+MrtsTYuVoHg18GSBaYbOB0CgzkKVp55WXFeyrtYOnee2bWeD4C6JkjcbQypE0QcLmJX33UDsILxerHSV+FmBI6fmbdIHMaOL5p3ZVgySTDe3b7v+mOUagAMwTb6ojU44C9Ozbm7RTKpiKx3HglCpzqMMPws3Z7MQ6T8pLEMFWHvdnw3BxOLECiVZBSazp/vbVVeLpM0druv4Yccfpa5vpUQrKMlItIL3O1FNsEa8FO+sa0IleLzSH0hbEGttGFMh8Q9cDJ4QuCo1wsGRxH/52ijwquu/sMZmuXNI/yt/QYgopdD2OhgC8HhsVoMkFlri/KLRS+m5BNN28UpBmBFztOZY+Wz8sFZlPRgGZY1hqHytEgIxot7jhNeuLXOyWkk82+LiQX5aunzHqV4rpoMy5Cu1jCGPO8sF9zUfrH3wTMnVlcFwEChd7DcPO+yJ2w3vanwNIo6XpG0OS3CE8DcgeyyrO+PSyzBeP07kqa504T7cMgLovUzO3A/qVegXBALPo0vl859iGlTFQLRfPUBU9ouFAwznSGkX0HVTlpyCr/XO89p554QUT/HcqKeMe4Y+H6ZtGfq0UIjCGCGDKqUSnx2tPPqbuMDg9GHJBClwWqaGPrj25VM6cCpubbqer6BiNTFrdhLOpJPNsSXF2pUSTquyafelBtTt2ANYXD3JD0Sf0o3arsrN1pWjep/n4ZmwKLlJ+Z3uX22jUj8sSIako0cVJk8zTwfVoan7VMLbSJ7WRkmO+/OgwZ6QR1I1pYdbiDrI6/eRmbYSjk46DTyVF5a8qdLGyJTLlmJjTepef40p/7S6X2fYDK079LAjfz4S3tOu2IF2KlN0GzbHcPMbDfn91plhDebPR9QHbvJlM33RbMr3BLCHSXw3zT2qdkmNVNP5jrwib4sXvrl8L7HYyuR53j3zkgmtlWo7YwaGUD+X3H/vba5mMXx1z/XdNyb/7EHdi8SGfny66WlWT6zz9oa1tEN0dIxdGGIYpcArEhjyyJWKPoFt0DFj0opbPdJhHxLzofh6XAolw==
|
||||
alertmanager.yaml: AgBlhYgX4pIgWPP1u5dNb9lPMoS0BR7Ca3M5kUVRKrkeT6Jn+kLZcju4g7A1WlkQ+jR2ptlaq+MkgYs1GS27wrw/iBsOZIbvfLoyFr4pL5i58WzzxPvk1wFO86oCpLJoK3pDh/eKR4e16BR70Q3DOTMRXEQ8SuOMKFonBPALOllAAXPYQFioF9MN+0MBifvnGe6UrfbXsQCdoL9H0G/OiJv/ZJxJcmx8eJRpJEgeyAQsdi0NNzhg2RiiNDC0qVCIblSxOaGhlNNQxiqLaQW5Uh7DXV2u+Rz1u85dm6lzSazjoXozPdPS4vMEMy8ZmFvzW2S7DhcfBJ0RE99DzGofIT67QIFh4edxCBRtlpYaYDoLKNkNRpp9inTHnQEGLga2qrElOUU5O2OwgC8qKl4k54Zxu4NUlGKr1IDsnbUiBNge+uvrsu/RahCYQ13H5eeJgkIuFSYE9h1qNG+s/lrjNQY7JsL9ZYj1ddn/5ZOYjgkCWs6yjTU+20uboU5vLOK2zawrJ6cvO6FHPjEMrnpcVSUlqIc588Ligg1coU5J0+UkLd1OPKY/5YBuMdNUBsmLfqutHbWSCiz9PgcI8wZsvCkPiyeUP3QlgvnLaQfcNUxv/tlU+Yg2nBYceKDPr3i2CN6IGrN5CxcCKMClEdTZ5xgmREN6sj0gIKPm1TpOdL1BjBcokZSXgYGnmr5XxDv9ybyainqcitSewznxHKbtvszJihHU6XcOr0MKo0L+abfwjlWvcHM+cZAT35xf1xtZ18A2JauwJ94+Flhzro+a1UclnwDQJf8Hp5PhMQRzu5q8WCLOF08N9Xq469K/FB4jtxnrYPJb6hQhZ+/LmLbLL9c3p2g1X+YQWeoUDvAZ6ujjPoBvNxPoLIsXO2Tu77se94e3WGxaHtcEqtFLQujH3jgAHLRp/x9jHoAniBLVo69/Xd6rbLZQ4DLhMlkdkipaM2iQZxoWQ0qHsISVseEu9741IZfveq0MY3acTcwPm7B0JXAn8dLmdv1BNrRo0/Xxgysdn3DybFmJ7AlFCi3iKacsIvnjEdZgCD3ogFyySSu/b52IyrhOl6WKLZaLURLHe8mxx8kXbRVVOQQ162Xgtx4viqg15yF15Qt0NmMXzU+hQc/XmVRuRVYPYhFuRAQVCD40ENwt/X3/ae/Mkfc2jzWvN3O+VfbepKfc4D+jVM1mv+E2dS4ZcWPmvvIXiLKJMcscZBr75bO6pt8LaMgz+n+ZPJRJzKa+yESbOYefNuP8DuwImPD8ridLBWR49EZD/P3I/7ZwJjHXH+VpYxMErcKI5R2znnLrnCBgMAV8M78vzbzuJ7Ljb6RkjCSU4NWnIAZmxgldbSLoHwXK57yoW+HDC9twDcvR40XL2NGSlChtd+x9M/mgHuS/NpAalJtF0zlo/hbaCSwE56wUYpjO9yx/rhj1wrYIbdAZ/aJaPcpi8cbhDltFMZT6OrWoCCiKR69wB3/HFSHd+SnLTBb1mdfqPwngekfe2TRQ7kXMfbPiBYJC6H5rQHHojmSGwl4AHL6qJ3InXGSG1FFnnc/roGGffjkpbIdmkqPfwn4Ob60xJwdLEYFEs1TOrOnKhTJfgc723EZr8AdVNhXbUlEiVyNhbyp4hHvzeybqMryEGuhKZIMD+GnfWC3/TSKFJC8wwFSOdmnjD3FhTF3ZEX4ehuhZLtE7sJjftjDXyrjVOF3eXlp9bQ==
|
||||
template:
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
|
|
|
@ -4305,7 +4305,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "1 - avg(rate(node_cpu_seconds_total{mode=\"idle\", cluster=\"$cluster\"}[$interval]))",
|
||||
"expr": "1 - avg(rate(node_cpu_seconds_total{mode=\"idle\", cluster=\"$cluster\"}[$__interval]))",
|
||||
"format": "time_series",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -5807,7 +5807,7 @@ items:
|
|||
],
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -5816,7 +5816,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -5825,7 +5825,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -5834,7 +5834,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(irate(container_network_transmit_packets_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "sum(irate(container_network_transmit_packets_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -5843,7 +5843,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -5852,7 +5852,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -5952,7 +5952,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{namespace}}",
|
||||
|
@ -6050,7 +6050,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{namespace}}",
|
||||
|
@ -6148,7 +6148,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "avg(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "avg(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{namespace}}",
|
||||
|
@ -6246,7 +6246,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "avg(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "avg(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{namespace}}",
|
||||
|
@ -6344,7 +6344,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{namespace}}",
|
||||
|
@ -6442,7 +6442,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{namespace}}",
|
||||
|
@ -6540,7 +6540,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{namespace}}",
|
||||
|
@ -6638,7 +6638,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\".+\"}[$interval])) by (namespace)",
|
||||
"expr": "sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\".+\"}[$__interval])) by (namespace)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{namespace}}",
|
||||
|
@ -6745,41 +6745,6 @@ items:
|
|||
"type": "query",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"auto": false,
|
||||
"auto_count": 30,
|
||||
"auto_min": "10s",
|
||||
"current": {
|
||||
"text": "5m",
|
||||
"value": "5m"
|
||||
},
|
||||
"datasource": "$datasource",
|
||||
"hide": 2,
|
||||
"includeAll": false,
|
||||
"label": null,
|
||||
"multi": false,
|
||||
"name": "interval",
|
||||
"options": [
|
||||
{
|
||||
"selected": true,
|
||||
"text": "$__interval",
|
||||
"value": "$__interval"
|
||||
}
|
||||
],
|
||||
"query": "$__interval",
|
||||
"refresh": 2,
|
||||
"regex": "",
|
||||
"skipUrlSync": false,
|
||||
"sort": 1,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [
|
||||
|
||||
],
|
||||
"tagsQuery": "",
|
||||
"type": "interval",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"current": {
|
||||
|
@ -8285,7 +8250,7 @@ items:
|
|||
],
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -8294,7 +8259,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -8303,7 +8268,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -8312,7 +8277,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(irate(container_network_transmit_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_transmit_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -8321,7 +8286,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -8330,7 +8295,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])) by (pod)",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -8430,7 +8395,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -8528,7 +8493,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -8626,7 +8591,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -8724,7 +8689,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -8822,7 +8787,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -8920,7 +8885,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -9000,41 +8965,6 @@ items:
|
|||
"regex": "",
|
||||
"type": "datasource"
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"auto": false,
|
||||
"auto_count": 30,
|
||||
"auto_min": "10s",
|
||||
"current": {
|
||||
"text": "5m",
|
||||
"value": "5m"
|
||||
},
|
||||
"datasource": "$datasource",
|
||||
"hide": 2,
|
||||
"includeAll": false,
|
||||
"label": null,
|
||||
"multi": false,
|
||||
"name": "interval",
|
||||
"options": [
|
||||
{
|
||||
"selected": true,
|
||||
"text": "$__interval",
|
||||
"value": "$__interval"
|
||||
}
|
||||
],
|
||||
"query": "$__interval",
|
||||
"refresh": 2,
|
||||
"regex": "",
|
||||
"skipUrlSync": false,
|
||||
"sort": 1,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [
|
||||
|
||||
],
|
||||
"tagsQuery": "",
|
||||
"type": "interval",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"current": {
|
||||
|
@ -9982,41 +9912,6 @@ items:
|
|||
"regex": "",
|
||||
"type": "datasource"
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"auto": false,
|
||||
"auto_count": 30,
|
||||
"auto_min": "10s",
|
||||
"current": {
|
||||
"text": "5m",
|
||||
"value": "5m"
|
||||
},
|
||||
"datasource": "$datasource",
|
||||
"hide": 2,
|
||||
"includeAll": false,
|
||||
"label": null,
|
||||
"multi": false,
|
||||
"name": "interval",
|
||||
"options": [
|
||||
{
|
||||
"selected": true,
|
||||
"text": "$__interval",
|
||||
"value": "$__interval"
|
||||
}
|
||||
],
|
||||
"query": "$__interval",
|
||||
"refresh": 2,
|
||||
"regex": "",
|
||||
"skipUrlSync": false,
|
||||
"sort": 1,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [
|
||||
|
||||
],
|
||||
"tagsQuery": "",
|
||||
"type": "interval",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"current": {
|
||||
|
@ -11155,7 +11050,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_bytes_total{namespace=~\"$namespace\", pod=~\"$pod\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_receive_bytes_total{namespace=~\"$namespace\", pod=~\"$pod\"}[$__interval])) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -11253,7 +11148,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_transmit_bytes_total{namespace=~\"$namespace\", pod=~\"$pod\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_transmit_bytes_total{namespace=~\"$namespace\", pod=~\"$pod\"}[$__interval])) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -11351,7 +11246,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_packets_total{namespace=~\"$namespace\", pod=~\"$pod\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_receive_packets_total{namespace=~\"$namespace\", pod=~\"$pod\"}[$__interval])) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -11449,7 +11344,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_transmit_packets_total{namespace=~\"$namespace\", pod=~\"$pod\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_transmit_packets_total{namespace=~\"$namespace\", pod=~\"$pod\"}[$__interval])) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -11547,7 +11442,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_receive_packets_dropped_total{namespace=~\"$namespace\", pod=~\"$pod\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_receive_packets_dropped_total{namespace=~\"$namespace\", pod=~\"$pod\"}[$__interval])) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -11645,7 +11540,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "sum(irate(container_network_transmit_packets_dropped_total{namespace=~\"$namespace\", pod=~\"$pod\"}[$interval])) by (pod)",
|
||||
"expr": "sum(irate(container_network_transmit_packets_dropped_total{namespace=~\"$namespace\", pod=~\"$pod\"}[$__interval])) by (pod)",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -11725,41 +11620,6 @@ items:
|
|||
"regex": "",
|
||||
"type": "datasource"
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"auto": false,
|
||||
"auto_count": 30,
|
||||
"auto_min": "10s",
|
||||
"current": {
|
||||
"text": "5m",
|
||||
"value": "5m"
|
||||
},
|
||||
"datasource": "$datasource",
|
||||
"hide": 2,
|
||||
"includeAll": false,
|
||||
"label": null,
|
||||
"multi": false,
|
||||
"name": "interval",
|
||||
"options": [
|
||||
{
|
||||
"selected": true,
|
||||
"text": "$__interval",
|
||||
"value": "$__interval"
|
||||
}
|
||||
],
|
||||
"query": "$__interval",
|
||||
"refresh": 2,
|
||||
"regex": "",
|
||||
"skipUrlSync": false,
|
||||
"sort": 1,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [
|
||||
|
||||
],
|
||||
"tagsQuery": "",
|
||||
"type": "interval",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"current": {
|
||||
|
@ -12820,7 +12680,7 @@ items:
|
|||
],
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -12829,7 +12689,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "(sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -12838,7 +12698,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "(sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -12847,7 +12707,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "(sum(irate(container_network_transmit_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(sum(irate(container_network_transmit_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -12856,7 +12716,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "(sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -12865,7 +12725,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "(sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -12965,7 +12825,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -13063,7 +12923,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -13161,7 +13021,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(avg(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(avg(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -13259,7 +13119,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(avg(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(avg(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -13357,7 +13217,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -13455,7 +13315,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_transmit_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(sum(irate(container_network_transmit_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -13553,7 +13413,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -13651,7 +13511,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod) \ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"expr": "(sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\"$workload\", workload_type=\"$type\"}) by (pod))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{pod}}",
|
||||
|
@ -13731,41 +13591,6 @@ items:
|
|||
"regex": "",
|
||||
"type": "datasource"
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"auto": false,
|
||||
"auto_count": 30,
|
||||
"auto_min": "10s",
|
||||
"current": {
|
||||
"text": "5m",
|
||||
"value": "5m"
|
||||
},
|
||||
"datasource": "$datasource",
|
||||
"hide": 2,
|
||||
"includeAll": false,
|
||||
"label": null,
|
||||
"multi": false,
|
||||
"name": "interval",
|
||||
"options": [
|
||||
{
|
||||
"selected": true,
|
||||
"text": "$__interval",
|
||||
"value": "$__interval"
|
||||
}
|
||||
],
|
||||
"query": "$__interval",
|
||||
"refresh": 2,
|
||||
"regex": "",
|
||||
"skipUrlSync": false,
|
||||
"sort": 1,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [
|
||||
|
||||
],
|
||||
"tagsQuery": "",
|
||||
"type": "interval",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"current": {
|
||||
|
@ -13827,7 +13652,7 @@ items:
|
|||
"value": ""
|
||||
},
|
||||
"datasource": "$datasource",
|
||||
"hide": 2,
|
||||
"hide": 0,
|
||||
"includeAll": false,
|
||||
"label": null,
|
||||
"multi": false,
|
||||
|
@ -15031,7 +14856,7 @@ items:
|
|||
],
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -15040,7 +14865,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "(sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -15049,7 +14874,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "(sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -15058,7 +14883,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "(sum(irate(container_network_transmit_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(sum(irate(container_network_transmit_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -15067,7 +14892,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "(sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -15076,7 +14901,7 @@ items:
|
|||
"step": 10
|
||||
},
|
||||
{
|
||||
"expr": "(sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "table",
|
||||
"instant": true,
|
||||
"intervalFactor": 2,
|
||||
|
@ -15176,7 +15001,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(sum(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{workload}}",
|
||||
|
@ -15274,7 +15099,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(sum(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{workload}}",
|
||||
|
@ -15372,7 +15197,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(avg(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(avg(irate(container_network_receive_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{workload}}",
|
||||
|
@ -15470,7 +15295,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(avg(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(avg(irate(container_network_transmit_bytes_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{workload}}",
|
||||
|
@ -15568,7 +15393,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(sum(irate(container_network_receive_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{workload}}",
|
||||
|
@ -15666,7 +15491,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_transmit_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(sum(irate(container_network_transmit_packets_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{workload}}",
|
||||
|
@ -15764,7 +15589,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(sum(irate(container_network_receive_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod)\ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{workload}}",
|
||||
|
@ -15862,7 +15687,7 @@ items:
|
|||
"steppedLine": false,
|
||||
"targets": [
|
||||
{
|
||||
"expr": "(sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$interval])\n* on (namespace,pod) \ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"expr": "(sum(irate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\", namespace=~\"$namespace\"}[$__interval])\n* on (namespace,pod) \ngroup_left(workload,workload_type) mixin_pod_workload{cluster=\"$cluster\", namespace=~\"$namespace\", workload=~\".+\", workload_type=\"$type\"}) by (workload))\n",
|
||||
"format": "time_series",
|
||||
"intervalFactor": 2,
|
||||
"legendFormat": "{{workload}}",
|
||||
|
@ -15942,41 +15767,6 @@ items:
|
|||
"regex": "",
|
||||
"type": "datasource"
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"auto": false,
|
||||
"auto_count": 30,
|
||||
"auto_min": "10s",
|
||||
"current": {
|
||||
"text": "5m",
|
||||
"value": "5m"
|
||||
},
|
||||
"datasource": "$datasource",
|
||||
"hide": 2,
|
||||
"includeAll": false,
|
||||
"label": null,
|
||||
"multi": false,
|
||||
"name": "interval",
|
||||
"options": [
|
||||
{
|
||||
"selected": true,
|
||||
"text": "$__interval",
|
||||
"value": "$__interval"
|
||||
}
|
||||
],
|
||||
"query": "$__interval",
|
||||
"refresh": 2,
|
||||
"regex": "",
|
||||
"skipUrlSync": false,
|
||||
"sort": 1,
|
||||
"tagValuesQuery": "",
|
||||
"tags": [
|
||||
|
||||
],
|
||||
"tagsQuery": "",
|
||||
"type": "interval",
|
||||
"useTags": false
|
||||
},
|
||||
{
|
||||
"allValue": null,
|
||||
"auto": false,
|
||||
|
|
|
@ -37,6 +37,8 @@ spec:
|
|||
ports:
|
||||
- containerPort: 8443
|
||||
name: https-main
|
||||
securityContext:
|
||||
runAsUser: 65534
|
||||
- args:
|
||||
- --logtostderr
|
||||
- --secure-listen-address=:9443
|
||||
|
@ -47,6 +49,8 @@ spec:
|
|||
ports:
|
||||
- containerPort: 9443
|
||||
name: https-self
|
||||
securityContext:
|
||||
runAsUser: 65534
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
serviceAccountName: kube-state-metrics
|
||||
|
|
|
@ -2,17 +2,20 @@ apiVersion: apps/v1
|
|||
kind: DaemonSet
|
||||
metadata:
|
||||
labels:
|
||||
app: node-exporter
|
||||
app.kubernetes.io/name: node-exporter
|
||||
app.kubernetes.io/version: v0.18.1
|
||||
name: node-exporter
|
||||
namespace: monitoring
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: node-exporter
|
||||
app.kubernetes.io/name: node-exporter
|
||||
app.kubernetes.io/version: v0.18.1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: node-exporter
|
||||
app.kubernetes.io/name: node-exporter
|
||||
app.kubernetes.io/version: v0.18.1
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
|
|
|
@ -2,7 +2,8 @@ apiVersion: v1
|
|||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
k8s-app: node-exporter
|
||||
app.kubernetes.io/name: node-exporter
|
||||
app.kubernetes.io/version: v0.18.1
|
||||
name: node-exporter
|
||||
namespace: monitoring
|
||||
spec:
|
||||
|
@ -12,4 +13,5 @@ spec:
|
|||
port: 9100
|
||||
targetPort: https
|
||||
selector:
|
||||
app: node-exporter
|
||||
app.kubernetes.io/name: node-exporter
|
||||
app.kubernetes.io/version: v0.18.1
|
||||
|
|
|
@ -2,7 +2,8 @@ apiVersion: monitoring.coreos.com/v1
|
|||
kind: ServiceMonitor
|
||||
metadata:
|
||||
labels:
|
||||
k8s-app: node-exporter
|
||||
app.kubernetes.io/name: node-exporter
|
||||
app.kubernetes.io/version: v0.18.1
|
||||
name: node-exporter
|
||||
namespace: monitoring
|
||||
spec:
|
||||
|
@ -20,7 +21,8 @@ spec:
|
|||
scheme: https
|
||||
tlsConfig:
|
||||
insecureSkipVerify: true
|
||||
jobLabel: k8s-app
|
||||
jobLabel: app.kubernetes.io/name
|
||||
selector:
|
||||
matchLabels:
|
||||
k8s-app: node-exporter
|
||||
app.kubernetes.io/name: node-exporter
|
||||
app.kubernetes.io/version: v0.18.1
|
||||
|
|
|
@ -3,8 +3,8 @@ data:
|
|||
config.yaml: |
|
||||
resourceRules:
|
||||
cpu:
|
||||
containerQuery: sum(rate(container_cpu_usage_seconds_total{<<.LabelMatchers>>,container!="POD",container!="",pod!=""}[5m])) by (<<.GroupBy>>)
|
||||
nodeQuery: sum(1 - rate(node_cpu_seconds_total{mode="idle"}[5m]) * on(namespace, pod) group_left(node) node_namespace_pod:kube_pod_info:{<<.LabelMatchers>>}) by (<<.GroupBy>>)
|
||||
containerQuery: sum(irate(container_cpu_usage_seconds_total{<<.LabelMatchers>>,container!="POD",container!="",pod!=""}[5m])) by (<<.GroupBy>>)
|
||||
nodeQuery: sum(1 - irate(node_cpu_seconds_total{mode="idle"}[5m]) * on(namespace, pod) group_left(node) node_namespace_pod:kube_pod_info:{<<.LabelMatchers>>}) by (<<.GroupBy>>)
|
||||
resources:
|
||||
overrides:
|
||||
node:
|
||||
|
|
|
@ -4,15 +4,19 @@ metadata:
|
|||
labels:
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/name: prometheus-operator
|
||||
app.kubernetes.io/version: v0.37.0
|
||||
app.kubernetes.io/version: v0.38.0
|
||||
name: prometheus-operator
|
||||
namespace: monitoring
|
||||
spec:
|
||||
endpoints:
|
||||
- honorLabels: true
|
||||
port: http
|
||||
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
|
||||
honorLabels: true
|
||||
port: https
|
||||
scheme: https
|
||||
tlsConfig:
|
||||
insecureSkipVerify: true
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/name: prometheus-operator
|
||||
app.kubernetes.io/version: v0.37.0
|
||||
app.kubernetes.io/version: v0.38.0
|
||||
|
|
|
@ -182,22 +182,22 @@ spec:
|
|||
- name: kube-apiserver.rules
|
||||
rules:
|
||||
- expr: |
|
||||
sum(rate(apiserver_request_duration_seconds_sum{subresource!="log",verb!~"LIST|WATCH|WATCHLIST|PROXY|CONNECT"}[5m])) without(instance, pod)
|
||||
sum(rate(apiserver_request_duration_seconds_sum{subresource!="log",verb!~"LIST|WATCH|WATCHLIST|DELETECOLLECTION|PROXY|CONNECT"}[5m])) without(instance, pod)
|
||||
/
|
||||
sum(rate(apiserver_request_duration_seconds_count{subresource!="log",verb!~"LIST|WATCH|WATCHLIST|PROXY|CONNECT"}[5m])) without(instance, pod)
|
||||
sum(rate(apiserver_request_duration_seconds_count{subresource!="log",verb!~"LIST|WATCH|WATCHLIST|DELETECOLLECTION|PROXY|CONNECT"}[5m])) without(instance, pod)
|
||||
record: cluster:apiserver_request_duration_seconds:mean5m
|
||||
- expr: |
|
||||
histogram_quantile(0.99, sum(rate(apiserver_request_duration_seconds_bucket{job="apiserver",subresource!="log",verb!~"LIST|WATCH|WATCHLIST|PROXY|CONNECT"}[5m])) without(instance, pod))
|
||||
histogram_quantile(0.99, sum(rate(apiserver_request_duration_seconds_bucket{job="apiserver",subresource!="log",verb!~"LIST|WATCH|WATCHLIST|DELETECOLLECTION|PROXY|CONNECT"}[5m])) without(instance, pod))
|
||||
labels:
|
||||
quantile: "0.99"
|
||||
record: cluster_quantile:apiserver_request_duration_seconds:histogram_quantile
|
||||
- expr: |
|
||||
histogram_quantile(0.9, sum(rate(apiserver_request_duration_seconds_bucket{job="apiserver",subresource!="log",verb!~"LIST|WATCH|WATCHLIST|PROXY|CONNECT"}[5m])) without(instance, pod))
|
||||
histogram_quantile(0.9, sum(rate(apiserver_request_duration_seconds_bucket{job="apiserver",subresource!="log",verb!~"LIST|WATCH|WATCHLIST|DELETECOLLECTION|PROXY|CONNECT"}[5m])) without(instance, pod))
|
||||
labels:
|
||||
quantile: "0.9"
|
||||
record: cluster_quantile:apiserver_request_duration_seconds:histogram_quantile
|
||||
- expr: |
|
||||
histogram_quantile(0.5, sum(rate(apiserver_request_duration_seconds_bucket{job="apiserver",subresource!="log",verb!~"LIST|WATCH|WATCHLIST|PROXY|CONNECT"}[5m])) without(instance, pod))
|
||||
histogram_quantile(0.5, sum(rate(apiserver_request_duration_seconds_bucket{job="apiserver",subresource!="log",verb!~"LIST|WATCH|WATCHLIST|DELETECOLLECTION|PROXY|CONNECT"}[5m])) without(instance, pod))
|
||||
labels:
|
||||
quantile: "0.5"
|
||||
record: cluster_quantile:apiserver_request_duration_seconds:histogram_quantile
|
||||
|
@ -605,6 +605,47 @@ spec:
|
|||
for: 1h
|
||||
labels:
|
||||
severity: warning
|
||||
- alert: NodeHighNumberConntrackEntriesUsed
|
||||
annotations:
|
||||
description: '{{ $value | humanizePercentage }} of conntrack entries are used'
|
||||
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-nodehighnumberconntrackentriesused
|
||||
summary: Number of conntrack are getting close to the limit
|
||||
expr: |
|
||||
(node_nf_conntrack_entries / node_nf_conntrack_entries_limit) > 0.75
|
||||
labels:
|
||||
severity: warning
|
||||
- alert: NodeClockSkewDetected
|
||||
annotations:
|
||||
message: Clock on {{ $labels.instance }} is out of sync by more than 300s.
|
||||
Ensure NTP is configured correctly on this host.
|
||||
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-nodeclockskewdetected
|
||||
summary: Clock skew detected.
|
||||
expr: |
|
||||
(
|
||||
node_timex_offset_seconds > 0.05
|
||||
and
|
||||
deriv(node_timex_offset_seconds[5m]) >= 0
|
||||
)
|
||||
or
|
||||
(
|
||||
node_timex_offset_seconds < -0.05
|
||||
and
|
||||
deriv(node_timex_offset_seconds[5m]) <= 0
|
||||
)
|
||||
for: 10m
|
||||
labels:
|
||||
severity: warning
|
||||
- alert: NodeClockNotSynchronising
|
||||
annotations:
|
||||
message: Clock on {{ $labels.instance }} is not synchronising. Ensure NTP
|
||||
is configured on this host.
|
||||
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-nodeclocknotsynchronising
|
||||
summary: Clock not synchronising.
|
||||
expr: |
|
||||
min_over_time(node_timex_sync_status[5m]) == 0
|
||||
for: 10m
|
||||
labels:
|
||||
severity: warning
|
||||
- name: kubernetes-apps
|
||||
rules:
|
||||
- alert: KubePodCrashLooping
|
||||
|
@ -824,11 +865,11 @@ spec:
|
|||
for: 5m
|
||||
labels:
|
||||
severity: warning
|
||||
- alert: KubeMemOvercommit
|
||||
- alert: KubeMemoryOvercommit
|
||||
annotations:
|
||||
message: Cluster has overcommitted memory resource requests for Pods and cannot
|
||||
tolerate node failure.
|
||||
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubememovercommit
|
||||
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubememoryovercommit
|
||||
expr: |
|
||||
sum(namespace:kube_pod_container_resource_requests_memory_bytes:sum{})
|
||||
/
|
||||
|
@ -840,10 +881,10 @@ spec:
|
|||
for: 5m
|
||||
labels:
|
||||
severity: warning
|
||||
- alert: KubeCPUOvercommit
|
||||
- alert: KubeCPUQuotaOvercommit
|
||||
annotations:
|
||||
message: Cluster has overcommitted CPU resource requests for Namespaces.
|
||||
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubecpuovercommit
|
||||
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubecpuquotaovercommit
|
||||
expr: |
|
||||
sum(kube_resourcequota{job="kube-state-metrics", type="hard", resource="cpu"})
|
||||
/
|
||||
|
@ -852,10 +893,10 @@ spec:
|
|||
for: 5m
|
||||
labels:
|
||||
severity: warning
|
||||
- alert: KubeMemOvercommit
|
||||
- alert: KubeMemoryQuotaOvercommit
|
||||
annotations:
|
||||
message: Cluster has overcommitted memory resource requests for Namespaces.
|
||||
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubememovercommit
|
||||
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubememoryquotaovercommit
|
||||
expr: |
|
||||
sum(kube_resourcequota{job="kube-state-metrics", type="hard", resource="memory"})
|
||||
/
|
||||
|
@ -1137,7 +1178,7 @@ spec:
|
|||
}} of its Pod capacity.
|
||||
runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubelettoomanypods
|
||||
expr: |
|
||||
max(max(kubelet_running_pod_count{job="kubelet", metrics_path="/metrics"}) by(instance) * on(instance) group_left(node) kubelet_node_name{job="kubelet", metrics_path="/metrics"}) by(node) / max(kube_node_status_capacity_pods{job="kube-state-metrics"}) by(node) > 0.95
|
||||
max(max(kubelet_running_pod_count{job="kubelet", metrics_path="/metrics"}) by(instance) * on(instance) group_left(node) kubelet_node_name{job="kubelet", metrics_path="/metrics"}) by(node) / max(kube_node_status_capacity_pods{job="kube-state-metrics"} != 1) by(node) > 0.95
|
||||
for: 15m
|
||||
labels:
|
||||
severity: warning
|
||||
|
@ -1459,17 +1500,6 @@ spec:
|
|||
expr: vector(1)
|
||||
labels:
|
||||
severity: none
|
||||
- name: node-time
|
||||
rules:
|
||||
- alert: ClockSkewDetected
|
||||
annotations:
|
||||
message: Clock skew detected on node-exporter {{ $labels.namespace }}/{{ $labels.pod
|
||||
}}. Ensure NTP is configured correctly on this host.
|
||||
expr: |
|
||||
abs(node_timex_offset_seconds{job="node-exporter"}) > 0.05
|
||||
for: 2m
|
||||
labels:
|
||||
severity: warning
|
||||
- name: node-network
|
||||
rules:
|
||||
- alert: NodeNetworkInterfaceFlapping
|
||||
|
|
|
@ -123,7 +123,7 @@ spec:
|
|||
description: HTTP path to scrape for metrics.
|
||||
type: string
|
||||
port:
|
||||
description: Name of the port this endpoint refers to. Mutually
|
||||
description: Name of the pod port this endpoint refers to. Mutually
|
||||
exclusive with targetPort.
|
||||
type: string
|
||||
proxyUrl:
|
||||
|
@ -186,8 +186,7 @@ spec:
|
|||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Name or number of the target port of the endpoint.
|
||||
Mutually exclusive with port.
|
||||
description: 'Deprecated: Use ''port'' instead.'
|
||||
x-kubernetes-int-or-string: true
|
||||
type: object
|
||||
type: array
|
||||
|
|
|
@ -4483,6 +4483,128 @@ spec:
|
|||
baseImage:
|
||||
description: Thanos base image if other than default.
|
||||
type: string
|
||||
grpcServerTlsConfig:
|
||||
description: 'GRPCServerTLSConfig configures the gRPC server from
|
||||
which Thanos Querier reads recorded rule data. Note: Currently
|
||||
only the CAFile, CertFile, and KeyFile fields are supported. Maps
|
||||
to the ''--grpc-server-tls-*'' CLI args.'
|
||||
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
|
||||
image:
|
||||
description: Image if specified has precedence over baseImage, tag
|
||||
and sha combinations. Specifying the version is still necessary
|
||||
|
@ -4606,6 +4728,47 @@ spec:
|
|||
version:
|
||||
description: Version of Prometheus to be deployed.
|
||||
type: string
|
||||
volumeMounts:
|
||||
description: VolumeMounts allows configuration of additional VolumeMounts
|
||||
on the output StatefulSet definition. VolumeMounts specified will
|
||||
be appended to other VolumeMounts in the prometheus container, that
|
||||
are generated as a result of StorageSpec objects.
|
||||
items:
|
||||
description: VolumeMount describes a mounting of a Volume within a
|
||||
container.
|
||||
properties:
|
||||
mountPath:
|
||||
description: Path within the container at which the volume should
|
||||
be mounted. Must not contain ':'.
|
||||
type: string
|
||||
mountPropagation:
|
||||
description: mountPropagation determines how mounts are propagated
|
||||
from the host to container and the other way around. When not
|
||||
set, MountPropagationNone is used. This field is beta in 1.10.
|
||||
type: string
|
||||
name:
|
||||
description: This must match the Name of a Volume.
|
||||
type: string
|
||||
readOnly:
|
||||
description: Mounted read-only if true, read-write otherwise (false
|
||||
or unspecified). Defaults to false.
|
||||
type: boolean
|
||||
subPath:
|
||||
description: Path within the volume from which the container's
|
||||
volume should be mounted. Defaults to "" (volume's root).
|
||||
type: string
|
||||
subPathExpr:
|
||||
description: Expanded path within the volume from which the container's
|
||||
volume should be mounted. Behaves similarly to SubPath but environment
|
||||
variable references $(VAR_NAME) are expanded using the container's
|
||||
environment. Defaults to "" (volume's root). SubPathExpr and
|
||||
SubPath are mutually exclusive.
|
||||
type: string
|
||||
required:
|
||||
- mountPath
|
||||
- name
|
||||
type: object
|
||||
type: array
|
||||
volumes:
|
||||
description: Volumes allows configuration of additional volumes on the
|
||||
output StatefulSet definition. Volumes specified will be appended
|
||||
|
|
|
@ -235,8 +235,8 @@ spec:
|
|||
anyOf:
|
||||
- type: integer
|
||||
- type: string
|
||||
description: Name or number of the target port of the endpoint.
|
||||
Mutually exclusive with port.
|
||||
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
|
||||
|
|
|
@ -632,10 +632,13 @@ spec:
|
|||
- key
|
||||
type: object
|
||||
alertmanagersUrl:
|
||||
description: Define URL to send alerts to alertmanager. For Thanos
|
||||
v0.10.0 and higher, AlertManagersConfig should be used instead. Maps
|
||||
to the `alertmanagers.url` arg.
|
||||
type: string
|
||||
description: 'Define URLs to send alerts to Alertmanager. For Thanos
|
||||
v0.10.0 and higher, AlertManagersConfig should be used instead. Note:
|
||||
this field will be ignored if AlertManagersConfig is specified. Maps
|
||||
to the `alertmanagers.url` arg.'
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
containers:
|
||||
description: 'Containers allows injecting additional containers or modifying
|
||||
operator generated containers. This can be used to allow adding an
|
||||
|
@ -1692,6 +1695,126 @@ spec:
|
|||
under. This is necessary to generate correct URLs. This is necessary
|
||||
if Thanos Ruler is not served from root of a DNS name.
|
||||
type: string
|
||||
grpcServerTlsConfig:
|
||||
description: 'GRPCServerTLSConfig configures the gRPC server from which
|
||||
Thanos Querier reads recorded rule data. Note: Currently only the
|
||||
CAFile, CertFile, and KeyFile fields are supported. Maps to the ''--grpc-server-tls-*''
|
||||
CLI args.'
|
||||
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
|
||||
image:
|
||||
description: Thanos container image URL.
|
||||
type: string
|
||||
|
@ -2821,6 +2944,26 @@ spec:
|
|||
priorityClassName:
|
||||
description: Priority class assigned to the Pods
|
||||
type: string
|
||||
queryConfig:
|
||||
description: Define configuration for connecting to thanos query instances.
|
||||
If this is defined, the QueryEndpoints field will be ignored. Maps
|
||||
to the `query.config` CLI argument. Only available with thanos v0.11.0
|
||||
and higher.
|
||||
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
|
||||
queryEndpoints:
|
||||
description: QueryEndpoints defines Thanos querier endpoints from which
|
||||
to query metrics. Maps to the --query flag of thanos ruler.
|
||||
|
@ -4528,8 +4671,6 @@ spec:
|
|||
- name
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- queryEndpoints
|
||||
type: object
|
||||
status:
|
||||
description: 'Most recent observed status of the ThanosRuler cluster. Read-only.
|
||||
|
|
|
@ -4,7 +4,7 @@ metadata:
|
|||
labels:
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/name: prometheus-operator
|
||||
app.kubernetes.io/version: v0.37.0
|
||||
app.kubernetes.io/version: v0.38.0
|
||||
name: prometheus-operator
|
||||
rules:
|
||||
- apiGroups:
|
||||
|
@ -87,3 +87,15 @@ rules:
|
|||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- authentication.k8s.io
|
||||
resources:
|
||||
- tokenreviews
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- authorization.k8s.io
|
||||
resources:
|
||||
- subjectaccessreviews
|
||||
verbs:
|
||||
- create
|
||||
|
|
|
@ -4,7 +4,7 @@ metadata:
|
|||
labels:
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/name: prometheus-operator
|
||||
app.kubernetes.io/version: v0.37.0
|
||||
app.kubernetes.io/version: v0.38.0
|
||||
name: prometheus-operator
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
|
|
@ -4,7 +4,7 @@ metadata:
|
|||
labels:
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/name: prometheus-operator
|
||||
app.kubernetes.io/version: v0.37.0
|
||||
app.kubernetes.io/version: v0.38.0
|
||||
name: prometheus-operator
|
||||
namespace: monitoring
|
||||
spec:
|
||||
|
@ -18,15 +18,15 @@ spec:
|
|||
labels:
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/name: prometheus-operator
|
||||
app.kubernetes.io/version: v0.37.0
|
||||
app.kubernetes.io/version: v0.38.0
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --kubelet-service=kube-system/kubelet
|
||||
- --logtostderr=true
|
||||
- --config-reloader-image=jimmidyson/configmap-reload:v0.3.0
|
||||
- --prometheus-config-reloader=quay.io/coreos/prometheus-config-reloader:v0.37.0
|
||||
image: quay.io/coreos/prometheus-operator:v0.37.0
|
||||
- --prometheus-config-reloader=quay.io/coreos/prometheus-config-reloader:v0.38.0
|
||||
image: quay.io/coreos/prometheus-operator:v0.38.0
|
||||
name: prometheus-operator
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
|
@ -40,6 +40,18 @@ spec:
|
|||
memory: 100Mi
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
- args:
|
||||
- --logtostderr
|
||||
- --secure-listen-address=:8443
|
||||
- --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
|
||||
- --upstream=http://127.0.0.1:8080/
|
||||
image: quay.io/coreos/kube-rbac-proxy:v0.4.1
|
||||
name: kube-rbac-proxy
|
||||
ports:
|
||||
- containerPort: 8443
|
||||
name: https
|
||||
securityContext:
|
||||
runAsUser: 65534
|
||||
nodeSelector:
|
||||
beta.kubernetes.io/os: linux
|
||||
securityContext:
|
||||
|
|
|
@ -4,15 +4,15 @@ metadata:
|
|||
labels:
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/name: prometheus-operator
|
||||
app.kubernetes.io/version: v0.37.0
|
||||
app.kubernetes.io/version: v0.38.0
|
||||
name: prometheus-operator
|
||||
namespace: monitoring
|
||||
spec:
|
||||
clusterIP: None
|
||||
ports:
|
||||
- name: http
|
||||
port: 8080
|
||||
targetPort: http
|
||||
- name: https
|
||||
port: 8443
|
||||
targetPort: https
|
||||
selector:
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/name: prometheus-operator
|
||||
|
|
|
@ -4,6 +4,6 @@ metadata:
|
|||
labels:
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/name: prometheus-operator
|
||||
app.kubernetes.io/version: v0.37.0
|
||||
app.kubernetes.io/version: v0.38.0
|
||||
name: prometheus-operator
|
||||
namespace: monitoring
|
||||
|
|
39
monitoring/vendor/grafonnet/dashlist.libsonnet
vendored
Normal file
39
monitoring/vendor/grafonnet/dashlist.libsonnet
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
/**
|
||||
* Returns a new dashlist panel that can be added in a row.
|
||||
* It requires the dashlist panel plugin in grafana, which is built-in.
|
||||
*
|
||||
* @param title The title of the dashlist panel.
|
||||
* @param description Description of the panel
|
||||
* @param query Query to search by
|
||||
* @param tags Tag(s) to search by
|
||||
* @param recent Displays recently viewed dashboards
|
||||
* @param search Description of the panel
|
||||
* @param starred Displays starred dashboards
|
||||
* @param headings Chosen list selection(starred, recently Viewed, search) is shown as a heading
|
||||
* @param limit Set maximum items in a list
|
||||
* @return A json that represents a dashlist panel
|
||||
*/
|
||||
new(
|
||||
title,
|
||||
description=null,
|
||||
query=null,
|
||||
tags=[],
|
||||
recent=true,
|
||||
search=false,
|
||||
starred=false,
|
||||
headings=true,
|
||||
limit=10,
|
||||
):: {
|
||||
type: 'dashlist',
|
||||
title: title,
|
||||
query: if query != null then query else '',
|
||||
tags: tags,
|
||||
recent: recent,
|
||||
search: search,
|
||||
starred: starred,
|
||||
headings: headings,
|
||||
limit: limit,
|
||||
[if description != null then 'description']: description,
|
||||
},
|
||||
}
|
|
@ -7,16 +7,20 @@
|
|||
link:: import 'link.libsonnet',
|
||||
annotation:: import 'annotation.libsonnet',
|
||||
graphPanel:: import 'graph_panel.libsonnet',
|
||||
logPanel:: import 'log_panel.libsonnet',
|
||||
tablePanel:: import 'table_panel.libsonnet',
|
||||
singlestat:: import 'singlestat.libsonnet',
|
||||
pieChartPanel:: import 'pie_chart_panel.libsonnet',
|
||||
influxdb:: import 'influxdb.libsonnet',
|
||||
prometheus:: import 'prometheus.libsonnet',
|
||||
loki:: import 'loki.libsonnet',
|
||||
sql:: import 'sql.libsonnet',
|
||||
graphite:: import 'graphite.libsonnet',
|
||||
alertCondition:: import 'alert_condition.libsonnet',
|
||||
cloudwatch:: import 'cloudwatch.libsonnet',
|
||||
elasticsearch:: import 'elasticsearch.libsonnet',
|
||||
heatmapPanel:: import 'heatmap_panel.libsonnet',
|
||||
dashlist:: import 'dashlist.libsonnet',
|
||||
pluginlist:: import 'pluginlist.libsonnet',
|
||||
gauge:: import 'gauge.libsonnet',
|
||||
}
|
||||
|
|
|
@ -98,6 +98,7 @@
|
|||
legend_sortDesc=null,
|
||||
aliasColors={},
|
||||
thresholds=[],
|
||||
links=[],
|
||||
logBase1Y=1,
|
||||
logBase2Y=1,
|
||||
transparent=false,
|
||||
|
@ -172,7 +173,7 @@
|
|||
[if repeatDirection != null then 'repeatDirection']: repeatDirection,
|
||||
seriesOverrides: [],
|
||||
thresholds: thresholds,
|
||||
links: [],
|
||||
links: links,
|
||||
yaxe(
|
||||
format='short',
|
||||
min=null,
|
||||
|
@ -246,5 +247,8 @@
|
|||
},
|
||||
addConditions(conditions):: std.foldl(function(p, c) p.addCondition(c), conditions, it),
|
||||
},
|
||||
addLink(link):: self {
|
||||
links+: [link],
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
52
monitoring/vendor/grafonnet/log_panel.libsonnet
vendored
Normal file
52
monitoring/vendor/grafonnet/log_panel.libsonnet
vendored
Normal file
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
/**
|
||||
* Returns a new log panel that can be added in a row.
|
||||
* It requires the log panel plugin in grafana, which is built-in.
|
||||
*
|
||||
* @param title The title of the log panel.
|
||||
* @param span Width of the panel
|
||||
* @param datasource Datasource
|
||||
* @showLabels boolean to show or hide labels
|
||||
* @showTime boolean to show or hide time for each line
|
||||
* @wrapLogMessage true to wrap log line to the next line
|
||||
* @sortOrder sort log by time (can be Descending or Ascending )
|
||||
* @return A json that represents a log panel
|
||||
*/
|
||||
new(
|
||||
title='',
|
||||
datasource=null,
|
||||
time_from=null,
|
||||
time_shift=null,
|
||||
showLabels=false,
|
||||
showTime=true,
|
||||
sortOrder='Descending',
|
||||
wrapLogMessage=true,
|
||||
span=12,
|
||||
height=null,
|
||||
):: {
|
||||
[if height != null then 'height']: height,
|
||||
span: span,
|
||||
datasource: datasource,
|
||||
options: {
|
||||
showLabels: showLabels,
|
||||
showTime: showTime,
|
||||
sortOrder: sortOrder,
|
||||
wrapLogMessage: wrapLogMessage,
|
||||
},
|
||||
targets: [
|
||||
],
|
||||
_nextTarget:: 0,
|
||||
addTarget(target):: self {
|
||||
// automatically ref id in added targets.
|
||||
// https://github.com/kausalco/public/blob/master/klumps/grafana.libsonnet
|
||||
local nextTarget = super._nextTarget,
|
||||
_nextTarget: nextTarget + 1,
|
||||
targets+: [target { refId: std.char(std.codepoint('A') + nextTarget) }],
|
||||
},
|
||||
addTargets(targets):: std.foldl(function(p, t) p.addTarget(t), targets, self),
|
||||
timeFrom: time_from,
|
||||
timeShift: time_shift,
|
||||
title: title,
|
||||
type: 'logs',
|
||||
},
|
||||
}
|
9
monitoring/vendor/grafonnet/loki.libsonnet
vendored
Normal file
9
monitoring/vendor/grafonnet/loki.libsonnet
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
target(
|
||||
expr,
|
||||
hide=null,
|
||||
):: {
|
||||
[if hide != null then 'hide']: hide,
|
||||
expr: expr,
|
||||
},
|
||||
}
|
21
monitoring/vendor/grafonnet/pluginlist.libsonnet
vendored
Normal file
21
monitoring/vendor/grafonnet/pluginlist.libsonnet
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
/**
|
||||
* Returns a new pluginlist panel that can be added in a row.
|
||||
* It requires the pluginlist panel plugin in grafana, which is built-in.
|
||||
*
|
||||
* @param title The title of the pluginlist panel.
|
||||
* @param description Description of the panel
|
||||
* @param limit Set maximum items in a list
|
||||
* @return A json that represents a pluginlist panel
|
||||
*/
|
||||
new(
|
||||
title,
|
||||
description=null,
|
||||
limit=null,
|
||||
):: {
|
||||
type: 'pluginlist',
|
||||
title: title,
|
||||
[if limit != null then 'limit']: limit,
|
||||
[if description != null then 'description']: description,
|
||||
},
|
||||
}
|
17
monitoring/vendor/grafonnet/template.libsonnet
vendored
17
monitoring/vendor/grafonnet/template.libsonnet
vendored
|
@ -45,7 +45,7 @@
|
|||
)::
|
||||
{
|
||||
current: $.current(current),
|
||||
hide: if hide == '' then 0 else if hide == 'label' then 1 else 2,
|
||||
hide: $.hide(hide),
|
||||
label: label,
|
||||
name: name,
|
||||
query: std.join(',', std.filter($.filterAuto, std.split(query, ','))),
|
||||
|
@ -131,4 +131,19 @@
|
|||
query: query,
|
||||
type: 'custom',
|
||||
},
|
||||
text(
|
||||
name,
|
||||
label=''
|
||||
)::
|
||||
{
|
||||
current: {
|
||||
selected: false,
|
||||
text: '',
|
||||
value: '',
|
||||
},
|
||||
name: name,
|
||||
label: label,
|
||||
query: '',
|
||||
type: 'textbox',
|
||||
},
|
||||
}
|
||||
|
|
|
@ -1,24 +1,6 @@
|
|||
{
|
||||
prometheusAlerts+:: {
|
||||
groups+: [
|
||||
{
|
||||
name: 'node-time',
|
||||
rules: [
|
||||
{
|
||||
alert: 'ClockSkewDetected',
|
||||
annotations: {
|
||||
message: 'Clock skew detected on node-exporter {{ $labels.namespace }}/{{ $labels.pod }}. Ensure NTP is configured correctly on this host.',
|
||||
},
|
||||
expr: |||
|
||||
abs(node_timex_offset_seconds{%(nodeExporterSelector)s}) > 0.05
|
||||
||| % $._config,
|
||||
'for': '2m',
|
||||
labels: {
|
||||
severity: 'warning',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'node-network',
|
||||
rules: [
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
"subdir": "jsonnet/prometheus-operator"
|
||||
}
|
||||
},
|
||||
"version": "release-0.37"
|
||||
"version": "release-0.38"
|
||||
},
|
||||
{
|
||||
"name": "etcd-mixin",
|
||||
|
|
|
@ -5,7 +5,7 @@ local servicePort = k.core.v1.service.mixin.spec.portsType;
|
|||
{
|
||||
prometheus+: {
|
||||
serviceWeaveNet:
|
||||
service.new('weave-net', { 'k8s-app': 'weave-net' }, servicePort.newNamed('weave-net-metrics', 6782, 6782)) +
|
||||
service.new('weave-net', { 'name': 'weave-net' }, servicePort.newNamed('weave-net-metrics', 6782, 6782)) +
|
||||
service.mixin.metadata.withNamespace('kube-system') +
|
||||
service.mixin.metadata.withLabels({ 'k8s-app': 'weave-net' }) +
|
||||
service.mixin.spec.withClusterIp('None'),
|
||||
|
@ -23,7 +23,7 @@ local servicePort = k.core.v1.service.mixin.spec.portsType;
|
|||
jobLabel: 'k8s-app',
|
||||
endpoints: [
|
||||
{
|
||||
port: 'weave-metrics',
|
||||
port: 'weave-net-metrics',
|
||||
path: '/metrics',
|
||||
interval: '15s',
|
||||
},
|
||||
|
|
|
@ -50,7 +50,62 @@ local configMapList = k3.core.v1.configMapList;
|
|||
preserveUnknownFields: null,
|
||||
}),
|
||||
},
|
||||
},
|
||||
service+: {
|
||||
spec+: {
|
||||
ports: [
|
||||
{
|
||||
name: 'https',
|
||||
port: 8443,
|
||||
targetPort: 'https',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
serviceMonitor+: {
|
||||
spec+: {
|
||||
endpoints: [
|
||||
{
|
||||
port: 'https',
|
||||
scheme: 'https',
|
||||
honorLabels: true,
|
||||
bearerTokenFile: '/var/run/secrets/kubernetes.io/serviceaccount/token',
|
||||
tlsConfig: {
|
||||
insecureSkipVerify: true,
|
||||
},
|
||||
},
|
||||
]
|
||||
},
|
||||
},
|
||||
clusterRole+: {
|
||||
rules+: [
|
||||
{
|
||||
apiGroups: ['authentication.k8s.io'],
|
||||
resources: ['tokenreviews'],
|
||||
verbs: ['create'],
|
||||
},
|
||||
{
|
||||
apiGroups: ['authorization.k8s.io'],
|
||||
resources: ['subjectaccessreviews'],
|
||||
verbs: ['create'],
|
||||
},
|
||||
],
|
||||
},
|
||||
} +
|
||||
((import 'kube-prometheus/kube-rbac-proxy/container.libsonnet') {
|
||||
config+:: {
|
||||
kubeRbacProxy: {
|
||||
local cfg = self,
|
||||
image: $._config.imageRepos.kubeRbacProxy + ':' + $._config.versions.kubeRbacProxy,
|
||||
name: 'kube-rbac-proxy',
|
||||
securePortName: 'https',
|
||||
securePort: 8443,
|
||||
secureListenAddress: ':%d' % self.securePort,
|
||||
upstream: 'http://127.0.0.1:8080/',
|
||||
tlsCipherSuites: $._config.tlsCipherSuites,
|
||||
},
|
||||
},
|
||||
}).deploymentMixin,
|
||||
|
||||
grafana+:: {
|
||||
dashboardDefinitions: configMapList.new(super.dashboardDefinitions),
|
||||
serviceMonitor: {
|
||||
|
|
|
@ -35,6 +35,7 @@ local containerPort = container.portsType;
|
|||
spec+: {
|
||||
containers+: [
|
||||
container.new(krp.config.kubeRbacProxy.name, krp.config.kubeRbacProxy.image) +
|
||||
container.mixin.securityContext.withRunAsUser(65534) +
|
||||
container.withArgs([
|
||||
'--logtostderr',
|
||||
'--secure-listen-address=' + krp.config.kubeRbacProxy.secureListenAddress,
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
{
|
||||
_config+:: {
|
||||
versions+:: {
|
||||
kubeStateMetrics: '1.9.5',
|
||||
},
|
||||
imageRepos+:: {
|
||||
kubeStateMetrics: 'quay.io/coreos/kube-state-metrics',
|
||||
},
|
||||
kubeStateMetrics+:: {
|
||||
scrapeInterval: '30s',
|
||||
scrapeTimeout: '30s',
|
||||
|
@ -9,9 +15,9 @@
|
|||
{
|
||||
local ksm = self,
|
||||
name:: 'kube-state-metrics',
|
||||
namespace:: 'monitoring',
|
||||
version:: '1.9.5', //$._config.versions.kubeStateMetrics,
|
||||
image:: 'quay.io/coreos/kube-state-metrics:v' + ksm.version,
|
||||
namespace:: $._config.namespace,
|
||||
version:: $._config.versions.kubeStateMetrics,
|
||||
image:: $._config.imageRepos.kubeStateMetrics + ':v' + $._config.versions.kubeStateMetrics,
|
||||
service+: {
|
||||
spec+: {
|
||||
ports: [
|
||||
|
|
|
@ -16,6 +16,10 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
|
|||
|
||||
nodeExporter+:: {
|
||||
port: 9100,
|
||||
labels: {
|
||||
'app.kubernetes.io/name': 'node-exporter',
|
||||
'app.kubernetes.io/version': $._config.versions.nodeExporter,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
|
@ -64,7 +68,7 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
|
|||
local toleration = daemonset.mixin.spec.template.spec.tolerationsType;
|
||||
local containerEnv = container.envType;
|
||||
|
||||
local podLabels = { app: 'node-exporter' };
|
||||
local podLabels = $._config.nodeExporter.labels;
|
||||
|
||||
local existsToleration = toleration.new() +
|
||||
toleration.withOperator('Exists');
|
||||
|
@ -154,16 +158,12 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
|
|||
metadata: {
|
||||
name: 'node-exporter',
|
||||
namespace: $._config.namespace,
|
||||
labels: {
|
||||
'k8s-app': 'node-exporter',
|
||||
},
|
||||
labels: $._config.nodeExporter.labels,
|
||||
},
|
||||
spec: {
|
||||
jobLabel: 'k8s-app',
|
||||
jobLabel: 'app.kubernetes.io/name',
|
||||
selector: {
|
||||
matchLabels: {
|
||||
'k8s-app': 'node-exporter',
|
||||
},
|
||||
matchLabels: $._config.nodeExporter.labels,
|
||||
},
|
||||
endpoints: [
|
||||
{
|
||||
|
@ -196,7 +196,7 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
|
|||
|
||||
service.new('node-exporter', $.nodeExporter.daemonset.spec.selector.matchLabels, nodeExporterPort) +
|
||||
service.mixin.metadata.withNamespace($._config.namespace) +
|
||||
service.mixin.metadata.withLabels({ 'k8s-app': 'node-exporter' }) +
|
||||
service.mixin.metadata.withLabels($._config.nodeExporter.labels) +
|
||||
service.mixin.spec.withClusterIp('None'),
|
||||
},
|
||||
}
|
||||
|
|
|
@ -19,8 +19,8 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet';
|
|||
config: |||
|
||||
resourceRules:
|
||||
cpu:
|
||||
containerQuery: sum(rate(container_cpu_usage_seconds_total{<<.LabelMatchers>>,container!="POD",container!="",pod!=""}[5m])) by (<<.GroupBy>>)
|
||||
nodeQuery: sum(1 - rate(node_cpu_seconds_total{mode="idle"}[5m]) * on(namespace, pod) group_left(node) node_namespace_pod:kube_pod_info:{<<.LabelMatchers>>}) by (<<.GroupBy>>)
|
||||
containerQuery: sum(irate(container_cpu_usage_seconds_total{<<.LabelMatchers>>,container!="POD",container!="",pod!=""}[5m])) by (<<.GroupBy>>)
|
||||
nodeQuery: sum(1 - irate(node_cpu_seconds_total{mode="idle"}[5m]) * on(namespace, pod) group_left(node) node_namespace_pod:kube_pod_info:{<<.LabelMatchers>>}) by (<<.GroupBy>>)
|
||||
resources:
|
||||
overrides:
|
||||
node:
|
||||
|
|
2
monitoring/vendor/kubernetes-mixin/OWNERS
vendored
2
monitoring/vendor/kubernetes-mixin/OWNERS
vendored
|
@ -5,9 +5,11 @@ approvers:
|
|||
- csmarchbanks
|
||||
- metalmatze
|
||||
- tomwilkie
|
||||
- s-urbaniak
|
||||
|
||||
reviewers:
|
||||
- brancz
|
||||
- csmarchbanks
|
||||
- metalmatze
|
||||
- tomwilkie
|
||||
- s-urbaniak
|
||||
|
|
|
@ -15,7 +15,7 @@ local lower(x) =
|
|||
|
||||
prometheusAlerts+::
|
||||
local addRunbookURL(rule) = rule {
|
||||
[if 'alert' in rule then 'annotations']+: {
|
||||
[if 'alert' in rule && !('runbook_url' in rule.annotations) then 'annotations']+: {
|
||||
runbook_url: $._config.runbookURLPattern % lower(rule.alert),
|
||||
},
|
||||
};
|
||||
|
|
|
@ -37,8 +37,10 @@
|
|||
},
|
||||
{
|
||||
alert: 'KubeletTooManyPods',
|
||||
// Some node has a capacity of 1 like AWS's Fargate and only exists while a pod is running on it.
|
||||
// We have to ignore this special node in the KubeletTooManyPods alert.
|
||||
expr: |||
|
||||
max(max(kubelet_running_pod_count{%(kubeletSelector)s}) by(instance) * on(instance) group_left(node) kubelet_node_name{%(kubeletSelector)s}) by(node) / max(kube_node_status_capacity_pods{%(kubeStateMetricsSelector)s}) by(node) > 0.95
|
||||
max(max(kubelet_running_pod_count{%(kubeletSelector)s}) by(instance) * on(instance) group_left(node) kubelet_node_name{%(kubeletSelector)s}) by(node) / max(kube_node_status_capacity_pods{%(kubeStateMetricsSelector)s} != 1) by(node) > 0.95
|
||||
||| % $._config,
|
||||
'for': '15m',
|
||||
labels: {
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
'for': '5m',
|
||||
},
|
||||
{
|
||||
alert: 'KubeMemOvercommit',
|
||||
alert: 'KubeMemoryOvercommit',
|
||||
expr: |||
|
||||
sum(namespace:kube_pod_container_resource_requests_memory_bytes:sum{%(ignoringOverprovisionedWorkloadSelector)s})
|
||||
/
|
||||
|
@ -59,7 +59,7 @@
|
|||
'for': '5m',
|
||||
},
|
||||
{
|
||||
alert: 'KubeCPUOvercommit',
|
||||
alert: 'KubeCPUQuotaOvercommit',
|
||||
expr: |||
|
||||
sum(kube_resourcequota{%(prefixedNamespaceSelector)s%(kubeStateMetricsSelector)s, type="hard", resource="cpu"})
|
||||
/
|
||||
|
@ -75,7 +75,7 @@
|
|||
'for': '5m',
|
||||
},
|
||||
{
|
||||
alert: 'KubeMemOvercommit',
|
||||
alert: 'KubeMemoryQuotaOvercommit',
|
||||
expr: |||
|
||||
sum(kube_resourcequota{%(prefixedNamespaceSelector)s%(kubeStateMetricsSelector)s, type="hard", resource="memory"})
|
||||
/
|
||||
|
|
|
@ -7,9 +7,6 @@ local graphPanel = grafana.graphPanel;
|
|||
local tablePanel = grafana.tablePanel;
|
||||
local annotation = grafana.annotation;
|
||||
local singlestat = grafana.singlestat;
|
||||
local promgrafonnet = import '../lib/promgrafonnet/promgrafonnet.libsonnet';
|
||||
local numbersinglestat = promgrafonnet.numbersinglestat;
|
||||
local gauge = promgrafonnet.gauge;
|
||||
|
||||
{
|
||||
grafanaDashboards+:: {
|
||||
|
|
|
@ -7,9 +7,6 @@ local graphPanel = grafana.graphPanel;
|
|||
local tablePanel = grafana.tablePanel;
|
||||
local annotation = grafana.annotation;
|
||||
local singlestat = grafana.singlestat;
|
||||
local promgrafonnet = import '../lib/promgrafonnet/promgrafonnet.libsonnet';
|
||||
local numbersinglestat = promgrafonnet.numbersinglestat;
|
||||
local gauge = promgrafonnet.gauge;
|
||||
|
||||
{
|
||||
grafanaDashboards+:: {
|
||||
|
|
|
@ -7,9 +7,6 @@ local graphPanel = grafana.graphPanel;
|
|||
local tablePanel = grafana.tablePanel;
|
||||
local annotation = grafana.annotation;
|
||||
local singlestat = grafana.singlestat;
|
||||
local promgrafonnet = import '../lib/promgrafonnet/promgrafonnet.libsonnet';
|
||||
local numbersinglestat = promgrafonnet.numbersinglestat;
|
||||
local gauge = promgrafonnet.gauge;
|
||||
|
||||
{
|
||||
grafanaDashboards+:: {
|
||||
|
|
|
@ -6,9 +6,6 @@ local template = grafana.template;
|
|||
local graphPanel = grafana.graphPanel;
|
||||
local annotation = grafana.annotation;
|
||||
local singlestat = grafana.singlestat;
|
||||
local promgrafonnet = import '../lib/promgrafonnet/promgrafonnet.libsonnet';
|
||||
local numbersinglestat = promgrafonnet.numbersinglestat;
|
||||
local gauge = promgrafonnet.gauge;
|
||||
|
||||
{
|
||||
grafanaDashboards+:: {
|
||||
|
|
|
@ -6,9 +6,6 @@ local template = grafana.template;
|
|||
local graphPanel = grafana.graphPanel;
|
||||
local annotation = grafana.annotation;
|
||||
local singlestat = grafana.singlestat;
|
||||
local promgrafonnet = import '../lib/promgrafonnet/promgrafonnet.libsonnet';
|
||||
local numbersinglestat = promgrafonnet.numbersinglestat;
|
||||
local gauge = promgrafonnet.gauge;
|
||||
|
||||
{
|
||||
grafanaDashboards+:: {
|
||||
|
|
|
@ -4,31 +4,6 @@ local template = grafana.template;
|
|||
|
||||
{
|
||||
grafanaDashboards+:: {
|
||||
local intervalTemplate =
|
||||
template.new(
|
||||
name='interval',
|
||||
datasource='$datasource',
|
||||
query='$__interval',
|
||||
current='5m',
|
||||
hide=2,
|
||||
refresh=2,
|
||||
includeAll=false,
|
||||
sort=1
|
||||
) + {
|
||||
auto: false,
|
||||
auto_count: 30,
|
||||
auto_min: '10s',
|
||||
skipUrlSync: false,
|
||||
type: 'interval',
|
||||
options: [
|
||||
{
|
||||
selected: true,
|
||||
text: '$__interval',
|
||||
value: '$__interval',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
local clusterTemplate =
|
||||
template.new(
|
||||
name='cluster',
|
||||
|
@ -69,12 +44,12 @@ local template = grafana.template;
|
|||
];
|
||||
|
||||
local networkColumns = [
|
||||
'sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config,
|
||||
'sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config,
|
||||
'sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config,
|
||||
'sum(irate(container_network_transmit_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config,
|
||||
'sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config,
|
||||
'sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config,
|
||||
'sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config,
|
||||
'sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config,
|
||||
'sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config,
|
||||
'sum(irate(container_network_transmit_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config,
|
||||
'sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config,
|
||||
'sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config,
|
||||
];
|
||||
|
||||
local networkTableStyles = {
|
||||
|
@ -121,7 +96,7 @@ local template = grafana.template;
|
|||
})
|
||||
.addPanel(
|
||||
g.panel('CPU Utilisation') +
|
||||
g.statPanel('1 - avg(rate(node_cpu_seconds_total{mode="idle", %(clusterLabel)s="$cluster"}[$interval]))' % $._config)
|
||||
g.statPanel('1 - avg(rate(node_cpu_seconds_total{mode="idle", %(clusterLabel)s="$cluster"}[$__interval]))' % $._config)
|
||||
)
|
||||
.addPanel(
|
||||
g.panel('CPU Requests Commitment') +
|
||||
|
@ -215,7 +190,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Receive Bandwidth') +
|
||||
g.queryPanel('sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.queryPanel('sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -224,7 +199,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Transmit Bandwidth') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -233,7 +208,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Average Container Bandwidth by Namespace: Received') +
|
||||
g.queryPanel('avg(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.queryPanel('avg(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -242,7 +217,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Average Container Bandwidth by Namespace: Transmitted') +
|
||||
g.queryPanel('avg(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.queryPanel('avg(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -251,7 +226,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Rate of Received Packets') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -260,7 +235,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Rate of Transmitted Packets') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -269,7 +244,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Rate of Received Packets Dropped') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -278,13 +253,13 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Rate of Transmitted Packets Dropped') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~".+"}[$__interval])) by (namespace)' % $._config, '{{namespace}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
) + {
|
||||
tags: $._config.grafanaK8s.dashboardTags,
|
||||
templating+: { list+: [intervalTemplate, clusterTemplate] },
|
||||
templating+: { list+: [clusterTemplate] },
|
||||
refresh: $._config.grafanaK8s.refresh,
|
||||
},
|
||||
},
|
||||
|
|
|
@ -4,31 +4,6 @@ local template = grafana.template;
|
|||
|
||||
{
|
||||
grafanaDashboards+:: {
|
||||
local intervalTemplate =
|
||||
template.new(
|
||||
name='interval',
|
||||
datasource='$datasource',
|
||||
query='$__interval',
|
||||
current='5m',
|
||||
hide=2,
|
||||
refresh=2,
|
||||
includeAll=false,
|
||||
sort=1
|
||||
) + {
|
||||
auto: false,
|
||||
auto_count: 30,
|
||||
auto_min: '10s',
|
||||
skipUrlSync: false,
|
||||
type: 'interval',
|
||||
options: [
|
||||
{
|
||||
selected: true,
|
||||
text: '$__interval',
|
||||
value: '$__interval',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
local clusterTemplate =
|
||||
template.new(
|
||||
name='cluster',
|
||||
|
@ -61,12 +36,12 @@ local template = grafana.template;
|
|||
};
|
||||
|
||||
local networkColumns = [
|
||||
'sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])) by (pod)' % $._config,
|
||||
'sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])) by (pod)' % $._config,
|
||||
'sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])) by (pod)' % $._config,
|
||||
'sum(irate(container_network_transmit_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])) by (pod)' % $._config,
|
||||
'sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])) by (pod)' % $._config,
|
||||
'sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])) by (pod)' % $._config,
|
||||
'sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])) by (pod)' % $._config,
|
||||
'sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])) by (pod)' % $._config,
|
||||
'sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])) by (pod)' % $._config,
|
||||
'sum(irate(container_network_transmit_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])) by (pod)' % $._config,
|
||||
'sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])) by (pod)' % $._config,
|
||||
'sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])) by (pod)' % $._config,
|
||||
];
|
||||
|
||||
local networkTableStyles = {
|
||||
|
@ -268,7 +243,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Receive Bandwidth') +
|
||||
g.queryPanel('sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])) by (pod)' % $._config, '{{pod}}') +
|
||||
g.queryPanel('sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])) by (pod)' % $._config, '{{pod}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -277,7 +252,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Transmit Bandwidth') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])) by (pod)' % $._config, '{{pod}}') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])) by (pod)' % $._config, '{{pod}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -286,7 +261,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Rate of Received Packets') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])) by (pod)' % $._config, '{{pod}}') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])) by (pod)' % $._config, '{{pod}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -295,7 +270,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Rate of Transmitted Packets') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])) by (pod)' % $._config, '{{pod}}') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])) by (pod)' % $._config, '{{pod}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -304,7 +279,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Rate of Received Packets Dropped') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])) by (pod)' % $._config, '{{pod}}') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])) by (pod)' % $._config, '{{pod}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -313,10 +288,10 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Rate of Transmitted Packets Dropped') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])) by (pod)' % $._config, '{{pod}}') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])) by (pod)' % $._config, '{{pod}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
) + { tags: $._config.grafanaK8s.dashboardTags, templating+: { list+: [intervalTemplate, clusterTemplate, namespaceTemplate] }, refresh: $._config.grafanaK8s.refresh },
|
||||
) + { tags: $._config.grafanaK8s.dashboardTags, templating+: { list+: [clusterTemplate, namespaceTemplate] }, refresh: $._config.grafanaK8s.refresh },
|
||||
},
|
||||
}
|
||||
|
|
|
@ -4,31 +4,6 @@ local template = grafana.template;
|
|||
|
||||
{
|
||||
grafanaDashboards+:: {
|
||||
local intervalTemplate =
|
||||
template.new(
|
||||
name='interval',
|
||||
datasource='$datasource',
|
||||
query='$__interval',
|
||||
current='5m',
|
||||
hide=2,
|
||||
refresh=2,
|
||||
includeAll=false,
|
||||
sort=1
|
||||
) + {
|
||||
auto: false,
|
||||
auto_count: 30,
|
||||
auto_min: '10s',
|
||||
skipUrlSync: false,
|
||||
type: 'interval',
|
||||
options: [
|
||||
{
|
||||
selected: true,
|
||||
text: '$__interval',
|
||||
value: '$__interval',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
local clusterTemplate =
|
||||
template.new(
|
||||
name='cluster',
|
||||
|
@ -125,6 +100,6 @@ local template = grafana.template;
|
|||
'Value #H': { alias: 'Memory Usage (Swap)', unit: 'bytes' },
|
||||
})
|
||||
)
|
||||
) + { tags: $._config.grafanaK8s.dashboardTags, refresh: $._config.grafanaK8s.refresh, templating+: { list+: [intervalTemplate, clusterTemplate, nodeTemplate] } },
|
||||
) + { tags: $._config.grafanaK8s.dashboardTags, refresh: $._config.grafanaK8s.refresh, templating+: { list+: [clusterTemplate, nodeTemplate] } },
|
||||
},
|
||||
}
|
||||
|
|
|
@ -4,31 +4,6 @@ local template = grafana.template;
|
|||
|
||||
{
|
||||
grafanaDashboards+:: {
|
||||
local intervalTemplate =
|
||||
template.new(
|
||||
name='interval',
|
||||
datasource='$datasource',
|
||||
query='$__interval',
|
||||
current='5m',
|
||||
hide=2,
|
||||
refresh=2,
|
||||
includeAll=false,
|
||||
sort=1
|
||||
) + {
|
||||
auto: false,
|
||||
auto_count: 30,
|
||||
auto_min: '10s',
|
||||
skipUrlSync: false,
|
||||
type: 'interval',
|
||||
options: [
|
||||
{
|
||||
selected: true,
|
||||
text: '$__interval',
|
||||
value: '$__interval',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
local clusterTemplate =
|
||||
template.new(
|
||||
name='cluster',
|
||||
|
@ -238,7 +213,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Receive Bandwidth') +
|
||||
g.queryPanel('sum(irate(container_network_receive_bytes_total{namespace=~"$namespace", pod=~"$pod"}[$interval])) by (pod)', '{{pod}}') +
|
||||
g.queryPanel('sum(irate(container_network_receive_bytes_total{namespace=~"$namespace", pod=~"$pod"}[$__interval])) by (pod)', '{{pod}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -247,7 +222,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Transmit Bandwidth') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_bytes_total{namespace=~"$namespace", pod=~"$pod"}[$interval])) by (pod)', '{{pod}}') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_bytes_total{namespace=~"$namespace", pod=~"$pod"}[$__interval])) by (pod)', '{{pod}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -256,7 +231,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Rate of Received Packets') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_total{namespace=~"$namespace", pod=~"$pod"}[$interval])) by (pod)', '{{pod}}') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_total{namespace=~"$namespace", pod=~"$pod"}[$__interval])) by (pod)', '{{pod}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -265,7 +240,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Rate of Transmitted Packets') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_packets_total{namespace=~"$namespace", pod=~"$pod"}[$interval])) by (pod)', '{{pod}}') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_packets_total{namespace=~"$namespace", pod=~"$pod"}[$__interval])) by (pod)', '{{pod}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -274,7 +249,7 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Rate of Received Packets Dropped') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_dropped_total{namespace=~"$namespace", pod=~"$pod"}[$interval])) by (pod)', '{{pod}}') +
|
||||
g.queryPanel('sum(irate(container_network_receive_packets_dropped_total{namespace=~"$namespace", pod=~"$pod"}[$__interval])) by (pod)', '{{pod}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
|
@ -283,10 +258,10 @@ local template = grafana.template;
|
|||
g.row('Network')
|
||||
.addPanel(
|
||||
g.panel('Rate of Transmitted Packets Dropped') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_packets_dropped_total{namespace=~"$namespace", pod=~"$pod"}[$interval])) by (pod)', '{{pod}}') +
|
||||
g.queryPanel('sum(irate(container_network_transmit_packets_dropped_total{namespace=~"$namespace", pod=~"$pod"}[$__interval])) by (pod)', '{{pod}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
) + { tags: $._config.grafanaK8s.dashboardTags, templating+: { list+: [intervalTemplate, clusterTemplate, namespaceTemplate, podTemplate] }, refresh: $._config.grafanaK8s.refresh },
|
||||
) + { tags: $._config.grafanaK8s.dashboardTags, templating+: { list+: [clusterTemplate, namespaceTemplate, podTemplate] }, refresh: $._config.grafanaK8s.refresh },
|
||||
},
|
||||
}
|
||||
|
|
|
@ -4,31 +4,6 @@ local template = grafana.template;
|
|||
|
||||
{
|
||||
grafanaDashboards+:: {
|
||||
local intervalTemplate =
|
||||
template.new(
|
||||
name='interval',
|
||||
datasource='$datasource',
|
||||
query='$__interval',
|
||||
current='5m',
|
||||
hide=2,
|
||||
refresh=2,
|
||||
includeAll=false,
|
||||
sort=1
|
||||
) + {
|
||||
auto: false,
|
||||
auto_count: 30,
|
||||
auto_min: '10s',
|
||||
skipUrlSync: false,
|
||||
type: 'interval',
|
||||
options: [
|
||||
{
|
||||
selected: true,
|
||||
text: '$__interval',
|
||||
value: '$__interval',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
local typeTemplate =
|
||||
template.new(
|
||||
name='type',
|
||||
|
@ -84,32 +59,32 @@ local template = grafana.template;
|
|||
|
||||
local networkColumns = [
|
||||
|||
|
||||
(sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload_type="$type"}) by (workload))
|
||||
||| % $._config,
|
||||
|||
|
||||
(sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload_type="$type"}) by (workload))
|
||||
||| % $._config,
|
||||
|||
|
||||
(sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload_type="$type"}) by (workload))
|
||||
||| % $._config,
|
||||
|||
|
||||
(sum(irate(container_network_transmit_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_transmit_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload_type="$type"}) by (workload))
|
||||
||| % $._config,
|
||||
|||
|
||||
(sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload_type="$type"}) by (workload))
|
||||
||| % $._config,
|
||||
|||
|
||||
(sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload_type="$type"}) by (workload))
|
||||
||| % $._config,
|
||||
|
@ -309,7 +284,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Receive Bandwidth') +
|
||||
g.queryPanel(|||
|
||||
(sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~".+", workload_type="$type"}) by (workload))
|
||||
||| % $._config, '{{workload}}') +
|
||||
|
@ -322,7 +297,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Transmit Bandwidth') +
|
||||
g.queryPanel(|||
|
||||
(sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~".+", workload_type="$type"}) by (workload))
|
||||
||| % $._config, '{{workload}}') +
|
||||
|
@ -335,7 +310,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Average Container Bandwidth by Workload: Received') +
|
||||
g.queryPanel(|||
|
||||
(avg(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(avg(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~".+", workload_type="$type"}) by (workload))
|
||||
||| % $._config, '{{workload}}') +
|
||||
|
@ -348,7 +323,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Average Container Bandwidth by Workload: Transmitted') +
|
||||
g.queryPanel(|||
|
||||
(avg(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(avg(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~".+", workload_type="$type"}) by (workload))
|
||||
||| % $._config, '{{workload}}') +
|
||||
|
@ -361,7 +336,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Rate of Received Packets') +
|
||||
g.queryPanel(|||
|
||||
(sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~".+", workload_type="$type"}) by (workload))
|
||||
||| % $._config, '{{workload}}') +
|
||||
|
@ -374,7 +349,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Rate of Transmitted Packets') +
|
||||
g.queryPanel(|||
|
||||
(sum(irate(container_network_transmit_packets_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_transmit_packets_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~".+", workload_type="$type"}) by (workload))
|
||||
||| % $._config, '{{workload}}') +
|
||||
|
@ -387,7 +362,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Rate of Received Packets Dropped') +
|
||||
g.queryPanel(|||
|
||||
(sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~".+", workload_type="$type"}) by (workload))
|
||||
||| % $._config, '{{workload}}') +
|
||||
|
@ -400,14 +375,14 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Rate of Transmitted Packets Dropped') +
|
||||
g.queryPanel(|||
|
||||
(sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~".+", workload_type="$type"}) by (workload))
|
||||
||| % $._config, '{{workload}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
) + { tags: $._config.grafanaK8s.dashboardTags, templating+: { list+: [intervalTemplate, typeTemplate, clusterTemplate, namespaceTemplate] }, refresh: $._config.grafanaK8s.refresh },
|
||||
) + { tags: $._config.grafanaK8s.dashboardTags, templating+: { list+: [typeTemplate, clusterTemplate, namespaceTemplate] }, refresh: $._config.grafanaK8s.refresh },
|
||||
|
||||
},
|
||||
}
|
||||
|
|
|
@ -4,31 +4,6 @@ local template = grafana.template;
|
|||
|
||||
{
|
||||
grafanaDashboards+:: {
|
||||
local intervalTemplate =
|
||||
template.new(
|
||||
name='interval',
|
||||
datasource='$datasource',
|
||||
query='$__interval',
|
||||
current='5m',
|
||||
hide=2,
|
||||
refresh=2,
|
||||
includeAll=false,
|
||||
sort=1
|
||||
) + {
|
||||
auto: false,
|
||||
auto_count: 30,
|
||||
auto_min: '10s',
|
||||
skipUrlSync: false,
|
||||
type: 'interval',
|
||||
options: [
|
||||
{
|
||||
selected: true,
|
||||
text: '$__interval',
|
||||
value: '$__interval',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
local clusterTemplate =
|
||||
template.new(
|
||||
name='cluster',
|
||||
|
@ -59,7 +34,7 @@ local template = grafana.template;
|
|||
datasource='$datasource',
|
||||
query='label_values(mixin_pod_workload{%(clusterLabel)s="$cluster", namespace="$namespace"}, workload)' % $._config.clusterLabel,
|
||||
current='',
|
||||
hide=if $._config.showMultiCluster then '' else '2',
|
||||
hide='',
|
||||
refresh=1,
|
||||
includeAll=false,
|
||||
sort=1
|
||||
|
@ -86,32 +61,32 @@ local template = grafana.template;
|
|||
|
||||
local networkColumns = [
|
||||
|||
|
||||
(sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config,
|
||||
|||
|
||||
(sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config,
|
||||
|||
|
||||
(sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config,
|
||||
|||
|
||||
(sum(irate(container_network_transmit_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_transmit_packets_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config,
|
||||
|||
|
||||
(sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config,
|
||||
|||
|
||||
(sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config,
|
||||
|
@ -251,7 +226,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Receive Bandwidth') +
|
||||
g.queryPanel(|||
|
||||
(sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config, '{{pod}}') +
|
||||
|
@ -264,7 +239,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Transmit Bandwidth') +
|
||||
g.queryPanel(|||
|
||||
(sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config, '{{pod}}') +
|
||||
|
@ -277,7 +252,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Average Container Bandwidth by Pod: Received') +
|
||||
g.queryPanel(|||
|
||||
(avg(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(avg(irate(container_network_receive_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config, '{{pod}}') +
|
||||
|
@ -290,7 +265,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Average Container Bandwidth by Pod: Transmitted') +
|
||||
g.queryPanel(|||
|
||||
(avg(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(avg(irate(container_network_transmit_bytes_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config, '{{pod}}') +
|
||||
|
@ -303,7 +278,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Rate of Received Packets') +
|
||||
g.queryPanel(|||
|
||||
(sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_receive_packets_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config, '{{pod}}') +
|
||||
|
@ -316,7 +291,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Rate of Transmitted Packets') +
|
||||
g.queryPanel(|||
|
||||
(sum(irate(container_network_transmit_packets_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_transmit_packets_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config, '{{pod}}') +
|
||||
|
@ -329,7 +304,7 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Rate of Received Packets Dropped') +
|
||||
g.queryPanel(|||
|
||||
(sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_receive_packets_dropped_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config, '{{pod}}') +
|
||||
|
@ -342,13 +317,13 @@ local template = grafana.template;
|
|||
.addPanel(
|
||||
g.panel('Rate of Transmitted Packets Dropped') +
|
||||
g.queryPanel(|||
|
||||
(sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$interval])
|
||||
(sum(irate(container_network_transmit_packets_dropped_total{%(clusterLabel)s="$cluster", namespace=~"$namespace"}[$__interval])
|
||||
* on (namespace,pod)
|
||||
group_left(workload,workload_type) mixin_pod_workload{%(clusterLabel)s="$cluster", %(namespaceLabel)s=~"$namespace", workload=~"$workload", workload_type="$type"}) by (pod))
|
||||
||| % $._config, '{{pod}}') +
|
||||
g.stack +
|
||||
{ yaxes: g.yaxes('Bps') },
|
||||
)
|
||||
) + { tags: $._config.grafanaK8s.dashboardTags, templating+: { list+: [intervalTemplate, clusterTemplate, namespaceTemplate, workloadTemplate, workloadTypeTemplate] }, refresh: $._config.grafanaK8s.refresh },
|
||||
) + { tags: $._config.grafanaK8s.dashboardTags, templating+: { list+: [clusterTemplate, namespaceTemplate, workloadTemplate, workloadTypeTemplate] }, refresh: $._config.grafanaK8s.refresh },
|
||||
},
|
||||
}
|
||||
|
|
|
@ -17,16 +17,16 @@
|
|||
{
|
||||
record: 'cluster:apiserver_request_duration_seconds:mean5m',
|
||||
expr: |||
|
||||
sum(rate(apiserver_request_duration_seconds_sum{subresource!="log",verb!~"LIST|WATCH|WATCHLIST|PROXY|CONNECT"}[5m])) without(instance, %(podLabel)s)
|
||||
sum(rate(apiserver_request_duration_seconds_sum{subresource!="log",verb!~"LIST|WATCH|WATCHLIST|DELETECOLLECTION|PROXY|CONNECT"}[5m])) without(instance, %(podLabel)s)
|
||||
/
|
||||
sum(rate(apiserver_request_duration_seconds_count{subresource!="log",verb!~"LIST|WATCH|WATCHLIST|PROXY|CONNECT"}[5m])) without(instance, %(podLabel)s)
|
||||
sum(rate(apiserver_request_duration_seconds_count{subresource!="log",verb!~"LIST|WATCH|WATCHLIST|DELETECOLLECTION|PROXY|CONNECT"}[5m])) without(instance, %(podLabel)s)
|
||||
||| % ($._config),
|
||||
},
|
||||
] + [
|
||||
{
|
||||
record: 'cluster_quantile:apiserver_request_duration_seconds:histogram_quantile',
|
||||
expr: |||
|
||||
histogram_quantile(%(quantile)s, sum(rate(apiserver_request_duration_seconds_bucket{%(kubeApiserverSelector)s,subresource!="log",verb!~"LIST|WATCH|WATCHLIST|PROXY|CONNECT"}[5m])) without(instance, %(podLabel)s))
|
||||
histogram_quantile(%(quantile)s, sum(rate(apiserver_request_duration_seconds_bucket{%(kubeApiserverSelector)s,subresource!="log",verb!~"LIST|WATCH|WATCHLIST|DELETECOLLECTION|PROXY|CONNECT"}[5m])) without(instance, %(podLabel)s))
|
||||
||| % ({ quantile: quantile } + $._config),
|
||||
labels: {
|
||||
quantile: quantile,
|
||||
|
|
|
@ -184,6 +184,57 @@
|
|||
description: '{{ $labels.instance }} interface {{ $labels.device }} has encountered {{ printf "%.0f" $value }} transmit errors in the last two minutes.',
|
||||
},
|
||||
},
|
||||
{
|
||||
alert: 'NodeHighNumberConntrackEntriesUsed',
|
||||
expr: |||
|
||||
(node_nf_conntrack_entries / node_nf_conntrack_entries_limit) > 0.75
|
||||
||| % $._config,
|
||||
annotations: {
|
||||
summary: 'Number of conntrack are getting close to the limit',
|
||||
description: '{{ $value | humanizePercentage }} of conntrack entries are used',
|
||||
},
|
||||
labels: {
|
||||
severity: 'warning',
|
||||
},
|
||||
},
|
||||
{
|
||||
alert: 'NodeClockSkewDetected',
|
||||
expr: |||
|
||||
(
|
||||
node_timex_offset_seconds > 0.05
|
||||
and
|
||||
deriv(node_timex_offset_seconds[5m]) >= 0
|
||||
)
|
||||
or
|
||||
(
|
||||
node_timex_offset_seconds < -0.05
|
||||
and
|
||||
deriv(node_timex_offset_seconds[5m]) <= 0
|
||||
)
|
||||
||| % $._config,
|
||||
'for': '10m',
|
||||
labels: {
|
||||
severity: 'warning',
|
||||
},
|
||||
annotations: {
|
||||
summary: 'Clock skew detected.',
|
||||
message: 'Clock on {{ $labels.instance }} is out of sync by more than 300s. Ensure NTP is configured correctly on this host.',
|
||||
},
|
||||
},
|
||||
{
|
||||
alert: 'NodeClockNotSynchronising',
|
||||
expr: |||
|
||||
min_over_time(node_timex_sync_status[5m]) == 0
|
||||
||| % $._config,
|
||||
'for': '10m',
|
||||
labels: {
|
||||
severity: 'warning',
|
||||
},
|
||||
annotations: {
|
||||
summary: 'Clock not synchronising.',
|
||||
message: 'Clock on {{ $labels.instance }} is not synchronising. Ensure NTP is configured on this host.',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
|
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+:: {
|
||||
prometheusOperator: 'v0.37.0',
|
||||
prometheusOperator: 'v0.38.0',
|
||||
prometheusConfigReloader: self.prometheusOperator,
|
||||
configmapReloader: 'v0.3.0',
|
||||
},
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -12,9 +12,7 @@ local util = import '_util.libsonnet';
|
|||
|
||||
local rates = ['5m', '30m', '1h', '2h', '6h', '1d', '3d'],
|
||||
|
||||
local labels =
|
||||
util.selectorsToLabels(slo.selectors),
|
||||
|
||||
local rulesSelectors = slo.selectors + ['latency="' + slo.latencyTarget + '"'],
|
||||
|
||||
local latencyRules = [
|
||||
{
|
||||
|
@ -39,7 +37,7 @@ local util = import '_util.libsonnet';
|
|||
rate,
|
||||
],
|
||||
record: 'latencytarget:%s:rate%s' % [slo.metric, rate],
|
||||
labels: labels,
|
||||
labels: util.selectorsToLabels(rulesSelectors),
|
||||
}
|
||||
for rate in rates
|
||||
],
|
||||
|
@ -65,23 +63,23 @@ local util = import '_util.libsonnet';
|
|||
)
|
||||
||| % [
|
||||
latencyRules[2].record,
|
||||
std.join(',', slo.selectors),
|
||||
std.join(',', rulesSelectors),
|
||||
slo.latencyBudget,
|
||||
latencyRules[0].record,
|
||||
std.join(',', slo.selectors),
|
||||
std.join(',', rulesSelectors),
|
||||
slo.latencyBudget,
|
||||
latencyRules[4].record,
|
||||
std.join(',', slo.selectors),
|
||||
std.join(',', rulesSelectors),
|
||||
slo.latencyBudget,
|
||||
latencyRules[1].record,
|
||||
std.join(',', slo.selectors),
|
||||
std.join(',', rulesSelectors),
|
||||
slo.latencyBudget,
|
||||
],
|
||||
labels: labels {
|
||||
labels: util.selectorsToLabels(rulesSelectors) {
|
||||
severity: 'critical',
|
||||
},
|
||||
annotations: {
|
||||
message: 'High requests latency budget burn for %s (current value: {{ $value }})' % [std.strReplace(std.join(',', slo.selectors), '"', '')],
|
||||
message: 'High requests latency budget burn for %s (current value: {{ $value }})' % [std.strReplace(std.join(',', rulesSelectors), '"', '')],
|
||||
},
|
||||
},
|
||||
{
|
||||
|
@ -100,23 +98,23 @@ local util = import '_util.libsonnet';
|
|||
)
|
||||
||| % [
|
||||
latencyRules[5].record,
|
||||
std.join(',', slo.selectors),
|
||||
std.join(',', rulesSelectors),
|
||||
slo.latencyBudget,
|
||||
latencyRules[3].record,
|
||||
std.join(',', slo.selectors),
|
||||
std.join(',', rulesSelectors),
|
||||
slo.latencyBudget,
|
||||
latencyRules[6].record,
|
||||
std.join(',', slo.selectors),
|
||||
std.join(',', rulesSelectors),
|
||||
slo.latencyBudget,
|
||||
latencyRules[4].record,
|
||||
std.join(',', slo.selectors),
|
||||
std.join(',', rulesSelectors),
|
||||
slo.latencyBudget,
|
||||
],
|
||||
labels: labels {
|
||||
labels: util.selectorsToLabels(rulesSelectors) {
|
||||
severity: 'warning',
|
||||
},
|
||||
annotations: {
|
||||
message: 'High requests latency budget burn for %s (current value: {{ $value }})' % [std.strReplace(std.join(',', slo.selectors), '"', '')],
|
||||
message: 'High requests latency budget burn for %s (current value: {{ $value }})' % [std.strReplace(std.join(',', rulesSelectors), '"', '')],
|
||||
},
|
||||
},
|
||||
],
|
||||
|
|
Reference in a new issue