diff --git a/charts/kubezero-istio/dashboards.yaml b/charts/kubezero-istio/dashboards.yaml index 5791f7f8..7dc22535 100644 --- a/charts/kubezero-istio/dashboards.yaml +++ b/charts/kubezero-istio/dashboards.yaml @@ -5,22 +5,22 @@ folder: Istio condition: '.Values.istiod.telemetry.enabled' dashboards: - name: istio-control-plane - url: https://grafana.com/api/dashboards/7645/revisions/229/download + url: https://grafana.com/api/dashboards/7645/revisions/239/download tags: - Istio - name: istio-mesh - url: https://grafana.com/api/dashboards/7639/revisions/229/download + url: https://grafana.com/api/dashboards/7639/revisions/239/download tags: - Istio - name: istio-service - url: https://grafana.com/api/dashboards/7636/revisions/229/download + url: https://grafana.com/api/dashboards/7636/revisions/239/download tags: - Istio - name: istio-workload - url: https://grafana.com/api/dashboards/7630/revisions/229/download + url: https://grafana.com/api/dashboards/7630/revisions/239/download tags: - Istio - name: istio-performance - url: https://grafana.com/api/dashboards/11829/revisions/229/download + url: https://grafana.com/api/dashboards/11829/revisions/239/download tags: - Istio diff --git a/charts/kubezero-istio/templates/grafana-dashboards.yaml b/charts/kubezero-istio/templates/grafana-dashboards.yaml index 310b1820..dd4077b2 100644 --- a/charts/kubezero-istio/templates/grafana-dashboards.yaml +++ b/charts/kubezero-istio/templates/grafana-dashboards.yaml @@ -11,13 +11,13 @@ metadata: k8s-sidecar-target-directory: Istio binaryData: istio-control-plane.json.gz: - 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 istio-mesh.json.gz: - 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 istio-service.json.gz: - H4sIAAAAAAAC/+1daXPbSJL97l9RRHRsUA6KJkhRFjs8jpAo94xibFkrauzYbWkZJaBEYgQCMA4drdD89q3CfZIACZKAmB/aLeKqQtbL42UmgJd3CHHjsaRolmlwv6M/6W+EXux/6R4Fzwjdyp2OxheX3799ufrHl3+NuJa3W8a3RGb7L3R1RswpsYxgp0gMQZc0U1IVdkiww3zW7IuK2MSGaukCCfZpsjWRlDOR7ddSLursP3enFRrWPuCV/nvTcm5JJ78sSScpN+WNP9HxHVZwcHFJTN3sCeHv8R0PRDfcuztsH7R77iRa6cNpWKHCSg6mTVOHCm8ODTR/jDSRSpnCVJJiTBuy3+60O0vcm4lvZZIc7Sq6OXlv/iJiRVFNzADEVtEZlJMlw/TXNJgK3XNrSbJ5xq7Et4KtIZGk3yo9hij2nH5Hpm6R0PapJKZslQRVGaqyqrML6pNb3Oy0UJfn6T/9fgvxe+FLe3d9HNwL+i90LBPdjEwhWEFjeqtiXeTcfa/2/2/eucKPq9WZQf9CI6I/SAJBp97ZyBUr4tvdXrtrj8QRUTJjN8rdSYaA5f8hWB+ZWDe/qYo5pfs79k4bnVeqKpuS5m+UJeXe1qob9+cDOVcf6YY7LBvORW04pGieoMoy1gwiho/Ot0p0LpJ4oQZAcBYotthsGt2D0IYnb9ru72f225NsFK985zAwM/4N3ARmC+sTEjKSUfTlQxo9Sid3jnk75vzNr+5focEkU3YsAVGIjuWk9dSpzFN1MlNQvaKC4tMFdTQIHEAEC/YmVYsqrLvwtiJFxCVjZWLhiWM/ZCwpJnkyo7IypurjV0kh59bsluI5jhr/mG+SIn3Dmrc/kGsrPAU6gMJMB/dJlB6QIGPD+Nt1oHD7U4JFoiM2jX2BHkr0a+7ztfLJoGj4PPpy+eNs+OV39Jvh6NqnD/Z2uv8DvdznsC7PnLvlpuZM5hIydFzYj8Ds8Z023+6HVljHCr227sw2bHz8xbdFlbr6ixXpTiKyOFSVO2kSXSSR3GFLNo34QgmurQtvtK/zRMSwHWz2qAnku9QY8oPeXmQlQ0KxT+NC+14jyznDmiYpk6iaxVUtE2ihy5gCwzynWLIcm4qrhga919STkStfevb5h2Musf81tuU1fnl/mQyNCBKWo5cIn34TuXdzSmc1VWUxeVO++PCtocqWSeLiNUyiJYWG0mTjrSe1FIQoacJ5wLLFRmPCW3Sz8wbQ6UrPufxR5908yd5kgsRSJHt5VM3gUpVdpe6PmkEn+rtJqGCmiTyImcjDBRbyIMOVdOdZyBl+OqVaeqFSk2fYjqezyHpSeX5zAaCoSnjxHR/t7aRGA4d3/tui4cHds7/bMtXwblWXqJHBXiwxpb//omYShzWGLaIlkO+p2sbR2EFIwo7adsM8V81zpnyZcLcNkRHhBgE8jLnGnOln5KaWsLLluHPypDlQVy1FbBrWrCnp2CRNicVlNgkhhmmMTRr8yS860VSd+pW//eea++0X/XXNtShITUmx12DsuhZ7t/v3Nff6Z392s7fXQjQK7/BRu8rdqTo1dbZLkGaEXUAisRkyx6pTmf6BBdNWSz4rHon6VWpQQgifG6QMZYYjdOncLfpBLdSMJEMWg0Lt7XutKMgV9Ydr7bgOt1VrL2L9fn+BRV7V4NtjPBNZpsHpnGE67UF/5WEWei86ymBFB6MRnUWC9s+NOprDnI7mABzNrjgaSt6DxbEJVaojWocLalFLpdFFIWM2boPu67ff+54JfUDrdHxI1ZGqoOYeeiDMgzX5vfKdIOWiyUxPcbbuOsKRJQjEMNAlFQhqUkXa7z89IU+Ixl41XaPndDQsE9Mk+zZDloRsrydQpVdnyQvhJ8kY2gSaiP9LdDWNt3uHhS1OIgHgHvTVSzOn7byQsUBmLrOP2R0nLYj1Y1maKO4xndhuUcePI/PZWT9qRBO+9k6S5e8aFiTTzonEz6dmUWSLnmE2/TziH3qKqJgFIxOiiOkiYgDxs2/p+x+kvxIGLMWfUgWgamHbSSNjOdi9n7FF01TZt9RsI9a5lEN/SqI5jSsSs4fM24ykv5gw+vGwhVpxckothC7dWu4QL1nk2R167l2x5I/v3jiFUG+cCJU0rMy7bap5wj2N3dKmMqFRvZaMjSPaYq/33EkGgZ6Hs5esi6l3d9nJgrwhJ6QRCkZ5G04iBNmB+cHd0cfCeVbfmKTHTlGciJKhydiP2ezCSuQALWxadWkyTUvPeiMy15keQvkWLDIpD4kz6qGk2HVprJBUrdetc/zmlIpIpQZ/Nv5lYcWUZNLstPuUOmaEP2PR0p0AZ0adiGQQQVVEY3xrCffEXDYo4u2g6PYZNWViB180rO/YUdLy01vHzJaO0ZKB+oLozUH9H/4IF/1OjppLa32QGFQbEoPaQMItwCarPkURMchCxMmGEDGoNiIGu4eIQQYihtwSKc9TV0hJZsfuxL0RKNhBwW63I+2TTRfs+KOcsfauJ1JnBCs7UqqLOzpT0KizE4j0QMTx7bNJ5mUtUV4XtzXPtlK70dXwgvo0RxbohMliV8t44MvAl1W7+eQo3ZUNPkJNEJpP5tTgrrmQD3sjHSisAZro0IFS6Q4Uu1ee5SP5j90WOugzQA0+7q3VCbAhu72PTMADOmaHjXk0mDvmar0pzojs5voHzn/0JueP92a6VLI80hF4JOhSWapLpbCvKq9VZVk3Wad+FddtQr8K9KtAvwr0q0C/CvSr5OhXyQrzBtCvshP9KktERptsWll5etC5UmlwDOoFDuhh2SQ2BjuKjdW6WWLpU+hmgQogxOE16GY5ynqVSQfaWXa5ncWgUoVWlgs0Yj2ahdtYqvGaIr6bpdwHFXxPkdsP+1PV72UVi8Z2XljUSxfZQX8H31g0/Hr25fwK/fx++c+v349PRzv/wiKoF+SoF0C5AMoF1S4XzCQljlOgLutpXnyXNVmH4BI9bbGdl3/ePjtdR61CvFm14TgxSTpnZjzAFg+W5TPjPINb++9/mSujOIw1XdWoCZFITiw4t+m4iLZvAedMJ5Xpy+FyRCs1F+BbyMxDsoxkarYgGyjv4ltzMNbDWIgWqRWlhmiH6SFat1+l4tGtapqx1SynemRQmyaTepSPcnWV0iBVIYKXVrV0GkWMqYeVhGcaqc4s08Ly2JSNnK07SZLqTHf86PIK5wxdeJST+8bsXbvUH3rX1QXFCLpyWI42dkILZV6hhSJ9RGvrfY0z3peX+JzQ62s7uTWYKd2PKNheohNmW5vXlnjUE+m/It+ZXX0d7XFF+m67JRcVVoRTI46nxekLtogpaY95kEJ1wFRZ6ZUSwZZZmVqArOyEwpkiqDTUm3hFCQOdPKORPTF0rIh0szMDNAw3GVawUAG0E9rUgHe+Ad6J7RJMu8MDHS2bjhZ7ggFoKdDSFWlpoqcxk5ce7gQvrVFX4xKvGkX5WSpa9gmT7fEK1hW1daFs7+5rRp8qxsrLBU4D1Kms1AXoUy59WmPiYdFTcUFCYh3ph8zP50FeAvISkJeAvAQkIDb8SB2kHSDtUCztcLSgGN7NaPHsfoSkw869+ruCfJxfqsq50deSvympbZF6xWZmE6/M2b6+oot+p2qpjA28i323dHQAOlpvHR0U0NGTbepoH3R0WR3tg47WW0f7+XV0uE0dHYCOLqujA9DReuvoIL+Onm5RRzfFRxtASHdEbPVipBkq+WUH6GcD+CeoZAUJaIZK/rEDbLMBdBNUsoJ8M0Ml/74D5LIB7BJUsoL0MkMl/1He43P+O/3W27UGzWnQnAbNadCcBs1pJTaniUSw3+UHPWrQo7b2HrWjvD1qR9CjVq0etcJpbecFoVBwguaqJcE1AHDVD1xVbAsqnGsEdEE/y2rgGgC46mi6KteJsdGoCxKxb7mDYKMxFkDpLVe+NxpQAZTecsV2o+ETQKn+lUZWcIEqI1QZocoIVUaoMkKVEaqMUGWMVxn5w5xlxkMoM9a3zOi+2A/yqVBnXEMODNAFhcY15sUAXlBpXF+qDNAFpcZqR16QioVaI2AJio1VC6oAS1BtBCztbLnR/+4flBmhzAhlRigzQpmxVmXGk1xfnl/nJ8i7R+mlpqMOlJrq8AVyU9Bo9CcQ6YGIbvRXq6+cLRP71fFj0XX5BHlZeGrsBqA2gJvyP+p1wpYVXbqrjO4oUJDfuHg1vEBDf1mBSQCTACYBTAKYBDCJRV+NzqQSXaASdaESBpVSJOwrwBhSI0SI+t46WygAmQZgpo5MYURXGJlqeRyBekUZawZJhJE52EOmw+JjDqt7sCD11TtI91d8J3BYNBgjcsxjlWSMQwqcZylGDvjRT3fhjaTYdfUxXd6ZMusVllk/ozN9UNjHC47fjEhOxsrEwhOH1smY6UyMYjm+moba59bsljrM1GwOO+abpEjfsJYgG2GPTi2V6YYFn0TpAdkMktooERvTWxXr4v6UYJHoiE1jX7Ap4jX3+Vr5xKL0z6Mvlz/Ohl/Qz++X//z6/fh09OmDvZ3u/0Av9zk0cT9KmJozmVsiANCxQq+tO7MNP+QQKB0TFVDy6lNyYOTAyIGRv3lGrmrw9CA8PVj+04MLS7q9jDzMYDdKuga1aTKpcyLGfXdI8RTMYuLs820a5AYHx06NsGrRMG1WnXZAjFnTQx1m3feZddpZUYKf1trntzMyjrBJyp02MZd3z58zPQhRPL5Ep47qksfJjbilyrqZoEMLUYdqCLsSmwzKx2P5OaL4K28M1od6GszOz1igY0VEfsfqkJlrqC5DdRm4LHDZdXJZbBcr2x0eKG7ZFJeyOZYUtX8C1QWqu3aqm+g5yOS6PPQcVIvqLqAc2Ryh1J7lSDjcoPv67fdVIyLsK4fVkFa1xFJbIlaxFMAasNUAVVy3uEAXy9DFNaY/RpYgEMNAlxQqqEnd737/6cnPvxh7WWmRdSRBqBwEXdI83grZEciOQHYEsiNQ6V9LGgTq/JD8WP9bguNl/oOM9tXBAaQ+qpX6aBb+LJbofp9+PKMBhUTZg6qIydf61Ir88ysWZ9nrfigb4zudzh5SdbS8TEGc23970moJlQq+qrlZ+HtloOPL6fgAdHwndLx678tuFv6QHOj4kjreBx3fCR2v3FvLm4W/8Ac6vqSOD0DHd0LHK/fq+Arw8QYQ8lKVvAFavm1GvtU3+FeAfjeAf4NKvy0CvtUPKVSAbTeAboNKvy2+vdXvWVSAXDeAXYNKvy16Xf5nReKPdKJTFzH2J0ZiL6KChzihTRHaFKFNEdoUK96mKBLBfk0ndCtCt+LauxWP8nYr9qFbsVrdioXz+OnfHIQKHXTTlYvBAWDwzWKwiu1ehVOlAEJoR9reF4ABg2/EEFauX2bzESFklXe7nWPz8R8gbre7DTYf7AHidrsYvvnQDhC3C7VaVqiCOi3UaaFOC3VaqNNCnRbqtFCnza7T8od5C7WHUKitbaHWfdMmJIehUru9TB2AEEq128/eAQqhVrv1hB6AEIq12y/WloVCyCtDtXbDMSBADsq1Gw74AHJQr91weAeQe4MFW/8LqFCohUItFGqhUAuF2poWak+0PDXaMr9/Gf8GRL+TUazrQrGuWsU6aiUUsRkPFU1Bo+GiQKQHIrrhYp0/8LhasLjXQp12p8PXM16s3nceNwC5xu5ibqPQKv+zhSds5dGlCwR0R7GE/FbSq+EFGvqLDnwE+AjwEeAjwEeAj8S7B7t5CUkPCEldCIlBpRSJDAtQjuwgEgLDJQLD2n1bvhRUNQBWW4bVuvjGiIIAmeoKTOOde3U2KRYesIN6HUdWNFabkhkObGjvyNnshcoi1u+dI008CSwpd8ZQyvmXNslMY+FkKMByPEpgesOO0kk+hFNzkiLIlkiOZTkZwLk+Irmdyd+ZpK9wYRfuu8iw5+N+WUR/tglQmmI6u3+48UWYioTEx0e2TshT/FDjXtL+pcujZ0VImba3UqFpx31bSFhUz3XHCUeMjEFkigCSSikcimU/F2NiSTbaLkVsGw9Cm8qZolBvyyoNDKLo9MKqHOeluvocho+xVYkGX67HDu8pigrZ44tuNZArgBgjecoiuNh/sEo1vbRjrsOPGnsm+jVp6Nyx7BdPB+elGvg5Z+8VgOKH9vs0I3/NNf/8v2vu5v1e+/2H/HB1w7HwulBbYKuI8d+edLjo3owdLvAdmYZ2WAa5csxLmOKWrw2+TDJxHxxRJYRfus48DeLRR6h8hP+iAUAGvLMfgZsnxpAgE7Y2KsWoTUuQr+wxk0+DLVy7hasXeQgsTa+d2bbSByjP6LtaxJenRW5ebuNqdCxnuY3fxmMsb8U3xJTAV5yhzJJ2aOj4rgLqY+iCkDypHB/hh+YsSmZ6mhWVh4Ny1zU4Ihy7c8vjU3KP9p/FwxV0Qu5pKzqebu0dTw01xuusQucexymmPIpRSb1JoZcbUqGUkQtqU8CuV9OnHujT9vSpmBY9ylvUolhOKBPHzoFM5bMwvz4dW21aBRXQz4Stpn8HoH8b1L94q/ASsaBomOuPBXOlaVPcS/iwZaLC4unhOQNDfLh7+rRMgGiXBiquTCuGiqXoFQSNoGQFo0a7Qre0aqGSdGtOPdEz+m6J0P1ZsKaYrSprVtLN3svOBKjvvHadV6ecKM2CBiruzump4xT1cZ+fulfjTNXdxkVO0yThPvQSN09qY68YHM6Ac/0gfcrx4R+9TnjPNPi7G/qbFx2bcePNiBWik3n27FHCFz4MXzg8Svcg/CP0qNtHMTxfby4RYfzFOmi8pQm9AJWphv8Q3Sk2prcq1p3LcQ9+LdiGGfdIyP3IxE5LjnPIRCGmXd7+eNg7fPf6/9nBtfMFpgEA + H4sIAAAAAAAC/+1daXPbRhL97l8xRKW2KBdFE5QoiymvqyTKSVSxZa2o2LUbaVkjYERiBQIwDh1RKb99Z3CfJECCJCD2hzgirhn0vD5edwN4foMQNxpJimaZBvcz+pP+RujZ/pfuUfCU0K3cyXB0fvH1y6fL3z79MeRa3m4Z3xCZ7T/X1SkxJ8Qygp0iMQRd0kxJVdghwQ7zSbMvKmITG6qlCyTYp8nWWFJORbZfS7mos//MnVZoWPuAF/rvdcu5JZ38sCSdpNyUN/5Yx7dYwcHFJTF1syeEX+M77oluuHd30N5v77mTaKUPp2GFCis5mDZJHSq8OTTQ7DHSRCplClNJijFtyF670+4scG8mvpFJcrTL6ObkvfmLiBVFNTEDEFtFZ1BOlgzTX9NgKnTPjSXJ5im7Et8KtoZEkn6r9Bii2HP6GZm6RULbJ5KYslUSVGWgyqrOLqiPb3Cz00Jdnqf/9HotxO+EL+3d9VFwL+gf6EgmuhmZQrCCxuRGxbrIufte7P9fv3GFH1erU4P+hYZEv5cEgk68s5ErVsS3u/vtrj0SR0TJjN0odysZApb/TbA+NLFuflEVc0L3d+ydNjovVVU2Jc3fKEvKna1V1+7Pe3KmPtANt1g2nIvacEjRPEGVZawZRAwfnW+V6Fwk8VwNgOAsUGyx2TS6+6ENj9603d9P7Lcn2She+c5BYGb8G7gOzBbWxyRkJKPoy4c0epRObh3zdsT5m1/cv0KDSabsWAKiEB3LSeupU5mn6mSmoPaKCopPF9RhP3AAESzYm1QtqrDuwtuKFBGXjJWxhceO/ZCxpJjk0YzKypioD58lhZxZ0xuK5zhq/GO+SIr0BWve/kCurfAU6AAKMx3cB1G6R4KMDeOfV4HC7U4IFomO2DR2BXoo0a+4j1fKB4Oi4ePw08W308Gnn9FPhqNrH97Z2+n+d/RyH8O6PHXulpuYU5lLyNBxYd8Cs8d32ny7F1phHSv02roz27Dx8RffFlXq6s9XpFuJyOJAVW6lcXSRRHKLLdk04gsluLYuvNG+ziMRw3awuUdNIN+lxpDv7+1EVjIkFPs0LrTvJbKcU6xpkjKOqllc1TKBFrqMKTDMc4oly7GpuGpo0HtNPRm58qVnn7074hL7X2JbXuKX95fJ0IggYTl6ifDp15F7Nyd0VhNVFpM35YsP3xiqbJkkLl7DJFpSaChNNt56UktBiJImnHssW2w0Jrx5NztrAJ2u9IzLH3bezJLsdSZILEWyl0fVDC5V2VXq/qgZdKK/64QKZprI/ZiJPJhjIfczXEl3loWc4scTqqXnKjV5hu14OvOsJ5XnFxcAiqqEF9/x0d5OajRweOf/LBoe3D75uy1TDe9WdYkaGezFEhP6+y9qJnFYY9giWgL5mqptHI0dhCTsqG03zDPVPGPKlwl32xAZEW4QwMOYacyZfkZuagErW447J4+aA3XVUsSmYU2bko5N0pRYXGaTEGKYxsikwZ/8rBNN1alf+effV9xPP+ivK65FQWpKir0GI9e12Lvdv6+4lz970+udnRaiUXiHj9pV7lbVqamzXYI0JewCEonNkDlWncr0FyyYtlryWfFI1K9SgxJC+MwgZSAzHKEL527RN2qhpiQZshgUaq/fa0VBrqjfXGvHdbiNWnsR63e7cyzysgbfHuOJyDINTmcM02n3e0sPM9d70VH6SzoYjegsErR/rtXRHOR0NPvgaLbF0VDyHiyOTahSHdEqXFCLWiqNLgoZsXEbdF+v/db3TOgdWqXjQ6qOVAU1d9A9YR6sye+U7wQpF01meoqzddcRDi1BIIaBLqhAUJMq0m7v8RF5QjR2qukaPaejYZmYJtm1GbIkZHs9gSq9Ok1eCD9KxsAm0ET8D9HVNN7uHRa2OIkEgHvQZy/NnLbzXMYCmbrMPmZ3nLQg1o9kaay4x3Riu0UdPwzNJ2f9qBFN+NpbSZa/aliQTDsnEj+fmkWRLXqG2fTziL/oKaJiFoyMiSKmi4gBxM++pe+/l/5KGLAUf0oVgKqFbSeNjOVg937KFk1TZd9Ss41Y51IO/S6J5iSuSMweMm8zlP5iwujFwxZqxckJtRC6dGO5QzxnkWd36Jl3xZI/vnvjFEK9cSJU0rAy67ap5gl3NHZLm8qYRvVaMjaOaIu93jMnGQR6Hs6esy6m3t5mJwvyhpyQRigY5a05iRBkB2YHd4fvC+dZfWOSHjtFcSJKhiZjP2azCyuRA7SwadWl8SQtPeuNyFxnegjlW7DIpDwkTqmHkmLXpbFCUrVeNs7xmxMqIpUa/Onoh4UVU5JJs9PuUeqYEf6MREt3ApwpdSKSQQRVEY3RjSXcEXPRoIi3g6KbJ9SUiR180bC+Y0dJi09vFTNbOEZLBupzojcH9b/4I5z3OjlqLq3VQaJfbUj0awMJtwCbrPoURUQ/CxHHa0JEv9qI6G8fIvoZiBhwC6Q8T1whJZkduxP3RqBgBwW77Y60j9ddsOMPc8ba255InRKsbEmpLu7oTEGjzk4g0j0RRzdPJpmVtUR5XdzGPNtS7UaXg3Pq0xxZoGMmi20t44EvA19W7eaTw3RX1n8PNUFoPplRg7viQj7slXSgsAZookMHSqU7UOxeeZaP5N93W2i/xwDVf7+zUifAhuzuvWcC7tMxO2zMw/7MMZfrTXFGZDfX23f+ozc5e7xX06WS5ZEOwSNBl8pCXSqFfVV5rSqLusk69au4bhP6VaBfBfpVoF8F+lWgXyVHv0pWmNeHfpWt6FdZIDJaZ9PK0tODzpVKg6NfL3BAD8s6sdHfUmws180SS59CNwtUACEOr0E3y2HWq0w60M6yze0sBpUqtLKcoyHr0SzcxlKN1xTx3Szl3q/ge4rcftjvqn4nq1g0NvPCor10ke33tvCNRYPPp5/OLtH3rxe/f/56dDLc+hcWQb0gR70AygVQLqh2uWAqKXGcAnVZTfPim6zJOgSX6GmL7bz88+bJ6TpqFeLNqg3HsUnSOTPjAbZ4sCyfGmcZ3Np//8tMGcVhrOmqRk2IRHJiwblNx0W0fQs4YzqpTF8OlyNaqbkA30JmHpJlJFOzBdlAeRPfmoOxHsRCtEitKDVEO0gP0bq9KhWPblTTjK1mOdUjg9o0mdSjfJSrq5QGqQoRvLSqpdMoYkQ9rCQ80Uh1apkWlkembORs3UmSVGe6oweXVzhn6MKDnNw3Yu/apf7Qu64uKEbQlcNytLETWijzCi0U6SNaWe9rnPE+P8fnhF5e2smtwUzpfkTB9hydMNvavLLEwz2R/ivynenl5+EOV6TvtltyUWFJODXieJqfvmCLmJL2mAUpVAdMlZVeKRFsmZWpOcjKTiicKoJKQ72xV5Qw0PETGtoTQ0eKSDc7M0CDcJNhBQsVQDuhTQ145yvgndguwbQ7PNDRsulosScYgJYCLV2SliZ6GjN56cFW8NIadTUu8KpRlJ+lokWfMNkcr2BdURsXyubuvmb0qWKsvFzgNECdykpdgD7l0qcVJh7mPRUXJCRWkX7I/Hwe5CUgLwF5CchLQAJizY/UQdoB0g7F0g6Hc4rh3YwWz+57SDps3au/K8jH+YWqnGt9LfmrktoGqVdsZjbxypztyws673WqlspYw7vYt0tH+6Cj9dbRfgEdPd6kjvZARxfV0R7oaL11tJdfRweb1NE+6OiiOtoHHa23jvbz6+jJBnV0XXy0AYR0S8RWL0aaoZKftoB+NoB/gkpWkIBmqOQvW8A2G0A3QSUryDczVPLXLSCXDWCXoJIVpJcZKvlbeY/P+e/0W23XGjSnQXMaNKdBcxo0p5XYnCYSwX6XH/SoQY/aynvUDvP2qB1Cj1q1etQKp7WdF4RCwQmaqxYEVx/AVT9wVbEtqHCuEdAF/SzLgasP4Kqj6apcJ8Zaoy5IxL7mDoK1xlgApddc+V5rQAVQes0V27WGTwCl+lcaWcEFqoxQZYQqI1QZocoIVUaoMkKVMV5l5A9ylhkPoMxY3zKj+2I/yKdCnXEFOTBAFxQaV5gXA3hBpXF1qTJAF5Qaqx15QSoWao2AJSg2Vi2oAixBtRGwtLXlRv+7f1BmhDIjlBmhzAhlxlqVGY9zfXl+lZ8g7x6ml5oOO1BqqsMXyE1Bo9GfQKR7IrrRX62+crZI7FfHj0XX5RPkZeGpsR2AWgNuyv+o1zFbVnThrjK6pUBBfuPi5eAcDfxlBSYBTAKYBDAJYBLAJOZ9NTqTSnSBStSFShhUSpGwrwBjSI0QIep77WyhAGQagJk6MoUhXWFkquVxBOoVZawZJBFG5mAPmQ6Ljzms7v6c1Nfefrq/4juBw6LBGJFjHqskYxxS4DxLMXTAj767C28kxa6rD+nyzpTZXmGZ9TI60/uFfbzg+M2I5GSsjC08dmidjJnOxCiW46tpqH1mTW+ow0zN5rBjvkiK9AVrCbIR9ujUUpluWPBBlO6RzSCpjRKxMblRsS7uTggWiY7YNHYFmyJecR+vlA8sSv84/HTx7XTwCX3/evH7569HJ8MP7+ztdP87ermPoYn7UcLEnMrcAgGAjhV6bd2Zbfghh0DpmKiAklefkgMjB0YOjPzVM3JVg6cH4enB8p8enFvS3cvIw/S3o6RrUJsmkzonYtx3hxRPwcwnzj7fpkFucHDs1AirFg3TZtVpB8SYNT3UYdY9n1mnnRUl+GmtfX47I+MI66TcaRNzeffsOdODEMXjc3TqqC55nNyIW6ismwk6NBd1qIawK7HJoHw8lp8jir/yxmB9qCfB7PyMBTpSROR3rA6YuYbqMlSXgcsCl10ll8V2sbLd4YHilk1xKZtjSVH7J1BdoLorp7qJnoNMrstDz0G1qO4cypHNEUrtWY6Eww26r9d+WzUiwr5yWA1pVUsstSViFUsBrABbDVDFVYsLdLEMXVxh+mNoCQIxDHRBoYKa1P3u9h4f/fyLsZOVFllFEoTKQdAlzeOtkB2B7AhkRyA7ApX+laRBoM4PyY/VvyU4Xubfz2hf7e9D6qNaqY9m4c9iie736UdTGlBIlD2oiph8rU+tyD+/ZHGWve6HsjG+0+nsIFVHi8sUxLn5tyctl1Cp4Kuam4W/VwY6vpiO90HHt0LHq/e+7GbhD8mBji+o4z3Q8a3Q8cq9tbxZ+At/oOML6ngfdHwrdLxyr46vAB9vACEvVckboOWbZuQbfYN/Beh3A/g3qPTrIuAb/ZBCBdh2A+g2qPTr4tsb/Z5FBch1A9g1qPTrotflf1Yk/kgnOnERY39iJPYiKniIE9oUoU0R2hShTbHibYoiEezXdEK3InQrrrxb8TBvt2IPuhWr1a1YOI+f/s1BqNBBN125GOwDBl8tBqvY7lU4VQoghHakzX0BGDD4Sgxh5fpl1h8RQlZ5u9s51h//AeK2u9tg/cEeIG67i+HrD+0AcdtQq2WFKqjTQp0W6rRQp4U6LdRpoU4LddrsOi1/kLdQewCF2toWat03bUJyGCq1m8vUAQihVLv57B2gEGq1G0/oAQihWLv5Ym1ZKIS8MlRr1xwDAuSgXLvmgA8gB/XaNYd3ALlXWLD1v4AKhVoo1EKhFgq1UKitaaH2WMtToy3z+5fxb0D0OhnFui4U66pVrKNWQhGb8VDRFDQaLgpEuieiGy7W+QOPywWLOy3UaXc6fD3jxep953ENkGtsL+bWCq3yP1t4zFYeXbhAQLcUS8hvJb0cnKOBv+jAR4CPAB8BPgJ8BPhIvHuwm5eQ7AEhqQshMaiUIpFhAcqRHURCYLhAYFi7b8uXgqoGwGrDsFoV3xhSECBTXYJpvHGvzibFwgN20F7HkRWN1SZkigMbunfobPZCZRHrd86RJh4HlpQ7ZSjl/EubZKqxcDIUYDkeJTC9YUfpJB/CqTlJEWRLJEeynAzgXB+R3M7k70zSV7iwC/ddZNjzcT8soj/ZBChNMZ3d39z4IkxFQuLjI1vH5DF+qHEnaX/o8vBJEVKm7a1UaNpx3xYSFtVz3XHCESNjEJkigKRSCodi2c/FmFiSjbZLEdvGvdCmcqYo1NuySgODKDq9sCrHeamuPofhY2xVosGX67HDe4qiQvb4olsN5AogxkieMg8u9h+sUk0v7Zjr8KPGnol+SRo6dyz7xdPBeakGfsbZOwWg+K79Ns3IX3HNP/97xV2/3Wm/fZcfrm44Fl4XagtsFTH+5UmHi+7N2OEC35FpaIdlkEvHvIQpbvna4MskE/fBEVVC+IXrzNMgHn2Eykf4DxoAZMA7+xG4WWIMCTJha6NSjNq0BPnKHjP5NNjctZu7epGHwNL02pltK32A8oy+q0V8eVrk5uXWrkZHcpbb+Gk0wvJGfENMCXzFGcgsaYcGju8qoD6GLgjJk8rxEX5ozqJkpqdZUXk4KHddgyPCkTu3PD4l92h/zx+uoBNyT1vS8XRr73hqqDFeZxU68zhOMeVRjErqTQq9XJMKpYxcUJsCdr2cPu2BPm1On4pp0YO8QS2K5YQycewcyFQ+C/Or07HlplVQAf1M2HL6tw/6t0b9i7cKLxALioa5+lgwV5o2xb2ED1skKiyeHp4xMMSH26dPiwSIdmmg4sq0ZKhYil5B0AhKVjBqtCt0C6sWKkm3ZtQTPaPvlgjdnwVritmqsmIlXe+9bE2A+sZr13lxyonSNGig4m6dnjpOUR92+Yl7Nc5U3W1c5DRNEu5CL3HzpDbyisHhDDjXC9KnHB/+sdcJ75kEf3dDf/OiYzOuvRmxQnQyz549SvjCB+ELh0fp7od/hB51ey+G5+vNJSKMv1gHjbc0oRegMtXwH6I7wcbkRsW6cznu3q8F2zDjHgi5G5rYaclxDhkrxLTL2+8P9g7evPwf101l+AWmAQA= istio-workload.json.gz: - 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 istio-performance.json.gz: - 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 {{- end }} diff --git a/charts/kubezero-metrics/Chart.yaml b/charts/kubezero-metrics/Chart.yaml index 6f4a4844..2ac2dc87 100644 --- a/charts/kubezero-metrics/Chart.yaml +++ b/charts/kubezero-metrics/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: kubezero-metrics description: KubeZero Umbrella Chart for Prometheus, Grafana and Alertmanager as well as all Kubernetes integrations. type: application -version: 0.10.4 +version: 0.11.0 home: https://kubezero.com icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png keywords: @@ -29,4 +29,4 @@ dependencies: version: 3.0.0 repository: https://prometheus-community.github.io/helm-charts condition: prometheus-pushgateway.enabled -kubeVersion: ">= 1.26.0" +kubeVersion: ">= 1.30.0-0" diff --git a/charts/kubezero-metrics/README.md b/charts/kubezero-metrics/README.md index 388eeae4..b6d717c5 100644 --- a/charts/kubezero-metrics/README.md +++ b/charts/kubezero-metrics/README.md @@ -1,6 +1,6 @@ # kubezero-metrics -![Version: 0.10.2](https://img.shields.io/badge/Version-0.10.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) +![Version: 0.10.4](https://img.shields.io/badge/Version-0.10.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) KubeZero Umbrella Chart for Prometheus, Grafana and Alertmanager as well as all Kubernetes integrations. @@ -14,14 +14,14 @@ KubeZero Umbrella Chart for Prometheus, Grafana and Alertmanager as well as all ## Requirements -Kubernetes: `>= 1.26.0` +Kubernetes: `>= 1.30.0-0` | Repository | Name | Version | |------------|------|---------| | https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 | -| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | 66.1.1 | +| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | 69.2.3 | | https://prometheus-community.github.io/helm-charts | prometheus-adapter | 4.11.0 | -| https://prometheus-community.github.io/helm-charts | prometheus-pushgateway | 2.15.0 | +| https://prometheus-community.github.io/helm-charts | prometheus-pushgateway | 3.0.0 | ## Values diff --git a/charts/kubezero-metrics/jsonnet/dashboards/apiserver.json b/charts/kubezero-metrics/jsonnet/dashboards/apiserver.json index 178c8ea5..5ab4ce4c 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/apiserver.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/apiserver.json @@ -30,7 +30,7 @@ "options": { "content": "The SLO (service level objective) and other metrics displayed on this dashboard are for informational purposes only." }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "title": "Notice", "type": "text" }, @@ -54,7 +54,7 @@ }, "id": 2, "interval": "1m", - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -100,7 +100,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -134,7 +134,7 @@ }, "id": 4, "interval": "1m", - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -232,7 +232,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -276,7 +276,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -319,7 +319,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -353,7 +353,7 @@ }, "id": 8, "interval": "1m", - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -451,7 +451,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -495,7 +495,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -538,7 +538,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -581,7 +581,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -624,7 +624,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -670,7 +670,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -712,7 +712,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -755,7 +755,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -797,7 +797,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/cluster-total.json b/charts/kubezero-metrics/jsonnet/dashboards/cluster-total.json index c599d4f1..0e977980 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/cluster-total.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/cluster-total.json @@ -46,7 +46,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -92,7 +92,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -163,7 +163,7 @@ "y": 9 }, "id": 3, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -328,7 +328,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -374,7 +374,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -420,7 +420,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -466,7 +466,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -512,7 +512,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -558,7 +558,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -604,7 +604,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -650,7 +650,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -696,7 +696,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -742,7 +742,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/controller-manager.json b/charts/kubezero-metrics/jsonnet/dashboards/controller-manager.json index 7733b241..939cf55f 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/controller-manager.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/controller-manager.json @@ -35,7 +35,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -86,7 +86,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -137,7 +137,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -188,7 +188,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -239,7 +239,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -314,15 +314,15 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-controller-manager\", instance=~\"$instance\", verb=\"POST\"}[$__rate_interval])) by (verb, url, le))", - "legendFormat": "{{verb}} {{url}}" + "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-controller-manager\", instance=~\"$instance\", verb=\"POST\"}[$__rate_interval])) by (verb, le))", + "legendFormat": "{{verb}}" } ], "title": "Post Request Latency 99th Quantile", @@ -365,15 +365,15 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-controller-manager\", instance=~\"$instance\", verb=\"GET\"}[$__rate_interval])) by (verb, url, le))", - "legendFormat": "{{verb}} {{url}}" + "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-controller-manager\", instance=~\"$instance\", verb=\"GET\"}[$__rate_interval])) by (verb, le))", + "legendFormat": "{{verb}}" } ], "title": "Get Request Latency 99th Quantile", @@ -416,7 +416,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -467,7 +467,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -518,7 +518,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-cluster.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-cluster.json index fcc372d1..2fb4d617 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-cluster.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-cluster.json @@ -35,7 +35,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -70,7 +70,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -105,7 +105,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -140,7 +140,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -175,7 +175,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -210,7 +210,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -260,7 +260,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -319,7 +319,7 @@ "y": 12 }, "id": 8, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -476,7 +476,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -571,7 +571,7 @@ "y": 24 }, "id": 10, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -748,7 +748,7 @@ "y": 30 }, "id": 11, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -892,7 +892,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -943,7 +943,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -994,7 +994,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1045,7 +1045,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1096,7 +1096,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1147,7 +1147,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1198,7 +1198,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1249,7 +1249,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1300,7 +1300,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1351,7 +1351,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1422,7 +1422,7 @@ "y": 96 }, "id": 22, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-namespace.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-namespace.json index 4feb6a35..d04196ac 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-namespace.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-namespace.json @@ -35,7 +35,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -70,7 +70,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -105,7 +105,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -140,7 +140,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -242,7 +242,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -317,7 +317,7 @@ "y": 14 }, "id": 6, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -500,7 +500,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -578,7 +578,7 @@ "y": 28 }, "id": 8, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -768,7 +768,7 @@ "y": 35 }, "id": 9, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -912,7 +912,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -963,7 +963,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1014,7 +1014,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1065,7 +1065,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1116,7 +1116,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1167,7 +1167,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1218,7 +1218,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1269,7 +1269,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1340,7 +1340,7 @@ "y": 70 }, "id": 18, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-node.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-node.json index 1929c058..9fddbc1e 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-node.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-node.json @@ -94,7 +94,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -161,7 +161,7 @@ "y": 6 }, "id": 2, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -323,7 +323,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -342,6 +342,109 @@ "legendFormat": "{{pod}}" } ], + "title": "Memory Usage (w/cache)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "mode": "normal" + } + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "max capacity" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.stacking", + "value": { + "mode": "none" + } + }, + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": true, + "viz": false + } + }, + { + "id": "custom.lineStyle", + "value": { + "dash": [ + 10, + 10 + ], + "fill": "dash" + } + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 24, + "x": 0, + "y": 18 + }, + "id": 4, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_node_status_capacity{cluster=\"$cluster\", job=\"kube-state-metrics\", node=~\"$node\", resource=\"memory\"})", + "legendFormat": "max capacity" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(node_namespace_pod_container:container_memory_rss{cluster=\"$cluster\", node=~\"$node\", container!=\"\"}) by (pod)", + "legendFormat": "{{pod}}" + } + ], "title": "Memory Usage (w/o cache)", "type": "timeseries" }, @@ -390,10 +493,10 @@ "h": 6, "w": 24, "x": 0, - "y": 18 + "y": 24 }, - "id": 4, - "pluginVersion": "v11.1.0", + "id": 5, + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-pod.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-pod.json index 97763f5b..daec9690 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-pod.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-pod.json @@ -102,7 +102,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -208,7 +208,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -250,7 +250,7 @@ "y": 14 }, "id": 3, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -433,7 +433,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -494,7 +494,7 @@ "y": 28 }, "id": 5, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -664,7 +664,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -715,7 +715,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -766,7 +766,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -817,7 +817,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -868,7 +868,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -919,7 +919,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -970,7 +970,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1029,7 +1029,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1088,7 +1088,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1139,7 +1139,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1193,7 +1193,7 @@ "y": 70 }, "id": 16, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-windows-cluster.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-windows-cluster.json new file mode 100644 index 00000000..cd68b18a --- /dev/null +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-windows-cluster.json @@ -0,0 +1,675 @@ +{ + "editable": false, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "unit": "none" + } + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "colorMode": "none" + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "1 - avg(rate(windows_cpu_time_total{cluster=\"$cluster\", job=\"kubernetes-windows-exporter\", mode=\"idle\"}[$__rate_interval]))", + "instant": true + } + ], + "title": "CPU Utilisation", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "unit": "percentunit" + } + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 4, + "y": 0 + }, + "id": 2, + "interval": "1m", + "options": { + "colorMode": "none" + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_cpu_cores_request{cluster=\"$cluster\"}) / sum(node:windows_node_num_cpu:sum{cluster=\"$cluster\"})", + "instant": true + } + ], + "title": "CPU Requests Commitment", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "unit": "percentunit" + } + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 0 + }, + "id": 3, + "interval": "1m", + "options": { + "colorMode": "none" + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_cpu_cores_limit{cluster=\"$cluster\"}) / sum(node:windows_node_num_cpu:sum{cluster=\"$cluster\"})", + "instant": true + } + ], + "title": "CPU Limits Commitment", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "unit": "percentunit" + } + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 12, + "y": 0 + }, + "id": 4, + "interval": "1m", + "options": { + "colorMode": "none" + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "1 - sum(:windows_node_memory_MemFreeCached_bytes:sum{cluster=\"$cluster\"}) / sum(:windows_node_memory_MemTotal_bytes:sum{cluster=\"$cluster\"})", + "instant": true + } + ], + "title": "Memory Utilisation", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "unit": "percentunit" + } + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 16, + "y": 0 + }, + "id": 5, + "interval": "1m", + "options": { + "colorMode": "none" + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_memory_request{cluster=\"$cluster\"}) / sum(:windows_node_memory_MemTotal_bytes:sum{cluster=\"$cluster\"})", + "instant": true + } + ], + "title": "Memory Requests Commitment", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "unit": "percentunit" + } + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 20, + "y": 0 + }, + "id": 6, + "interval": "1m", + "options": { + "colorMode": "none" + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_memory_limit{cluster=\"$cluster\"}) / sum(:windows_node_memory_MemTotal_bytes:sum{cluster=\"$cluster\"})", + "instant": true + } + ], + "title": "Memory Limits Commitment", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + } + } + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 7 + }, + "id": 7, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\"}) by (namespace)", + "legendFormat": "__auto" + } + ], + "title": "CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Namespace" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down to pods", + "url": "/d/490b402361724ab1d4c45666c1fa9b6f/k8s-resources-windows-namespace?${datasource:queryparam}&var-cluster=$cluster&var-namespace=${__data.fields.Namespace}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 14 + }, + "id": 8, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\"}) by (namespace)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_cpu_cores_request{cluster=\"$cluster\"}) by (namespace)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\"}) by (namespace) / sum(kube_pod_windows_container_resource_cpu_cores_request{cluster=\"$cluster\"}) by (namespace)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_cpu_cores_limit{cluster=\"$cluster\"}) by (namespace)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\"}) by (namespace) / sum(kube_pod_windows_container_resource_cpu_cores_limit{cluster=\"$cluster\"}) by (namespace)", + "format": "table", + "instant": true + } + ], + "title": "CPU Quota", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "namespace", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true + }, + "indexByName": { + "Time 1": 0, + "Time 2": 1, + "Time 3": 2, + "Time 4": 3, + "Time 5": 4, + "Value #A": 6, + "Value #B": 7, + "Value #C": 8, + "Value #D": 9, + "Value #E": 10, + "namespace": 5 + }, + "renameByName": { + "Value #A": "CPU Usage", + "Value #B": "CPU Requests", + "Value #C": "CPU Requests %", + "Value #D": "CPU Limits", + "Value #E": "CPU Limits %", + "namespace": "Namespace" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "decbytes" + } + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 21 + }, + "id": 9, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(windows_container_private_working_set_usage{cluster=\"$cluster\"}) by (namespace)", + "legendFormat": "__auto" + } + ], + "title": "Memory Usage (Private Working Set)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Memory Usage" + }, + "properties": [ + { + "id": "unit", + "value": "decbytes" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Memory Requests" + }, + "properties": [ + { + "id": "unit", + "value": "decbytes" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Memory Limits" + }, + "properties": [ + { + "id": "unit", + "value": "decbytes" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Namespace" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down to pods", + "url": "/d/490b402361724ab1d4c45666c1fa9b6f/k8s-resources-windows-namespace?${datasource:queryparam}&var-cluster=$cluster&var-namespace=${__data.fields.Namespace}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 28 + }, + "id": 10, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(windows_container_private_working_set_usage{cluster=\"$cluster\"}) by (namespace)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_memory_request{cluster=\"$cluster\"}) by (namespace)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(windows_container_private_working_set_usage{cluster=\"$cluster\"}) by (namespace) / sum(kube_pod_windows_container_resource_memory_request{cluster=\"$cluster\"}) by (namespace)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_memory_limit{cluster=\"$cluster\"}) by (namespace)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(windows_container_private_working_set_usage{cluster=\"$cluster\"}) by (namespace) / sum(kube_pod_windows_container_resource_memory_limit{cluster=\"$cluster\"}) by (namespace)", + "format": "table", + "instant": true + } + ], + "title": "Memory Requests by Namespace", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "namespace", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true + }, + "indexByName": { + "Time 1": 0, + "Time 2": 1, + "Time 3": 2, + "Time 4": 3, + "Time 5": 4, + "Value #A": 6, + "Value #B": 7, + "Value #C": 8, + "Value #D": 9, + "Value #E": 10, + "namespace": 5 + }, + "renameByName": { + "Value #A": "Memory Usage", + "Value #B": "Memory Requests", + "Value #C": "Memory Requests %", + "Value #D": "Memory Limits", + "Value #E": "Memory Limits %", + "namespace": "Namespace" + } + } + } + ], + "type": "table" + } + ], + "refresh": "10s", + "schemaVersion": 39, + "tags": [ + "kubernetes" + ], + "templating": { + "list": [ + { + "current": { + "selected": true, + "text": "default", + "value": "default" + }, + "hide": 0, + "label": "Data source", + "name": "datasource", + "query": "prometheus", + "regex": "", + "type": "datasource" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "label": "cluster", + "name": "cluster", + "query": "label_values(up{job=\"kubernetes-windows-exporter\"}, cluster)", + "refresh": 2, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timezone": "utc", + "title": "Compute Resources / Cluster(Windows)", + "uid": "4d08557fd9391b100730f2494bccac68" +} diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-windows-namespace.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-windows-namespace.json new file mode 100644 index 00000000..ab830844 --- /dev/null +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-windows-namespace.json @@ -0,0 +1,442 @@ +{ + "editable": false, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + } + } + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "legendFormat": "__auto" + } + ], + "title": "CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down to pods", + "url": "/d/40597a704a610e936dc6ed374a7ce023/k8s-resources-windows-pod?${datasource:queryparam}&var-cluster=$cluster&var-namespace=$namespace&var-pod=${__data.fields.Pod}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 7 + }, + "id": 2, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_cpu_cores_request{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod) / sum(kube_pod_windows_container_resource_cpu_cores_request{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_cpu_cores_limit{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod) / sum(kube_pod_windows_container_resource_cpu_cores_limit{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "format": "table", + "instant": true + } + ], + "title": "CPU Quota", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "pod", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true + }, + "indexByName": { + "Time 1": 0, + "Time 2": 1, + "Time 3": 2, + "Time 4": 3, + "Time 5": 4, + "Value #A": 6, + "Value #B": 7, + "Value #C": 8, + "Value #D": 9, + "Value #E": 10, + "pod": 5 + }, + "renameByName": { + "Value #A": "CPU Usage", + "Value #B": "CPU Requests", + "Value #C": "CPU Requests %", + "Value #D": "CPU Limits", + "Value #E": "CPU Limits %", + "pod": "Pod" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "decbytes" + } + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 14 + }, + "id": 3, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(windows_container_private_working_set_usage{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "legendFormat": "__auto" + } + ], + "title": "Memory Usage (Private Working Set)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down to pods", + "url": "/d/40597a704a610e936dc6ed374a7ce023/k8s-resources-windows-pod?${datasource:queryparam}&var-cluster=$cluster&var-namespace=$namespace&var-pod=${__data.fields.Pod}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 21 + }, + "id": 4, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(windows_container_private_working_set_usage{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_memory_request{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(windows_container_private_working_set_usage{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod) / sum(kube_pod_windows_container_resource_memory_request{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_memory_limit{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(windows_container_private_working_set_usage{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod) / sum(kube_pod_windows_container_resource_memory_limit{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "format": "table", + "instant": true + } + ], + "title": "Memory Quota", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "pod", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true + }, + "indexByName": { + "Time 1": 0, + "Time 2": 1, + "Time 3": 2, + "Time 4": 3, + "Time 5": 4, + "Value #A": 6, + "Value #B": 7, + "Value #C": 8, + "Value #D": 9, + "Value #E": 10, + "pod": 5 + }, + "renameByName": { + "Value #A": "Memory Usage", + "Value #B": "Memory Requests", + "Value #C": "Memory Requests %", + "Value #D": "Memory Limits", + "Value #E": "Memory Limits %", + "pod": "Pod" + } + } + } + ], + "type": "table" + } + ], + "refresh": "10s", + "schemaVersion": 39, + "tags": [ + "kubernetes" + ], + "templating": { + "list": [ + { + "current": { + "selected": true, + "text": "default", + "value": "default" + }, + "hide": 0, + "label": "Data source", + "name": "datasource", + "query": "prometheus", + "regex": "", + "type": "datasource" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "label": "cluster", + "name": "cluster", + "query": "label_values(up{job=\"kubernetes-windows-exporter\"}, cluster)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 0, + "label": "namespace", + "name": "namespace", + "query": "label_values(windows_pod_container_available{cluster=\"$cluster\"}, namespace)", + "refresh": 2, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timezone": "utc", + "title": "Compute Resources / Namespace(Windows)", + "uid": "490b402361724ab1d4c45666c1fa9b6f" +} diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-windows-pod.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-windows-pod.json new file mode 100644 index 00000000..c2248596 --- /dev/null +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-windows-pod.json @@ -0,0 +1,497 @@ +{ + "editable": false, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + } + } + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container)", + "legendFormat": "__auto" + } + ], + "title": "CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Namespace" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down to pods", + "url": "/d/490b402361724ab1d4c45666c1fa9b6f/k8s-resources-windows-namespace?${datasource:queryparam}&var-cluster=$cluster&var-namespace=${__data.fields.Namespace}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 7 + }, + "id": 2, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_cpu_cores_request{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container) / sum(kube_pod_windows_container_resource_cpu_cores_request{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_cpu_cores_limit{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container) / sum(kube_pod_windows_container_resource_cpu_cores_limit{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container)", + "format": "table", + "instant": true + } + ], + "title": "CPU Quota", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "container", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true + }, + "indexByName": { + "Time 1": 0, + "Time 2": 1, + "Time 3": 2, + "Time 4": 3, + "Time 5": 4, + "Value #A": 6, + "Value #B": 7, + "Value #C": 8, + "Value #D": 9, + "Value #E": 10, + "container": 5 + }, + "renameByName": { + "Value #A": "CPU Usage", + "Value #B": "CPU Requests", + "Value #C": "CPU Requests %", + "Value #D": "CPU Limits", + "Value #E": "CPU Limits %", + "container": "Container" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "decbytes" + } + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 14 + }, + "id": 3, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(windows_container_private_working_set_usage{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container)", + "legendFormat": "__auto" + } + ], + "title": "Memory Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 21 + }, + "id": 4, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(windows_container_private_working_set_usage{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_memory_request{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(windows_container_private_working_set_usage{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container) / sum(kube_pod_windows_container_resource_memory_request{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(kube_pod_windows_container_resource_memory_limit{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container)", + "format": "table", + "instant": true + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(windows_container_private_working_set_usage{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container) / sum(kube_pod_windows_container_resource_memory_limit{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}) by (container)", + "format": "table", + "instant": true + } + ], + "title": "Memory Quota", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "container", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true + }, + "indexByName": { + "Time 1": 0, + "Time 2": 1, + "Time 3": 2, + "Time 4": 3, + "Time 5": 4, + "Value #A": 6, + "Value #B": 7, + "Value #C": 8, + "Value #D": 9, + "Value #E": 10, + "container": 5 + }, + "renameByName": { + "Value #A": "Memory Usage", + "Value #B": "Memory Requests", + "Value #C": "Memory Requests %", + "Value #D": "Memory Limits", + "Value #E": "Memory Limits %", + "container": "Container" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "bytes" + } + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 28 + }, + "id": 5, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sort_desc(sum by (container) (rate(windows_container_network_received_bytes_total{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}[$__rate_interval])))", + "legendFormat": "Received : {{ container }}" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sort_desc(sum by (container) (rate(windows_container_network_transmitted_bytes_total{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\"}[$__rate_interval])))", + "legendFormat": "Transmitted : {{ container }}" + } + ], + "title": "Network I/O", + "type": "timeseries" + } + ], + "refresh": "10s", + "schemaVersion": 39, + "tags": [ + "kubernetes" + ], + "templating": { + "list": [ + { + "current": { + "selected": true, + "text": "default", + "value": "default" + }, + "hide": 0, + "label": "Data source", + "name": "datasource", + "query": "prometheus", + "regex": "", + "type": "datasource" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "label": "cluster", + "name": "cluster", + "query": "label_values(up{job=\"kubernetes-windows-exporter\"}, cluster)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 0, + "label": "namespace", + "name": "namespace", + "query": "label_values(windows_pod_container_available{cluster=\"$cluster\"}, namespace)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 0, + "label": "pod", + "name": "pod", + "query": "label_values(windows_pod_container_available{cluster=\"$cluster\",namespace=\"$namespace\"}, pod)", + "refresh": 2, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timezone": "utc", + "title": "Compute Resources / Pod(Windows)", + "uid": "40597a704a610e936dc6ed374a7ce023" +} diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workload.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workload.json index b737e751..3c8e4343 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workload.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workload.json @@ -50,7 +50,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -109,7 +109,7 @@ "y": 7 }, "id": 2, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -240,7 +240,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -302,7 +302,7 @@ "y": 21 }, "id": 4, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -453,7 +453,7 @@ "y": 28 }, "id": 5, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -597,7 +597,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -648,7 +648,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -699,7 +699,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -750,7 +750,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -801,7 +801,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -852,7 +852,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -903,7 +903,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -954,7 +954,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workloads-namespace.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workloads-namespace.json index 9d731a0f..25387f9a 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workloads-namespace.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workloads-namespace.json @@ -102,7 +102,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -189,7 +189,7 @@ "y": 7 }, "id": 2, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -397,7 +397,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -487,7 +487,7 @@ "y": 21 }, "id": 4, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -663,7 +663,7 @@ "y": 28 }, "id": 5, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -807,7 +807,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -858,7 +858,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -909,7 +909,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -960,7 +960,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1011,7 +1011,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1062,7 +1062,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1113,7 +1113,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1164,7 +1164,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-windows-cluster-rsrc-use.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-windows-cluster-rsrc-use.json new file mode 100644 index 00000000..d7e5e452 --- /dev/null +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-windows-cluster-rsrc-use.json @@ -0,0 +1,404 @@ +{ + "editable": false, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "percentunit" + } + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "node:windows_node_cpu_utilisation:avg1m{cluster=\"$cluster\"} * node:windows_node_num_cpu:sum{cluster=\"$cluster\"} / scalar(sum(node:windows_node_num_cpu:sum{cluster=\"$cluster\"}))", + "legendFormat": "{{instance}}" + } + ], + "title": "CPU Utilisation", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "percentunit" + } + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 7 + }, + "id": 2, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "node:windows_node_memory_utilisation:ratio{cluster=\"$cluster\"}", + "legendFormat": "{{instance}}" + } + ], + "title": "Memory Utilisation", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "short" + } + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 7 + }, + "id": 3, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "node:windows_node_memory_swap_io_pages:irate{cluster=\"$cluster\"}", + "legendFormat": "{{instance}}" + } + ], + "title": "Memory Saturation (Swap I/O Pages)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "percentunit" + } + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 14 + }, + "id": 4, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "node:windows_node_disk_utilisation:avg_irate{cluster=\"$cluster\"} / scalar(node:windows_node:sum{cluster=\"$cluster\"})", + "legendFormat": "{{instance}}" + } + ], + "title": "Disk IO Utilisation", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "Bps" + } + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 21 + }, + "id": 5, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "node:windows_node_net_utilisation:sum_irate{cluster=\"$cluster\"}", + "legendFormat": "{{instance}}" + } + ], + "title": "Net Utilisation (Transmitted)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "Bps" + } + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 21 + }, + "id": 6, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "node:windows_node_net_saturation:sum_irate{cluster=\"$cluster\"}", + "legendFormat": "{{instance}}" + } + ], + "title": "Net Utilisation (Dropped)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "percentunit" + } + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 28 + }, + "id": 7, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (instance)(node:windows_node_filesystem_usage:{cluster=\"$cluster\"})", + "legendFormat": "{{instance}}" + } + ], + "title": "Disk Capacity", + "type": "timeseries" + } + ], + "refresh": "10s", + "schemaVersion": 39, + "tags": [ + "kubernetes" + ], + "templating": { + "list": [ + { + "current": { + "selected": true, + "text": "default", + "value": "default" + }, + "hide": 0, + "label": "Data source", + "name": "datasource", + "query": "prometheus", + "regex": "", + "type": "datasource" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "label": "cluster", + "name": "cluster", + "query": "label_values(up{job=\"kubernetes-windows-exporter\"}, cluster)", + "refresh": 2, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timezone": "utc", + "title": "USE Method / Cluster(Windows)", + "uid": "53a43377ec9aaf2ff64dfc7a1f539334" +} diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-windows-node-rsrc-use.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-windows-node-rsrc-use.json new file mode 100644 index 00000000..d8630438 --- /dev/null +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-windows-node-rsrc-use.json @@ -0,0 +1,615 @@ +{ + "editable": false, + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "percentunit" + } + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "node:windows_node_cpu_utilisation:avg1m{cluster=\"$cluster\", instance=\"$instance\"}", + "legendFormat": "Utilisation" + } + ], + "title": "CPU Utilisation", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "percentunit" + } + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (core) (irate(windows_cpu_time_total{cluster=\"$cluster\", job=\"kubernetes-windows-exporter\", mode!=\"idle\", instance=\"$instance\"}[$__rate_interval]))", + "legendFormat": "{{core}}" + } + ], + "title": "CPU Usage Per Core", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "percentunit" + } + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 7 + }, + "id": 3, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "node:windows_node_memory_utilisation:{cluster=\"$cluster\", instance=\"$instance\"}", + "legendFormat": "Memory" + } + ], + "title": "Memory Utilisation %", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "bytes" + } + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 7 + }, + "id": 4, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "max(\n windows_os_visible_memory_bytes{cluster=\"$cluster\", job=\"kubernetes-windows-exporter\", instance=\"$instance\"}\n - windows_memory_available_bytes{cluster=\"$cluster\", job=\"kubernetes-windows-exporter\", instance=\"$instance\"}\n)\n", + "legendFormat": "memory used" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "max(node:windows_node_memory_totalCached_bytes:sum{cluster=\"$cluster\", instance=\"$instance\"})", + "legendFormat": "memory cached" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "max(windows_memory_available_bytes{cluster=\"$cluster\", job=\"kubernetes-windows-exporter\", instance=\"$instance\"})", + "legendFormat": "memory free" + } + ], + "title": "Memory Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "short" + } + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 7 + }, + "id": 5, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "node:windows_node_memory_swap_io_pages:irate{cluster=\"$cluster\", instance=\"$instance\"}", + "legendFormat": "Swap IO" + } + ], + "title": "Memory Saturation (Swap I/O) Pages", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "percentunit" + } + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 14 + }, + "id": 6, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "node:windows_node_disk_utilisation:avg_irate{cluster=\"$cluster\", instance=\"$instance\"}", + "legendFormat": "Utilisation" + } + ], + "title": "Disk IO Utilisation", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/io time/" + }, + "properties": [ + { + "id": "unit", + "value": "ms" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 14 + }, + "id": 7, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "max(rate(windows_logical_disk_read_bytes_total{cluster=\"$cluster\", job=\"kubernetes-windows-exporter\", instance=\"$instance\"}[$__rate_interval]))", + "legendFormat": "read" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "max(rate(windows_logical_disk_write_bytes_total{cluster=\"$cluster\", job=\"kubernetes-windows-exporter\", instance=\"$instance\"}[$__rate_interval]))", + "legendFormat": "written" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "max(rate(windows_logical_disk_read_seconds_total{cluster=\"$cluster\", job=\"kubernetes-windows-exporter\", instance=\"$instance\"}[$__rate_interval]) + rate(windows_logical_disk_write_seconds_total{cluster=\"$cluster\", job=\"kubernetes-windows-exporter\", instance=\"$instance\"}[$__rate_interval]))", + "legendFormat": "io time" + } + ], + "title": "Disk IO", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "percentunit" + } + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 21 + }, + "id": 8, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "node:windows_node_filesystem_usage:{cluster=\"$cluster\", instance=\"$instance\"}", + "legendFormat": "{{volume}}" + } + ], + "title": "Disk Utilisation", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "Bps" + } + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 28 + }, + "id": 9, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "node:windows_node_net_utilisation:sum_irate{cluster=\"$cluster\", instance=\"$instance\"}", + "legendFormat": "Utilisation" + } + ], + "title": "Net Utilisation (Transmitted)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "fillOpacity": 10, + "showPoints": "never", + "spanNulls": true + }, + "unit": "Bps" + } + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 28 + }, + "id": 10, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single" + } + }, + "pluginVersion": "v11.4.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "node:windows_node_net_saturation:sum_irate{cluster=\"$cluster\", instance=\"$instance\"}", + "legendFormat": "Saturation" + } + ], + "title": "Net Saturation (Dropped)", + "type": "timeseries" + } + ], + "refresh": "10s", + "schemaVersion": 39, + "tags": [ + "kubernetes" + ], + "templating": { + "list": [ + { + "current": { + "selected": true, + "text": "default", + "value": "default" + }, + "hide": 0, + "label": "Data source", + "name": "datasource", + "query": "prometheus", + "regex": "", + "type": "datasource" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "label": "cluster", + "name": "cluster", + "query": "label_values(up{job=\"kubernetes-windows-exporter\"}, cluster)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 0, + "label": "instance", + "name": "instance", + "query": "label_values(windows_system_system_up_time{cluster=\"$cluster\"}, instance)", + "refresh": 2, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timezone": "utc", + "title": "USE Method / Node(Windows)", + "uid": "96e7484b0bb53b74fbc2bcb7723cd40b" +} diff --git a/charts/kubezero-metrics/jsonnet/dashboards/kubelet.json b/charts/kubezero-metrics/jsonnet/dashboards/kubelet.json index 311b19fb..f5586fd6 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/kubelet.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/kubelet.json @@ -35,7 +35,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -70,7 +70,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -105,7 +105,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -140,7 +140,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -175,7 +175,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -210,7 +210,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -261,7 +261,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -312,7 +312,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -363,7 +363,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -414,7 +414,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -473,7 +473,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -532,7 +532,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -583,7 +583,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -634,7 +634,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -685,7 +685,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -736,7 +736,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -787,7 +787,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -838,7 +838,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -889,7 +889,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -940,7 +940,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1015,15 +1015,15 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\",job=\"kubelet\", instance=~\"$instance\"}[$__rate_interval])) by (instance, verb, url, le))", - "legendFormat": "{{instance}} {{verb}} {{url}}" + "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\",job=\"kubelet\", instance=~\"$instance\"}[$__rate_interval])) by (instance, verb, le))", + "legendFormat": "{{instance}} {{verb}}" } ], "title": "Request duration 99th quantile", @@ -1066,7 +1066,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1117,7 +1117,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -1168,7 +1168,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-pod.json b/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-pod.json index be4d1a71..4c54a8cd 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-pod.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-pod.json @@ -53,7 +53,7 @@ "y": 0 }, "id": 1, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -106,7 +106,7 @@ "y": 0 }, "id": 2, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -177,7 +177,7 @@ "y": 9 }, "id": 3, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -316,7 +316,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -362,7 +362,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -408,7 +408,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -454,7 +454,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -500,7 +500,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -546,7 +546,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-workload.json b/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-workload.json index c12b1274..f2b045de 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-workload.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-workload.json @@ -39,7 +39,7 @@ "displayMode": "basic", "showUnfilled": false }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -78,7 +78,7 @@ "displayMode": "basic", "showUnfilled": false }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -149,7 +149,7 @@ "y": 9 }, "id": 3, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -335,7 +335,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -386,7 +386,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -437,7 +437,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -488,7 +488,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -539,7 +539,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -590,7 +590,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -641,7 +641,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -692,7 +692,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/persistentvolumesusage.json b/charts/kubezero-metrics/jsonnet/dashboards/persistentvolumesusage.json index f1f71a7c..27dffcb6 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/persistentvolumesusage.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/persistentvolumesusage.json @@ -50,7 +50,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -112,7 +112,7 @@ }, "id": 2, "interval": "1m", - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -162,7 +162,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -224,7 +224,7 @@ }, "id": 4, "interval": "1m", - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/pod-total.json b/charts/kubezero-metrics/jsonnet/dashboards/pod-total.json index 13c14cff..904df1b2 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/pod-total.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/pod-total.json @@ -53,7 +53,7 @@ "y": 0 }, "id": 1, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -106,7 +106,7 @@ "y": 0 }, "id": 2, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -152,7 +152,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -198,7 +198,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -244,7 +244,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -290,7 +290,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -336,7 +336,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -382,7 +382,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/proxy.json b/charts/kubezero-metrics/jsonnet/dashboards/proxy.json index bdfd0544..64da6223 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/proxy.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/proxy.json @@ -35,7 +35,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -86,7 +86,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -137,7 +137,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -188,7 +188,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -239,7 +239,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -290,7 +290,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -365,15 +365,15 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-proxy\",instance=~\"$instance\",verb=\"POST\"}[$__rate_interval])) by (verb, url, le))", - "legendFormat": "{{verb}} {{url}}" + "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-proxy\",instance=~\"$instance\",verb=\"POST\"}[$__rate_interval])) by (verb, le))", + "legendFormat": "{{verb}}" } ], "title": "Post Request Latency 99th Quantile", @@ -416,15 +416,15 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-proxy\", instance=~\"$instance\", verb=\"GET\"}[$__rate_interval])) by (verb, url, le))", - "legendFormat": "{{verb}} {{url}}" + "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-proxy\", instance=~\"$instance\", verb=\"GET\"}[$__rate_interval])) by (verb, le))", + "legendFormat": "{{verb}}" } ], "title": "Get Request Latency 99th Quantile", @@ -467,7 +467,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -518,7 +518,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -569,7 +569,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/scheduler.json b/charts/kubezero-metrics/jsonnet/dashboards/scheduler.json index 03423a36..4002ca3e 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/scheduler.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/scheduler.json @@ -35,7 +35,7 @@ "options": { "colorMode": "none" }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -86,7 +86,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -161,7 +161,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -236,7 +236,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -311,15 +311,15 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\", verb=\"POST\"}[$__rate_interval])) by (verb, url, le))", - "legendFormat": "{{verb}} {{url}}" + "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\", verb=\"POST\"}[$__rate_interval])) by (verb, le))", + "legendFormat": "{{verb}}" } ], "title": "Post Request Latency 99th Quantile", @@ -362,15 +362,15 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { "type": "prometheus", "uid": "${datasource}" }, - "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\", verb=\"GET\"}[$__rate_interval])) by (verb, url, le))", - "legendFormat": "{{verb}} {{url}}" + "expr": "histogram_quantile(0.99, sum(rate(rest_client_request_duration_seconds_bucket{cluster=\"$cluster\", job=\"kube-scheduler\", instance=~\"$instance\", verb=\"GET\"}[$__rate_interval])) by (verb, le))", + "legendFormat": "{{verb}}" } ], "title": "Get Request Latency 99th Quantile", @@ -413,7 +413,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -464,7 +464,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -515,7 +515,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/workload-total.json b/charts/kubezero-metrics/jsonnet/dashboards/workload-total.json index dd983597..2276cc23 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/workload-total.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/workload-total.json @@ -39,7 +39,7 @@ "displayMode": "basic", "showUnfilled": false }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -78,7 +78,7 @@ "displayMode": "basic", "showUnfilled": false }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -117,7 +117,7 @@ "displayMode": "basic", "showUnfilled": false }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -156,7 +156,7 @@ "displayMode": "basic", "showUnfilled": false }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -207,7 +207,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -258,7 +258,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -309,7 +309,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -360,7 +360,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -411,7 +411,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { @@ -462,7 +462,7 @@ "mode": "single" } }, - "pluginVersion": "v11.1.0", + "pluginVersion": "v11.4.0", "targets": [ { "datasource": { diff --git a/charts/kubezero-metrics/jsonnet/jsonnetfile.lock.json b/charts/kubezero-metrics/jsonnet/jsonnetfile.lock.json index 21f5dda7..370a75d1 100644 --- a/charts/kubezero-metrics/jsonnet/jsonnetfile.lock.json +++ b/charts/kubezero-metrics/jsonnet/jsonnetfile.lock.json @@ -18,8 +18,8 @@ "subdir": "contrib/mixin" } }, - "version": "2b323071a8bd4f02ddaf63e0dfa1fd98c221dccb", - "sum": "IXI3LQIT9NmTPJAk8WLUJd5+qZfcGpeNCyWIK7oEpws=" + "version": "f30cbaac111aa01a310fe75360c759cdd4d9cd14", + "sum": "XmXkOCriQIZmXwlIIFhqlJMa0e6qGWdxZD+ZDYaN0Po=" }, { "source": { @@ -41,16 +41,6 @@ "version": "a1d61cce1da59c71409b99b5c7568511fec661ea", "sum": "342u++/7rViR/zj2jeJOjshzglkZ1SY+hFNuyCBFMdc=" }, - { - "source": { - "git": { - "remote": "https://github.com/grafana/grafonnet-lib.git", - "subdir": "grafonnet-7.0" - } - }, - "version": "a1d61cce1da59c71409b99b5c7568511fec661ea", - "sum": "gCtR9s/4D5fxU9aKXg0Bru+/njZhA0YjLjPiASc61FM=" - }, { "source": { "git": { @@ -58,8 +48,8 @@ "subdir": "gen/grafonnet-latest" } }, - "version": "82a19822e54a0a12a51e24dbd48fcde717dc0864", - "sum": "64fMUPI3frXGj4X1FqFd1t7r04w3CUSmXaDcJ23EYbQ=" + "version": "d20e609202733790caf5b554c9945d049f243ae3", + "sum": "V9vAj21qJOc2DlMPDgB1eEjSQU4A+sAA4AXuJ6bd4xc=" }, { "source": { @@ -68,18 +58,18 @@ "subdir": "gen/grafonnet-v10.0.0" } }, - "version": "82a19822e54a0a12a51e24dbd48fcde717dc0864", + "version": "d20e609202733790caf5b554c9945d049f243ae3", "sum": "xdcrJPJlpkq4+5LpGwN4tPAuheNNLXZjE6tDcyvFjr0=" }, { "source": { "git": { "remote": "https://github.com/grafana/grafonnet.git", - "subdir": "gen/grafonnet-v11.1.0" + "subdir": "gen/grafonnet-v11.4.0" } }, - "version": "82a19822e54a0a12a51e24dbd48fcde717dc0864", - "sum": "41w7p/rwrNsITqNHMXtGSJAfAyKmnflg6rFhKBduUxM=" + "version": "d20e609202733790caf5b554c9945d049f243ae3", + "sum": "aVAX09paQYNOoCSKVpuk1exVIyBoMt/C50QJI+Q/3nA=" }, { "source": { @@ -88,7 +78,7 @@ "subdir": "grafana-builder" } }, - "version": "767befa8fb46a07be516dec2777d7d89909a529d", + "version": "d6c38bb26f576b128cadca4137d73a037afdd872", "sum": "yxqWcq/N3E/a/XreeU6EuE6X7kYPnG0AspAQFKOjASo=" }, { @@ -108,8 +98,8 @@ "subdir": "" } }, - "version": "63d430b69a95741061c2f7fc9d84b1a778511d9c", - "sum": "qiZi3axUSXCVzKUF83zSAxklwrnitMmrDK4XAfjPMdE=" + "version": "1199b50e9d2ff53d4bb5fb2304ad1fb69d38e609", + "sum": "LfbgcJbilu4uBdKYZSvmkoOTPwEAzg10L3/VqKAIWtA=" }, { "source": { @@ -118,8 +108,8 @@ "subdir": "" } }, - "version": "a3fbf21977deb89b7d843eb8371170c011ea6835", - "sum": "57zW2IGJ9zbYd8BI0qe6JkoWTRSMNiBUWC6+YcnEsWo=" + "version": "e27267571be06c2bdc3d2fd8dbd70161cd709cb4", + "sum": "je1RPCp2aFNefYs5Q57Q5wDm93p8pL4pdBtA5rC7jLA=" }, { "source": { @@ -128,8 +118,8 @@ "subdir": "jsonnet/kube-state-metrics" } }, - "version": "32e7727ff4613b0f55dfc18aff15afb8c04d03c5", - "sum": "lO7jUSzAIy8Yk9pOWJIWgPRhubkWzVh56W6wtYfbVH4=" + "version": "2a95d4649b2fea55799032fb9c0b571c4ba7f776", + "sum": "3bioG7CfTfY9zeu5xU4yon6Zt3kYvNkyl492nOhQxnM=" }, { "source": { @@ -138,7 +128,7 @@ "subdir": "jsonnet/kube-state-metrics-mixin" } }, - "version": "32e7727ff4613b0f55dfc18aff15afb8c04d03c5", + "version": "2a95d4649b2fea55799032fb9c0b571c4ba7f776", "sum": "qclI7LwucTjBef3PkGBkKxF0mfZPbHnn4rlNWKGtR4c=" }, { @@ -148,8 +138,8 @@ "subdir": "jsonnet/kube-prometheus" } }, - "version": "7e5a571a3fb735c78e17c76a637eb7e8bb5dd086", - "sum": "uTw/Mj+X91S+oqUpAX81xcfWPDlox0tdSZY/YBw7nGE=" + "version": "1eea946a1532f1e8cccfceea98d907bf3a10b1d9", + "sum": "17LhiwefVfoNDsF3DcFZw/UL4PMU7YpNNUaOdaYd1gE=" }, { "source": { @@ -158,7 +148,7 @@ "subdir": "jsonnet/mixin" } }, - "version": "a366602bacb2c8d773a9cee058b6971b8d2e3732", + "version": "465bcbaf2a727c942e7f923aacfb9dff9af8d4a1", "sum": "gi+knjdxs2T715iIQIntrimbHRgHnpM8IFBJDD1gYfs=", "name": "prometheus-operator-mixin" }, @@ -169,8 +159,8 @@ "subdir": "jsonnet/prometheus-operator" } }, - "version": "a366602bacb2c8d773a9cee058b6971b8d2e3732", - "sum": "z0/lCiMusMHTqntsosMVGYkVcSZjCpyZBmUMVUsK5nA=" + "version": "465bcbaf2a727c942e7f923aacfb9dff9af8d4a1", + "sum": "LctDdofQostvviE5y8vpRKWGGO1ZKO3dgJe7P9xifW0=" }, { "source": { @@ -179,7 +169,7 @@ "subdir": "doc/alertmanager-mixin" } }, - "version": "0f65e8fa5fc72d2678655105c0213b416ca6f34c", + "version": "b5d1a64ad5bb0ff879705714d1e40cea82efbd5c", "sum": "Mf4h1BYLle2nrgjf/HXrBbl0Zk8N+xaoEM017o0BC+k=", "name": "alertmanager" }, @@ -190,8 +180,8 @@ "subdir": "docs/node-mixin" } }, - "version": "cf8c6891cc610e54f70383addd4bb6079f0add35", - "sum": "cQCW+1N0Xae5yXecCWDK2oAlN0luBS/5GrwBYSlaFms=" + "version": "11365f97bef6cb0e6259d536a7e21c49e3f5c065", + "sum": "xYj6VYFT/eafsbleNlC+Z2VfLy1CndyYrJs9BcTmnX8=" }, { "source": { @@ -200,8 +190,8 @@ "subdir": "documentation/prometheus-mixin" } }, - "version": "b407c2930da4f50c0d17fc39404c6302a9eb740b", - "sum": "OYT5u3S8DbamuJV/v3gbWSteOvFzMeNwMj+u4Apk7jM=", + "version": "509b978f0d675b4c9b3ccf8c0fc06961b0f03e8f", + "sum": "2c+wttfee9TwuQJZIkNV7Tekem74Qgc7iZ842P28rNw=", "name": "prometheus" }, { @@ -222,7 +212,7 @@ "subdir": "mixin" } }, - "version": "7037331e6ea7dbe85a1b7af37bf8ea277a80663d", + "version": "346d18bb0f8011c63d7106de494cf3b9253161a1", "sum": "ieCD4eMgGbOlrI8GmckGPHBGQDcLasE1rULYq56W/bs=", "name": "thanos-mixin" } diff --git a/charts/kubezero-metrics/jsonnet/metrics-dashboards.yaml b/charts/kubezero-metrics/jsonnet/metrics-dashboards.yaml index 8d0f6850..10f53dd2 100644 --- a/charts/kubezero-metrics/jsonnet/metrics-dashboards.yaml +++ b/charts/kubezero-metrics/jsonnet/metrics-dashboards.yaml @@ -6,5 +6,5 @@ dashboards: url: https://grafana.com/api/dashboards/9578/revisions/4/download tags: [] - name: Prometheus - url: https://grafana.com/api/dashboards/3662/revisions/2/download + url: https://grafana.com/api/dashboards/19105/revisions/7/download tags: [] diff --git a/charts/kubezero-metrics/jsonnet/rules/alertmanager-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/alertmanager-prometheusRule index 49a32cbb..81d93800 100644 --- a/charts/kubezero-metrics/jsonnet/rules/alertmanager-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/alertmanager-prometheusRule @@ -7,7 +7,7 @@ "app.kubernetes.io/instance": "main", "app.kubernetes.io/name": "alertmanager", "app.kubernetes.io/part-of": "kube-prometheus", - "app.kubernetes.io/version": "0.27.0", + "app.kubernetes.io/version": "0.28.0", "prometheus": "k8s", "role": "alert-rules" }, diff --git a/charts/kubezero-metrics/jsonnet/rules/etcd-mixin-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/etcd-mixin-prometheusRule index dafcc7d9..bbe86251 100644 --- a/charts/kubezero-metrics/jsonnet/rules/etcd-mixin-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/etcd-mixin-prometheusRule @@ -20,9 +20,9 @@ "summary": "etcd cluster members are down." }, "expr": "max without (endpoint) (\n sum without (instance, pod) (up{job=~\".*etcd.*\"} == bool 0)\nor\n count without (To) (\n sum without (instance, pod) (rate(etcd_network_peer_sent_failures_total{job=~\".*etcd.*\"}[120s])) > 0.01\n )\n)\n> 0\n", - "for": "10m", + "for": "20m", "labels": { - "severity": "critical" + "severity": "warning" } }, { diff --git a/charts/kubezero-metrics/jsonnet/rules/kube-state-metrics-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/kube-state-metrics-prometheusRule index f14d44c2..19b4243a 100644 --- a/charts/kubezero-metrics/jsonnet/rules/kube-state-metrics-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/kube-state-metrics-prometheusRule @@ -6,7 +6,7 @@ "app.kubernetes.io/component": "exporter", "app.kubernetes.io/name": "kube-state-metrics", "app.kubernetes.io/part-of": "kube-prometheus", - "app.kubernetes.io/version": "2.14.0", + "app.kubernetes.io/version": "2.15.0", "prometheus": "k8s", "role": "alert-rules" }, diff --git a/charts/kubezero-metrics/jsonnet/rules/kubernetes-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/kubernetes-prometheusRule index 0909ee9b..6b17e46e 100644 --- a/charts/kubezero-metrics/jsonnet/rules/kubernetes-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/kubernetes-prometheusRule @@ -19,7 +19,7 @@ { "alert": "KubePodCrashLooping", "annotations": { - "description": "Pod {{ $labels.namespace }}/{{ $labels.pod }} ({{ $labels.container }}) is in waiting state (reason: \"CrashLoopBackOff\").", + "description": "Pod {{ $labels.namespace }}/{{ $labels.pod }} ({{ $labels.container }}) is in waiting state (reason: \"CrashLoopBackOff\") on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubepodcrashlooping", "summary": "Pod is crash looping." }, @@ -32,7 +32,7 @@ { "alert": "KubePodNotReady", "annotations": { - "description": "Pod {{ $labels.namespace }}/{{ $labels.pod }} has been in a non-ready state for longer than 15 minutes.", + "description": "Pod {{ $labels.namespace }}/{{ $labels.pod }} has been in a non-ready state for longer than 15 minutes on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubepodnotready", "summary": "Pod has been in a non-ready state for more than 15 minutes." }, @@ -45,7 +45,7 @@ { "alert": "KubeDeploymentGenerationMismatch", "annotations": { - "description": "Deployment generation for {{ $labels.namespace }}/{{ $labels.deployment }} does not match, this indicates that the Deployment has failed but has not been rolled back.", + "description": "Deployment generation for {{ $labels.namespace }}/{{ $labels.deployment }} does not match, this indicates that the Deployment has failed but has not been rolled back on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubedeploymentgenerationmismatch", "summary": "Deployment generation mismatch due to possible roll-back" }, @@ -58,7 +58,7 @@ { "alert": "KubeDeploymentReplicasMismatch", "annotations": { - "description": "Deployment {{ $labels.namespace }}/{{ $labels.deployment }} has not matched the expected number of replicas for longer than 15 minutes.", + "description": "Deployment {{ $labels.namespace }}/{{ $labels.deployment }} has not matched the expected number of replicas for longer than 15 minutes on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubedeploymentreplicasmismatch", "summary": "Deployment has not matched the expected number of replicas." }, @@ -71,7 +71,7 @@ { "alert": "KubeDeploymentRolloutStuck", "annotations": { - "description": "Rollout of deployment {{ $labels.namespace }}/{{ $labels.deployment }} is not progressing for longer than 15 minutes.", + "description": "Rollout of deployment {{ $labels.namespace }}/{{ $labels.deployment }} is not progressing for longer than 15 minutes on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubedeploymentrolloutstuck", "summary": "Deployment rollout is not progressing." }, @@ -84,7 +84,7 @@ { "alert": "KubeStatefulSetReplicasMismatch", "annotations": { - "description": "StatefulSet {{ $labels.namespace }}/{{ $labels.statefulset }} has not matched the expected number of replicas for longer than 15 minutes.", + "description": "StatefulSet {{ $labels.namespace }}/{{ $labels.statefulset }} has not matched the expected number of replicas for longer than 15 minutes on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetreplicasmismatch", "summary": "StatefulSet has not matched the expected number of replicas." }, @@ -97,7 +97,7 @@ { "alert": "KubeStatefulSetGenerationMismatch", "annotations": { - "description": "StatefulSet generation for {{ $labels.namespace }}/{{ $labels.statefulset }} does not match, this indicates that the StatefulSet has failed but has not been rolled back.", + "description": "StatefulSet generation for {{ $labels.namespace }}/{{ $labels.statefulset }} does not match, this indicates that the StatefulSet has failed but has not been rolled back on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetgenerationmismatch", "summary": "StatefulSet generation mismatch due to possible roll-back" }, @@ -110,7 +110,7 @@ { "alert": "KubeStatefulSetUpdateNotRolledOut", "annotations": { - "description": "StatefulSet {{ $labels.namespace }}/{{ $labels.statefulset }} update has not been rolled out.", + "description": "StatefulSet {{ $labels.namespace }}/{{ $labels.statefulset }} update has not been rolled out on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetupdatenotrolledout", "summary": "StatefulSet update has not been rolled out." }, @@ -123,7 +123,7 @@ { "alert": "KubeDaemonSetRolloutStuck", "annotations": { - "description": "DaemonSet {{ $labels.namespace }}/{{ $labels.daemonset }} has not finished or progressed for at least 15m.", + "description": "DaemonSet {{ $labels.namespace }}/{{ $labels.daemonset }} has not finished or progressed for at least 15m on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubedaemonsetrolloutstuck", "summary": "DaemonSet rollout is stuck." }, @@ -136,7 +136,7 @@ { "alert": "KubeContainerWaiting", "annotations": { - "description": "pod/{{ $labels.pod }} in namespace {{ $labels.namespace }} on container {{ $labels.container}} has been in waiting state for longer than 1 hour. (reason: \"{{ $labels.reason }}\").", + "description": "pod/{{ $labels.pod }} in namespace {{ $labels.namespace }} on container {{ $labels.container}} has been in waiting state for longer than 1 hour. (reason: \"{{ $labels.reason }}\") on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubecontainerwaiting", "summary": "Pod container waiting longer than 1 hour" }, @@ -149,7 +149,7 @@ { "alert": "KubeDaemonSetNotScheduled", "annotations": { - "description": "{{ $value }} Pods of DaemonSet {{ $labels.namespace }}/{{ $labels.daemonset }} are not scheduled.", + "description": "{{ $value }} Pods of DaemonSet {{ $labels.namespace }}/{{ $labels.daemonset }} are not scheduled on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubedaemonsetnotscheduled", "summary": "DaemonSet pods are not scheduled." }, @@ -162,7 +162,7 @@ { "alert": "KubeDaemonSetMisScheduled", "annotations": { - "description": "{{ $value }} Pods of DaemonSet {{ $labels.namespace }}/{{ $labels.daemonset }} are running where they are not supposed to run.", + "description": "{{ $value }} Pods of DaemonSet {{ $labels.namespace }}/{{ $labels.daemonset }} are running where they are not supposed to run on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubedaemonsetmisscheduled", "summary": "DaemonSet pods are misscheduled." }, @@ -175,7 +175,7 @@ { "alert": "KubeJobNotCompleted", "annotations": { - "description": "Job {{ $labels.namespace }}/{{ $labels.job_name }} is taking more than {{ \"43200\" | humanizeDuration }} to complete.", + "description": "Job {{ $labels.namespace }}/{{ $labels.job_name }} is taking more than {{ \"43200\" | humanizeDuration }} to complete on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubejobnotcompleted", "summary": "Job did not complete in time" }, @@ -187,7 +187,7 @@ { "alert": "KubeJobFailed", "annotations": { - "description": "Job {{ $labels.namespace }}/{{ $labels.job_name }} failed to complete. Removing failed job after investigation should clear this alert.", + "description": "Job {{ $labels.namespace }}/{{ $labels.job_name }} failed to complete. Removing failed job after investigation should clear this alert on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubejobfailed", "summary": "Job failed to complete." }, @@ -200,7 +200,7 @@ { "alert": "KubeHpaReplicasMismatch", "annotations": { - "description": "HPA {{ $labels.namespace }}/{{ $labels.horizontalpodautoscaler }} has not matched the desired number of replicas for longer than 15 minutes.", + "description": "HPA {{ $labels.namespace }}/{{ $labels.horizontalpodautoscaler }} has not matched the desired number of replicas for longer than 15 minutes on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubehpareplicasmismatch", "summary": "HPA has not matched desired number of replicas." }, @@ -213,7 +213,7 @@ { "alert": "KubeHpaMaxedOut", "annotations": { - "description": "HPA {{ $labels.namespace }}/{{ $labels.horizontalpodautoscaler }} has been running at max replicas for longer than 15 minutes.", + "description": "HPA {{ $labels.namespace }}/{{ $labels.horizontalpodautoscaler }} has been running at max replicas for longer than 15 minutes on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubehpamaxedout", "summary": "HPA is running at max replicas" }, @@ -257,7 +257,7 @@ { "alert": "KubeQuotaAlmostFull", "annotations": { - "description": "Namespace {{ $labels.namespace }} is using {{ $value | humanizePercentage }} of its {{ $labels.resource }} quota.", + "description": "Namespace {{ $labels.namespace }} is using {{ $value | humanizePercentage }} of its {{ $labels.resource }} quota on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubequotaalmostfull", "summary": "Namespace quota is going to be full." }, @@ -270,7 +270,7 @@ { "alert": "KubeQuotaFullyUsed", "annotations": { - "description": "Namespace {{ $labels.namespace }} is using {{ $value | humanizePercentage }} of its {{ $labels.resource }} quota.", + "description": "Namespace {{ $labels.namespace }} is using {{ $value | humanizePercentage }} of its {{ $labels.resource }} quota on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubequotafullyused", "summary": "Namespace quota is fully used." }, @@ -283,7 +283,7 @@ { "alert": "KubeQuotaExceeded", "annotations": { - "description": "Namespace {{ $labels.namespace }} is using {{ $value | humanizePercentage }} of its {{ $labels.resource }} quota.", + "description": "Namespace {{ $labels.namespace }} is using {{ $value | humanizePercentage }} of its {{ $labels.resource }} quota on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubequotaexceeded", "summary": "Namespace quota has exceeded the limits." }, @@ -296,7 +296,7 @@ { "alert": "CPUThrottlingHigh", "annotations": { - "description": "{{ $value | humanizePercentage }} throttling of CPU in namespace {{ $labels.namespace }} for container {{ $labels.container }} in pod {{ $labels.pod }}.", + "description": "{{ $value | humanizePercentage }} throttling of CPU in namespace {{ $labels.namespace }} for container {{ $labels.container }} in pod {{ $labels.pod }} on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/cputhrottlinghigh", "summary": "Processes experience elevated CPU throttling." }, @@ -396,7 +396,7 @@ { "alert": "KubeVersionMismatch", "annotations": { - "description": "There are {{ $value }} different semantic versions of Kubernetes components running.", + "description": "There are {{ $value }} different semantic versions of Kubernetes components running on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeversionmismatch", "summary": "Different semantic versions of Kubernetes components running." }, @@ -409,7 +409,7 @@ { "alert": "KubeClientErrors", "annotations": { - "description": "Kubernetes API server client '{{ $labels.job }}/{{ $labels.instance }}' is experiencing {{ $value | humanizePercentage }} errors.'", + "description": "Kubernetes API server client '{{ $labels.job }}/{{ $labels.instance }}' is experiencing {{ $value | humanizePercentage }} errors on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeclienterrors", "summary": "Kubernetes API server client is experiencing errors." }, @@ -427,7 +427,7 @@ { "alert": "KubeAPIErrorBudgetBurn", "annotations": { - "description": "The API server is burning too much error budget.", + "description": "The API server is burning too much error budget on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn", "summary": "The API server is burning too much error budget." }, @@ -442,7 +442,7 @@ { "alert": "KubeAPIErrorBudgetBurn", "annotations": { - "description": "The API server is burning too much error budget.", + "description": "The API server is burning too much error budget on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn", "summary": "The API server is burning too much error budget." }, @@ -457,7 +457,7 @@ { "alert": "KubeAPIErrorBudgetBurn", "annotations": { - "description": "The API server is burning too much error budget.", + "description": "The API server is burning too much error budget on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn", "summary": "The API server is burning too much error budget." }, @@ -472,7 +472,7 @@ { "alert": "KubeAPIErrorBudgetBurn", "annotations": { - "description": "The API server is burning too much error budget.", + "description": "The API server is burning too much error budget on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn", "summary": "The API server is burning too much error budget." }, @@ -518,11 +518,12 @@ { "alert": "KubeAggregatedAPIErrors", "annotations": { - "description": "Kubernetes aggregated API {{ $labels.name }}/{{ $labels.namespace }} has reported errors. It has appeared unavailable {{ $value | humanize }} times averaged over the past 10m.", + "description": "Kubernetes aggregated API {{ $labels.instance }}/{{ $labels.name }} has reported {{ $labels.reason }} errors on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeaggregatedapierrors", "summary": "Kubernetes aggregated API has reported errors." }, - "expr": "sum by(name, namespace, cluster)(increase(aggregator_unavailable_apiservice_total{job=\"apiserver\"}[10m])) > 4\n", + "expr": "sum by(cluster, instance, name, reason)(increase(aggregator_unavailable_apiservice_total{job=\"apiserver\"}[1m])) > 0\n", + "for": "10m", "labels": { "severity": "warning" } @@ -530,7 +531,7 @@ { "alert": "KubeAggregatedAPIDown", "annotations": { - "description": "Kubernetes aggregated API {{ $labels.name }}/{{ $labels.namespace }} has been only {{ $value | humanize }}% available over the last 10m.", + "description": "Kubernetes aggregated API {{ $labels.name }}/{{ $labels.namespace }} has been only {{ $value | humanize }}% available over the last 10m on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeaggregatedapidown", "summary": "Kubernetes aggregated API is down." }, @@ -556,7 +557,7 @@ { "alert": "KubeAPITerminatedRequests", "annotations": { - "description": "The kubernetes apiserver has terminated {{ $value | humanizePercentage }} of its incoming requests.", + "description": "The kubernetes apiserver has terminated {{ $value | humanizePercentage }} of its incoming requests on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapiterminatedrequests", "summary": "The kubernetes apiserver has terminated {{ $value | humanizePercentage }} of its incoming requests." }, @@ -574,11 +575,11 @@ { "alert": "KubeNodeNotReady", "annotations": { - "description": "{{ $labels.node }} has been unready for more than 15 minutes.", + "description": "{{ $labels.node }} has been unready for more than 15 minutes on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubenodenotready", "summary": "Node is not ready." }, - "expr": "kube_node_status_condition{job=\"kube-state-metrics\",condition=\"Ready\",status=\"true\"} == 0\n", + "expr": "kube_node_status_condition{job=\"kube-state-metrics\",condition=\"Ready\",status=\"true\"} == 0\nand on (cluster, node)\nkube_node_spec_unschedulable{job=\"kube-state-metrics\"} == 0\n", "for": "15m", "labels": { "severity": "warning" @@ -587,7 +588,7 @@ { "alert": "KubeNodeUnreachable", "annotations": { - "description": "{{ $labels.node }} is unreachable and some workloads may be rescheduled.", + "description": "{{ $labels.node }} is unreachable and some workloads may be rescheduled on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubenodeunreachable", "summary": "Node is unreachable." }, @@ -600,11 +601,11 @@ { "alert": "KubeletTooManyPods", "annotations": { - "description": "Kubelet '{{ $labels.node }}' is running at {{ $value | humanizePercentage }} of its Pod capacity.", + "description": "Kubelet '{{ $labels.node }}' is running at {{ $value | humanizePercentage }} of its Pod capacity on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubelettoomanypods", "summary": "Kubelet is running at capacity." }, - "expr": "count by(cluster, node) (\n (kube_pod_status_phase{job=\"kube-state-metrics\",phase=\"Running\"} == 1) * on(instance,pod,namespace,cluster) group_left(node) topk by(instance,pod,namespace,cluster) (1, kube_pod_info{job=\"kube-state-metrics\"})\n)\n/\nmax by(cluster, node) (\n kube_node_status_capacity{job=\"kube-state-metrics\",resource=\"pods\"} != 1\n) > 0.95\n", + "expr": "(\n max by (cluster, instance) (\n kubelet_running_pods{job=\"kubelet\", metrics_path=\"/metrics\"} > 1\n )\n * on (cluster, instance) group_left(node)\n max by (cluster, instance, node) (\n kubelet_node_name{job=\"kubelet\", metrics_path=\"/metrics\"}\n )\n)\n/ on (cluster, node) group_left()\nmax by (cluster, node) (\n kube_node_status_capacity{job=\"kube-state-metrics\", resource=\"pods\"} != 1\n) > 0.95\n", "for": "15m", "labels": { "severity": "info" @@ -613,11 +614,11 @@ { "alert": "KubeNodeReadinessFlapping", "annotations": { - "description": "The readiness status of node {{ $labels.node }} has changed {{ $value }} times in the last 15 minutes.", + "description": "The readiness status of node {{ $labels.node }} has changed {{ $value }} times in the last 15 minutes on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubenodereadinessflapping", "summary": "Node readiness status is flapping." }, - "expr": "sum(changes(kube_node_status_condition{job=\"kube-state-metrics\",status=\"true\",condition=\"Ready\"}[15m])) by (cluster, node) > 2\n", + "expr": "sum(changes(kube_node_status_condition{job=\"kube-state-metrics\",status=\"true\",condition=\"Ready\"}[15m])) by (cluster, node) > 2\nand on (cluster, node)\nkube_node_spec_unschedulable{job=\"kube-state-metrics\"} == 0\n", "for": "15m", "labels": { "severity": "warning" @@ -626,7 +627,7 @@ { "alert": "KubeletPlegDurationHigh", "annotations": { - "description": "The Kubelet Pod Lifecycle Event Generator has a 99th percentile duration of {{ $value }} seconds on node {{ $labels.node }}.", + "description": "The Kubelet Pod Lifecycle Event Generator has a 99th percentile duration of {{ $value }} seconds on node {{ $labels.node }} on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletplegdurationhigh", "summary": "Kubelet Pod Lifecycle Event Generator is taking too long to relist." }, @@ -639,7 +640,7 @@ { "alert": "KubeletPodStartUpLatencyHigh", "annotations": { - "description": "Kubelet Pod startup 99th percentile latency is {{ $value }} seconds on node {{ $labels.node }}.", + "description": "Kubelet Pod startup 99th percentile latency is {{ $value }} seconds on node {{ $labels.node }} on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletpodstartuplatencyhigh", "summary": "Kubelet Pod startup latency is too high." }, @@ -652,7 +653,7 @@ { "alert": "KubeletClientCertificateExpiration", "annotations": { - "description": "Client certificate for Kubelet on node {{ $labels.node }} expires in {{ $value | humanizeDuration }}.", + "description": "Client certificate for Kubelet on node {{ $labels.node }} expires in {{ $value | humanizeDuration }} on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletclientcertificateexpiration", "summary": "Kubelet client certificate is about to expire." }, @@ -664,7 +665,7 @@ { "alert": "KubeletClientCertificateExpiration", "annotations": { - "description": "Client certificate for Kubelet on node {{ $labels.node }} expires in {{ $value | humanizeDuration }}.", + "description": "Client certificate for Kubelet on node {{ $labels.node }} expires in {{ $value | humanizeDuration }} on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletclientcertificateexpiration", "summary": "Kubelet client certificate is about to expire." }, @@ -676,7 +677,7 @@ { "alert": "KubeletServerCertificateExpiration", "annotations": { - "description": "Server certificate for Kubelet on node {{ $labels.node }} expires in {{ $value | humanizeDuration }}.", + "description": "Server certificate for Kubelet on node {{ $labels.node }} expires in {{ $value | humanizeDuration }} on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletservercertificateexpiration", "summary": "Kubelet server certificate is about to expire." }, @@ -688,7 +689,7 @@ { "alert": "KubeletServerCertificateExpiration", "annotations": { - "description": "Server certificate for Kubelet on node {{ $labels.node }} expires in {{ $value | humanizeDuration }}.", + "description": "Server certificate for Kubelet on node {{ $labels.node }} expires in {{ $value | humanizeDuration }} on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletservercertificateexpiration", "summary": "Kubelet server certificate is about to expire." }, @@ -700,7 +701,7 @@ { "alert": "KubeletClientCertificateRenewalErrors", "annotations": { - "description": "Kubelet on node {{ $labels.node }} has failed to renew its client certificate ({{ $value | humanize }} errors in the last 5 minutes).", + "description": "Kubelet on node {{ $labels.node }} has failed to renew its client certificate ({{ $value | humanize }} errors in the last 5 minutes) on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletclientcertificaterenewalerrors", "summary": "Kubelet has failed to renew its client certificate." }, @@ -713,7 +714,7 @@ { "alert": "KubeletServerCertificateRenewalErrors", "annotations": { - "description": "Kubelet on node {{ $labels.node }} has failed to renew its server certificate ({{ $value | humanize }} errors in the last 5 minutes).", + "description": "Kubelet on node {{ $labels.node }} has failed to renew its server certificate ({{ $value | humanize }} errors in the last 5 minutes) on cluster {{ $labels.cluster }}.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletservercertificaterenewalerrors", "summary": "Kubelet has failed to renew its server certificate." }, @@ -809,25 +810,25 @@ "record": "cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase1h" }, { - "expr": "sum by (cluster, verb, scope) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{le=\"+Inf\"} * 24 * 30)\n", + "expr": "sum by (cluster, verb, scope) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{le=\"+Inf\"})\n", "record": "cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d" }, { - "expr": "1 - (\n (\n # write too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=\"1\"})\n ) +\n (\n # read too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=\"1\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=\"5\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=\"30\"})\n )\n ) +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d)\n", + "expr": "1 - (\n (\n # write too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=~\"1(\\\\.0)?\"})\n ) +\n (\n # read too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=~\"5(\\\\.0)?\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=~\"30(\\\\.0)?\"})\n )\n ) +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d)\n", "labels": { "verb": "all" }, "record": "apiserver_request:availability30d" }, { - "expr": "1 - (\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n # too slow\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=\"1\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=\"5\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=\"30\"})\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\"})\n", + "expr": "1 - (\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n # too slow\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=~\"5(\\\\.0)?\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=~\"30(\\\\.0)?\"})\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\"})\n", "labels": { "verb": "read" }, "record": "apiserver_request:availability30d" }, { - "expr": "1 - (\n (\n # too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=\"1\"})\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\"})\n", + "expr": "1 - (\n (\n # too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=~\"1(\\\\.0)?\"})\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\"})\n", "labels": { "verb": "write" }, @@ -869,98 +870,98 @@ "name": "kube-apiserver-burnrate.rules", "rules": [ { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[1d]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[1d]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[1d]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[1d]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[1d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[1d]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[1d]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[1d]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[1d]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[1d]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[1d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[1d]))\n", "labels": { "verb": "read" }, "record": "apiserver_request:burnrate1d" }, { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[1h]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[1h]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[1h]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[1h]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[1h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[1h]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[1h]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[1h]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[1h]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[1h]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[1h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[1h]))\n", "labels": { "verb": "read" }, "record": "apiserver_request:burnrate1h" }, { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[2h]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[2h]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[2h]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[2h]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[2h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[2h]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[2h]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[2h]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[2h]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[2h]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[2h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[2h]))\n", "labels": { "verb": "read" }, "record": "apiserver_request:burnrate2h" }, { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[30m]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[30m]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[30m]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[30m]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[30m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[30m]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[30m]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[30m]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[30m]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[30m]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[30m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[30m]))\n", "labels": { "verb": "read" }, "record": "apiserver_request:burnrate30m" }, { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[3d]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[3d]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[3d]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[3d]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[3d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[3d]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[3d]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[3d]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[3d]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[3d]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[3d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[3d]))\n", "labels": { "verb": "read" }, "record": "apiserver_request:burnrate3d" }, { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[5m]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[5m]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[5m]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[5m]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[5m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[5m]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[5m]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[5m]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[5m]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[5m]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[5m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[5m]))\n", "labels": { "verb": "read" }, "record": "apiserver_request:burnrate5m" }, { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[6h]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[6h]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[6h]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[6h]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[6h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[6h]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[6h]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[6h]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[6h]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[6h]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[6h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[6h]))\n", "labels": { "verb": "read" }, "record": "apiserver_request:burnrate6h" }, { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[1d]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[1d]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[1d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[1d]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[1d]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[1d]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[1d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[1d]))\n", "labels": { "verb": "write" }, "record": "apiserver_request:burnrate1d" }, { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[1h]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[1h]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[1h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[1h]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[1h]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[1h]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[1h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[1h]))\n", "labels": { "verb": "write" }, "record": "apiserver_request:burnrate1h" }, { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[2h]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[2h]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[2h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[2h]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[2h]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[2h]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[2h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[2h]))\n", "labels": { "verb": "write" }, "record": "apiserver_request:burnrate2h" }, { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[30m]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[30m]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[30m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[30m]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[30m]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[30m]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[30m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[30m]))\n", "labels": { "verb": "write" }, "record": "apiserver_request:burnrate30m" }, { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[3d]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[3d]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[3d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[3d]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[3d]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[3d]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[3d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[3d]))\n", "labels": { "verb": "write" }, "record": "apiserver_request:burnrate3d" }, { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[5m]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[5m]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[5m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[5m]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[5m]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[5m]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[5m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[5m]))\n", "labels": { "verb": "write" }, "record": "apiserver_request:burnrate5m" }, { - "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[6h]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[6h]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[6h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[6h]))\n", + "expr": "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[6h]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[6h]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[6h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[6h]))\n", "labels": { "verb": "write" }, @@ -1237,6 +1238,144 @@ "record": "node_quantile:kubelet_pleg_relist_duration_seconds:histogram_quantile" } ] + }, + { + "name": "windows.node.rules", + "rules": [ + { + "expr": "count by (cluster) (\n windows_system_system_up_time{job=\"kubernetes-windows-exporter\"}\n)\n", + "record": "node:windows_node:sum" + }, + { + "expr": "count by (cluster, instance) (sum by (cluster, instance, core) (\n windows_cpu_time_total{job=\"kubernetes-windows-exporter\"}\n))\n", + "record": "node:windows_node_num_cpu:sum" + }, + { + "expr": "1 - avg by (cluster) (rate(windows_cpu_time_total{job=\"kubernetes-windows-exporter\",mode=\"idle\"}[1m]))\n", + "record": ":windows_node_cpu_utilisation:avg1m" + }, + { + "expr": "1 - avg by (cluster, instance) (\n rate(windows_cpu_time_total{job=\"kubernetes-windows-exporter\",mode=\"idle\"}[1m])\n)\n", + "record": "node:windows_node_cpu_utilisation:avg1m" + }, + { + "expr": "1 -\nsum by (cluster) (windows_memory_available_bytes{job=\"kubernetes-windows-exporter\"})\n/\nsum by (cluster) (windows_os_visible_memory_bytes{job=\"kubernetes-windows-exporter\"})\n", + "record": ":windows_node_memory_utilisation:" + }, + { + "expr": "sum by (cluster) (windows_memory_available_bytes{job=\"kubernetes-windows-exporter\"} + windows_memory_cache_bytes{job=\"kubernetes-windows-exporter\"})\n", + "record": ":windows_node_memory_MemFreeCached_bytes:sum" + }, + { + "expr": "(windows_memory_cache_bytes{job=\"kubernetes-windows-exporter\"} + windows_memory_modified_page_list_bytes{job=\"kubernetes-windows-exporter\"} + windows_memory_standby_cache_core_bytes{job=\"kubernetes-windows-exporter\"} + windows_memory_standby_cache_normal_priority_bytes{job=\"kubernetes-windows-exporter\"} + windows_memory_standby_cache_reserve_bytes{job=\"kubernetes-windows-exporter\"})\n", + "record": "node:windows_node_memory_totalCached_bytes:sum" + }, + { + "expr": "sum by (cluster) (windows_os_visible_memory_bytes{job=\"kubernetes-windows-exporter\"})\n", + "record": ":windows_node_memory_MemTotal_bytes:sum" + }, + { + "expr": "sum by (cluster, instance) (\n (windows_memory_available_bytes{job=\"kubernetes-windows-exporter\"})\n)\n", + "record": "node:windows_node_memory_bytes_available:sum" + }, + { + "expr": "sum by (cluster, instance) (\n windows_os_visible_memory_bytes{job=\"kubernetes-windows-exporter\"}\n)\n", + "record": "node:windows_node_memory_bytes_total:sum" + }, + { + "expr": "(node:windows_node_memory_bytes_total:sum - node:windows_node_memory_bytes_available:sum)\n/\nscalar(sum(node:windows_node_memory_bytes_total:sum))\n", + "record": "node:windows_node_memory_utilisation:ratio" + }, + { + "expr": "1 - (node:windows_node_memory_bytes_available:sum / node:windows_node_memory_bytes_total:sum)\n", + "record": "node:windows_node_memory_utilisation:" + }, + { + "expr": "irate(windows_memory_swap_page_operations_total{job=\"kubernetes-windows-exporter\"}[5m])\n", + "record": "node:windows_node_memory_swap_io_pages:irate" + }, + { + "expr": "avg by (cluster) (irate(windows_logical_disk_read_seconds_total{job=\"kubernetes-windows-exporter\"}[1m]) +\n irate(windows_logical_disk_write_seconds_total{job=\"kubernetes-windows-exporter\"}[1m])\n )\n", + "record": ":windows_node_disk_utilisation:avg_irate" + }, + { + "expr": "avg by (cluster, instance) (\n (irate(windows_logical_disk_read_seconds_total{job=\"kubernetes-windows-exporter\"}[1m]) +\n irate(windows_logical_disk_write_seconds_total{job=\"kubernetes-windows-exporter\"}[1m]))\n)\n", + "record": "node:windows_node_disk_utilisation:avg_irate" + }, + { + "expr": "max by (cluster,instance,volume)(\n (windows_logical_disk_size_bytes{job=\"kubernetes-windows-exporter\"}\n- windows_logical_disk_free_bytes{job=\"kubernetes-windows-exporter\"})\n/ windows_logical_disk_size_bytes{job=\"kubernetes-windows-exporter\"}\n)\n", + "record": "node:windows_node_filesystem_usage:" + }, + { + "expr": "max by (cluster, instance, volume) (windows_logical_disk_free_bytes{job=\"kubernetes-windows-exporter\"} / windows_logical_disk_size_bytes{job=\"kubernetes-windows-exporter\"})\n", + "record": "node:windows_node_filesystem_avail:" + }, + { + "expr": "sum by (cluster) (irate(windows_net_bytes_total{job=\"kubernetes-windows-exporter\"}[1m]))\n", + "record": ":windows_node_net_utilisation:sum_irate" + }, + { + "expr": "sum by (cluster, instance) (\n (irate(windows_net_bytes_total{job=\"kubernetes-windows-exporter\"}[1m]))\n)\n", + "record": "node:windows_node_net_utilisation:sum_irate" + }, + { + "expr": "sum by (cluster) (irate(windows_net_packets_received_discarded_total{job=\"kubernetes-windows-exporter\"}[1m])) +\nsum by (cluster) (irate(windows_net_packets_outbound_discarded_total{job=\"kubernetes-windows-exporter\"}[1m]))\n", + "record": ":windows_node_net_saturation:sum_irate" + }, + { + "expr": "sum by (cluster, instance) (\n (irate(windows_net_packets_received_discarded_total{job=\"kubernetes-windows-exporter\"}[1m]) +\n irate(windows_net_packets_outbound_discarded_total{job=\"kubernetes-windows-exporter\"}[1m]))\n)\n", + "record": "node:windows_node_net_saturation:sum_irate" + } + ] + }, + { + "name": "windows.pod.rules", + "rules": [ + { + "expr": "windows_container_available{job=\"kubernetes-windows-exporter\", container_id != \"\"} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job=\"kube-state-metrics\", container_id != \"\"}) by(container, container_id, pod, namespace, cluster)\n", + "record": "windows_pod_container_available" + }, + { + "expr": "windows_container_cpu_usage_seconds_total{job=\"kubernetes-windows-exporter\", container_id != \"\"} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job=\"kube-state-metrics\", container_id != \"\"}) by(container, container_id, pod, namespace, cluster)\n", + "record": "windows_container_total_runtime" + }, + { + "expr": "windows_container_memory_usage_commit_bytes{job=\"kubernetes-windows-exporter\", container_id != \"\"} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job=\"kube-state-metrics\", container_id != \"\"}) by(container, container_id, pod, namespace, cluster)\n", + "record": "windows_container_memory_usage" + }, + { + "expr": "windows_container_memory_usage_private_working_set_bytes{job=\"kubernetes-windows-exporter\", container_id != \"\"} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job=\"kube-state-metrics\", container_id != \"\"}) by(container, container_id, pod, namespace, cluster)\n", + "record": "windows_container_private_working_set_usage" + }, + { + "expr": "windows_container_network_receive_bytes_total{job=\"kubernetes-windows-exporter\", container_id != \"\"} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job=\"kube-state-metrics\", container_id != \"\"}) by(container, container_id, pod, namespace, cluster)\n", + "record": "windows_container_network_received_bytes_total" + }, + { + "expr": "windows_container_network_transmit_bytes_total{job=\"kubernetes-windows-exporter\", container_id != \"\"} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job=\"kube-state-metrics\", container_id != \"\"}) by(container, container_id, pod, namespace, cluster)\n", + "record": "windows_container_network_transmitted_bytes_total" + }, + { + "expr": "max by (cluster, namespace, pod, container) (\n kube_pod_container_resource_requests{resource=\"memory\",job=\"kube-state-metrics\"}\n) * on(container,pod,namespace,cluster) (windows_pod_container_available)\n", + "record": "kube_pod_windows_container_resource_memory_request" + }, + { + "expr": "kube_pod_container_resource_limits{resource=\"memory\",job=\"kube-state-metrics\"} * on(container,pod,namespace,cluster) (windows_pod_container_available)\n", + "record": "kube_pod_windows_container_resource_memory_limit" + }, + { + "expr": "max by (cluster, namespace, pod, container) (\n kube_pod_container_resource_requests{resource=\"cpu\",job=\"kube-state-metrics\"}\n) * on(container,pod,namespace,cluster) (windows_pod_container_available)\n", + "record": "kube_pod_windows_container_resource_cpu_cores_request" + }, + { + "expr": "kube_pod_container_resource_limits{resource=\"cpu\",job=\"kube-state-metrics\"} * on(container,pod,namespace,cluster) (windows_pod_container_available)\n", + "record": "kube_pod_windows_container_resource_cpu_cores_limit" + }, + { + "expr": "sum by (cluster, namespace, pod, container) (\n rate(windows_container_total_runtime{}[5m])\n)\n", + "record": "namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate" + } + ] } ] } diff --git a/charts/kubezero-metrics/jsonnet/rules/node-exporter-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/node-exporter-prometheusRule index 4f162024..aec9c4cb 100644 --- a/charts/kubezero-metrics/jsonnet/rules/node-exporter-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/node-exporter-prometheusRule @@ -151,7 +151,7 @@ { "alert": "NodeHighNumberConntrackEntriesUsed", "annotations": { - "description": "{{ $value | humanizePercentage }} of conntrack entries are used.", + "description": "{{ $labels.instance }} {{ $value | humanizePercentage }} of conntrack entries are used.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/node/nodehighnumberconntrackentriesused", "summary": "Number of conntrack are getting close to the limit." }, @@ -256,7 +256,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/node/nodecpuhighusage", "summary": "High CPU usage." }, - "expr": "sum without(mode) (avg without (cpu) (rate(node_cpu_seconds_total{job=\"node-exporter\", mode!=\"idle\"}[2m]))) * 100 > 90\n", + "expr": "sum without(mode) (avg without (cpu) (rate(node_cpu_seconds_total{job=\"node-exporter\", mode!~\"idle|iowait\"}[2m]))) * 100 > 90\n", "for": "15m", "labels": { "severity": "info" diff --git a/charts/kubezero-metrics/jsonnet/rules/prometheus-operator-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/prometheus-operator-prometheusRule index 7b086fcd..175523a4 100644 --- a/charts/kubezero-metrics/jsonnet/rules/prometheus-operator-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/prometheus-operator-prometheusRule @@ -6,7 +6,7 @@ "app.kubernetes.io/component": "controller", "app.kubernetes.io/name": "prometheus-operator", "app.kubernetes.io/part-of": "kube-prometheus", - "app.kubernetes.io/version": "0.78.2", + "app.kubernetes.io/version": "0.80.0", "prometheus": "k8s", "role": "alert-rules" }, diff --git a/charts/kubezero-metrics/jsonnet/rules/prometheus-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/prometheus-prometheusRule index 4a2ece62..eaa2752d 100644 --- a/charts/kubezero-metrics/jsonnet/rules/prometheus-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/prometheus-prometheusRule @@ -7,7 +7,7 @@ "app.kubernetes.io/instance": "k8s", "app.kubernetes.io/name": "prometheus", "app.kubernetes.io/part-of": "kube-prometheus", - "app.kubernetes.io/version": "3.0.1", + "app.kubernetes.io/version": "3.1.0", "prometheus": "k8s", "role": "alert-rules" }, diff --git a/charts/kubezero-metrics/templates/grafana-dashboards-k8s.yaml b/charts/kubezero-metrics/templates/grafana-dashboards-k8s.yaml index 159614b2..a80d709c 100644 --- a/charts/kubezero-metrics/templates/grafana-dashboards-k8s.yaml +++ b/charts/kubezero-metrics/templates/grafana-dashboards-k8s.yaml @@ -16,36 +16,36 @@ binaryData: node.json.gz: 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 apiserver.json.gz: - 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 cluster-total.json.gz: - H4sIAAAAAAAC/+1cbW/bNhD+nl+hccGQDEnjdzsFhqFx2g7YlgVJVmBoAoG2KJmNTGokldgN/N9HUpKtd7dNk8wJgaKxeOTp+PDu0eko6W7LsgBysIAjH4HXlgt9jvZUo4/JNZctH+WBZd3p/2Uz5MeMBg69JVImWKg7awkmYz900AfIeF50jVBwgaco3y6gtzpF1DMcIUaQQBzEjVep3sxD4siH5DptaSTDQtsPfl8pWAnngZY5kE9GFDInVr7YitWDABLkl8zWgQJyGrKxHn/K6BSJCQpTul2MfGdIiYs92eVuNRMHuTD0Bc+0yvZxyAWd5lplO5/Q21OKiR4BCLpBDKR6LPbSSkKCheo2wuQo4Kt+i61cb+Ax7JzSrBVgIg8PVwrBrTxutlINM9nQSB3P1XFBN3bUuJQDCMRuoK8Ma05XENFAYEpyJvjIQ8TJgwP5ReyIaT+J8MQ88OH8T+rotYgcNtNDisdoiohGhmFvIrJyhfAfyWmV/q0ScIGg1Bc4yFs2jc/LMfHkiWsQD/zQw+QDYlzOWg25aTZfNV81QM6Rs56fOdlat9O90Cxg2qRwao3m1g6BU8QDicGutXNJVBcGBdoZUyIgJojZMixuKbu2GRojfIPs0VyGiS2ogP6djF0ul++XS7Ad/7wEe0uNP8j2S7D4uG3bSqedLPXVrjrRzxYl1k48bDVoL6DOruUxGga2j1xh7exGZgkaXGuLK4bE1lvSt5JfUzirHaF4w5Y/pWUuvZtQLpLZSss1VUjz49PLP/JfFsvIHd9RNoXafWwbhoIWl/mqyDjDkDHpdNaZBMairnWkULXOIoydIgsJSYQcMZxQXOw5hnPyDTWk0zKks2mkIxgkfIqFYZ0HZJ2LGGTxyMRDJXPIoEdZ97LyfCOnOZ4gViCiJKzBaH4mIZkFGZhy8QwO9FwPQKbLIjsCBDJLRUzggklFs1Ln1xy3V5RKpwtRGfll1ylerSoKfRg0TuH4Wgb20+ARPCIYJzL6aqE4ScLzIaCI7odqsPhYEJVpy0bxMcO+b+m7qb3yriHTl7YD52Aw6sPBqN3qOX3Yc5tuo9PqdBq9Xrs3GPf60D1Y3TvtxywkLxv7S87al0TFf92+W4X5639DxOYBZHC6+OkGsv2EjrcTYo6alyqkwLbV+FeaCfirJeILUGL+otB29eW+spVv/Yb8otVZc09zWJ5etE0yv8mXVXd5QS1J2DDhAup0rSobM1nRS10+eOOZ4Hs5q2eCb6O5Mwm+IEqAzfpt6rXPLODzCEBH3lgFyDHruOmBaBbyvgu5vnB3LqBI19b0IkTniusZFfeTUTniE8XkaP5O3YZnLSorfGvBKO6tKv3LQkmuNJIUnGkoclsBa300MosyDxL8GX2hTWim94yPotpOSe2nZNc4I7OatdJWrbRdK+3USru10l6ttF8rHeSdqayGhYmDZvWwaWga1bg0q0FpVSPSroajU41FtxqIXjUK/YLog6q1WT++ydZ6ssIjNbdGlXSopM0q6XFuDyorfauk7SrpOyXtVEnfK2m3SvqbkhaRWMXpa2tQ6w+SUmTfaodIAQfOZtFuAahDEFys6zVM67J23tx4u6AO16XGNX3fxnrjujaow1vpXNfvfVafdRxd3EDdWqT0VvdPr05l7bmcQ4uXh2SPRl9izL7wmrptc1BeuO2YfeEn3hc2JbQn3RZ+I0MVesg8jPIQD6NUsU7XsM6msY4p/T4C7TzV0yjPLt1p9cuJp2eIxzx7+5J5J05srCNInFvsiInhmXtlOFVE0zdEY563fdFMk+Qyz5lqgsfKZ9q9cpoZGJrZ1HzG7OF/p4wmvoNKSjaF8rZhm6/Oaqro5tDQzcZmNYZvvi/fpGo1hnLuneB0uhUvSzcM5Wx6hmMejnrYTKew4W7o56sznkr+MV9r2PyUxxDQg6c+z5iDkDSNCH34KKlQt1NBReYbDv8XKooeYs4zEZGGq1iUMmFfjAP7DGkqOkceL2WdMpaxDiqU/RWKr1Jk6GpJV8NTK14KSVrcoqFQzdD3La4eLOfIU77MDXfdP4+qJK+2Ia+NIq+3M/lneHo+J3Ho3J/BvoUODYulWez8n5MqJmOr5i/gseV3/BhyGeIq1kG7EY0EfDxBU7jyzLamgey3B3PfHYyUCTSVwSWk6y/DAviYi5QHp0J7HL3Xk48gjnw0Vg9AlQS3QDMNX0yeWYyXn1hJpKVxO8E6QNNJlw9HSLPRsYwnKw6olJxErwikwy0l1Z8E0WRbFn8SYA8ppgTpxtX3FZca8/yQvlSsD/NkWq2yacVOXTalEtFyPnq8rVHlO2Fw94mOpLOrdfeRkO6+Z8Wjd7PzTRwqbQunTGTfoFliEJ1vKx0H6gMmi8ijcOrtDOAyfWUEhN7uN5PtZMnEcRvIDPtMidb/98UQxI1xRJ0sv/UiqWqYQgCE0TtZrttrd2Gj1R2NXQT7o3HbcTputzE4PGzANjoEW4v/AGsqrzEHVAAA + H4sIAAAAAAAC/+1cbW/bNhD+nl+hccGQDEnjdzsFhqFx2g7YlgVJVmBoAoG2KJmNTGokldgN/N9HUpKtd7dNk8wJgaKxeOTp+PDu0eko6W7LsgBysIAjH4HXlgt9jvZUo4/JNZctH+WBZd3p/2Uz5MeMBg69JVImWKg7awkmYz900AfIeF50jVBwgaco3y6gtzpF1DMcIUaQQBzEjVep3sxD4siH5DptaSTDQtsPfl8pWAnngZY5kE9GFDInVr7YitWDABLkl8zWgQJyGrKxHn/K6BSJCQpTul2MfGdIiYs92eVuNRMHuTD0Bc+0yvZxyAWd5lplO5/Q21OKiR4BCLpBDKR6LPbSSkKCheo2wuQo4Kt+i61cb+Ax7JzSrBVgIg8PVwrBrTxutlINM9nQSB3P1XFBN3bUuJQDCMRuoK8Ma05XENFAYEpyJvjIQ8TJgwP5ReyIaT+J8MQ88OH8T+rotYgcNtNDisdoiohGhmFvIrJyhfAfyWmV/q0ScIGg1Bc4yFs2jc/LMfHkiWsQD/zQw+QDYlzOWg25aTZfdV41QM6Rs56fOdlat9O90Cxg2qRwao3m1g6BU8QDicGutXNJVBcGBdoZUyIgJojZMixuKbu2GRojfIPs0VyGiS2ogP6djF0ul++XS7Ad/7wEe0uNP8j2S7D4uG3bSqedLPXVrjrRzxYl1k48bDVoL6DOruUxGga2j1xh7exGZgkaXGuLK4bE1lvSt5JfUzirHaF4w5Y/pWUuvZtQLpLZSss1VUjz49PLP/JfFsvIHd9RNoXafWwbhoIWl/mqyDjDkDHpdNaZBMairnWkULXOIoydIgsJSYQcMZxQXOw5hnPyDTWk0zKks2mkIxgkfIqFYZ0HZJ2LGGTxyMRDJXPIoEdZ97LyfCOnOZ4gViCiJKzBaH4mIZkFGZhy8QwO9FwPQKbLIjsCBDJLRUzggklFs1Ln1xy3V5RKpwtRGfll1ylerSoKfRg0TuH4Wgb20+ARPCIYJzL6aqE4ScLzIaCI7odqsPhYEJVpy0bxMcO+b+m7qb3yriHTl7YD52Aw6sPBqN3qOX3Yc5tuo9PqdBq9Xrs3GPf60D1Y3TvtxywkLxv7S87al0TFf92+W4X5639DxOYBZHC6+OkGsv2EjrcTYo6alyqkwLbV+FeaCfirJeILUGL+otB29eW+spVv/Yb8otVZc09zWJ5etE0yv8mXVXd5QS1J2DDhAup0rSobM1nRS10+eOOZ4Hs5q2eCb6O5Mwm+IEqAzfpt6rXPLODzCEBH3lgFyDHruOmBaBbyvgu5vnB3LqBI19b0IkTniusZFfeTUTniE8XkaP5O3YZnLSorfGvBKO6tKv3LQkmuNJIUnGkoclsBa300MosyDxL8GX2hTWim94yPotpOSe2nZNc4I7OatdJWrbRdK+3USru10l6ttF8rHeSdqayGhYmDZvWwaWga1bg0q0FpVSPSroajU41FtxqIXjUK/YLog6q1WT++ydZ6ssIjNbdGlXSopM0q6XFuDyorfauk7SrpOyXtVEnfK2m3SvqbkhaRWMXpa2tQ6w+SUmTfaodIAQfOZtFuAahDEFys6zVM67J23tx4u6AO16XGNX3fxnrjujaow1vpXNfvfVafdRxd3EDdWqT0VvdPr05l7bmcQ4uXh2SPRl9izL7wmrptc1BeuO2YfeEn3hc2JbQn3RZ+I0MVesg8jPIQD6NUsU7XsM6msY4p/T4C7TzV0yjPLt1p9cuJp2eIxzx7+5J5J05srCNInFvsiInhmXtlOFVE0zdEY563fdFMk+Qyz5lqgsfKZ9q9cpoZGJrZ1HzG7OF/p4wmvoNKSjaF8rZhm6/Oaqro5tDQzcZmNYZvvi/fpGo1hnLuneB0uhUvSzcM5Wx6hmMejnrYTKew4W7o56sznkr+MV9r2PyUxxDQg6c+z5iDkDSNCH34KKlQt1NBReYbDv8XKooeYs4zEZGGq1iUMmFfjAP7DGkqOkceL2WdMpaxDiqU/RWKr1Jk6GpJV8NTK14KSVrcoqFQzdD3La4eLOfIU77MDXfdP4+qJK+2Ia+NIq+3M/lneHo+J3Ho3J/BvoUODYulWez8n5MqJmOr5i/gseV3/BhyGeIq1kG7EY0EfDxBU7jyzLamgey3B3PfHYyUCTSVwSWk6y/DAviYi5QHp0J7HL3Xk48gjnw0Vg9AlQS3QDMNX0yeWYyXn1hJpKVxO8E6QNNJlw9HSLPRsYwnKw6olJxErwikwy0l1Z8E0WRbFn8SYA8ppgTpxtX3FZca8/yQvlSsD/NkWq2yacVOXTalEtFyPnq8rVHlO2Fw94mOpLOrdfeRkO6+Z8Wjd7PzTRwqbQunTGTfoFliEJ1vKx0H6gMmi8ijcOrtDOAyfWUEhN7uN5PtZMnEcRvIDPtMidb/98UQxI1xRJ0sv/UiqWqYQgCE0TtZrttrd2Gj1R2NXQT7o3HbcTputzE4PGzANjoEW4v/AF5e++EHVAAA controller-manager.json.gz: - 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 k8s-resources-cluster.json.gz: - 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 k8s-resources-namespace.json.gz: - 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 k8s-resources-node.json.gz: - H4sIAAAAAAAC/+0ba08jN/A7v2LrchVIAZIQIBcJVYUrrdQ7So+7+9JDkbPrBBfvemt7gVy0/e0dex/ZhxOCeB/hA9rMzI5nxuN5OZmsOA4iHlV4wAjqOUPMJGloIKPBhQTI3/DBcSbmP4CxfCd46PGrAHBKRIbYYGjgssgjX7CQVdQFIeEn6pMqXOHRdImEMhoQERBFJEqBZwVqMSLqgOHgoihpgqPKyI/+mDKYIsehwXlYng84Fl7KPF5J2aMQB4RZtPWwwpJHwjXvnwjuE3VOogLvISXMO+TBkI6AZDLVxCNDHDElS1CAu5FU3K9ADSPG/gyxS9UYkK1mo4yW5/zqhNPAMEQBuSQCVUlAi+OIsar5M7TC7gUNRrWlAedzz2gYcOFjhkroeMX2HE+5Iw7CCOqR8l46VQ19rNxzENuyPvX06oPxMQYnaVSxPFSUB0ZxH187Lk7NVBazom4IbkqEojWp6pIVRHA546ImAaAvMYuIRfR0764JOIF+FXgI4lk4FKxsyFGNIq5A4sbCUhuf2sx3+LbyT7c/IA8g1zn4xhGcnVvLxciIBF71sJdIFOdM0dDq8tkS9FvG4v51gzBJTtWYkVsrp6ORxTWTv+r5n8It4LOG3SkZy6LeApta+nxmPfMZNDcSGsGxP+HlGIe0VruF8HAFn9udAuAaAAX9kA54zRpvY+ZWIb0oIsCgWqXW1JUKwaEgQu44pdCL5ac0zVV9BbmYufVAgRiW6pgrHVWLJiwZHHlUhgyPP6SHKEmlJQpAu8QngTLhgY7OVRmvg/v7TGQtmzXMTl29pFV2eCWcfFY4vnHNoiGLRjT4QoQEi+lXLlutzdZmE1VSbNkQpcVuTIiGilyHJhLKyF/TGb0fgIx9CE8qkv0sfE+gXJCwp/tf0Wr6+BU1nH/4ACD6rQ39AtmAFQR1pcZpNvv/Ab1+0ABBEmHgDTeMvqJ4vSxI4gdHOqup2emjYOQ7Kmv0DCCJQS52ST/kXt/lgcIQJEQvf+qDrP1I4hHYhADUk33FFWY9YNGnApSeYZuK/vG6Mxg7a7DKDWpPJkATx3XfOKsXUIcnn53PWrZ6/aSghJNE0Kw4S+12H9XS/ZUQH0H363BuEbH1ZushaocooGpeFkDA04UgYOgWD7+Nh62oTrj3EMZI2oc51rDlvYk15019852AnObo5sNR3AGflsieJlEkTKLY8rZ2d7ot0tklHbLj7g1wp4mbe7ud3e23O2S4N2hvb1105UYWR+QGMP15dTL15N6/ERHjEAvsxz9dYrGRnczsXBpgfuT3V/NHgwB2+6uTfl8z3DTeLzfB4jGyiB3XYGfPLEnv2pN0+2kzzDMJusM83FoqABpAMjP5f1Z6v6MRUoF7uR16xg5h1MOuopekZ/JwyTb9zOvhAbxcKvmiLfBkbuBsOcsduLMFGPXp0gOfzgOfzv7za9G/IjBOIX8IHMhkmbSCmZFHkjLkH06Dg/GRTrxlYWxto0EMUmpdr/HqICdvtngElkE3TcYsAnExwgH9RhaUhlyboepBUsdZ6jzLWLWEc1pzse252O252M5c7E51n221pSDaV2dr90UXi86Pv9gbkyrZQUb2MY2mMykPq5TOm5m07zLa9+aEzKT7tUxn46gdylpy2x2pfjCyRswcrvvuwb7PiXXpnJnWy/RFhRuG5TB7OcxeDrOXw+z765NbbXujvL2cZi+n2QtNs33iczF+MQPtRNz+FRc6ZENfo/omxS7WTjScnNMPQPlAg+0PRsakhHTWrrY4GA5S+Pqjzrln1ViPWpgsR+TLEflyRP5Aqb9rT/2dFzEjv2McXzSMP8cxZaL6clr+SA4xd2T5yvbirkZ4PaPz5+6Or24nhPy+csPttDcNxCvWX17h8Dmof2PTt7xEetmXSHbs7lzs3lxs976vp4rjhfk3VCnlYpdUFeKb7qlS8kWuqkqkc/ge1YcnH09P12fS/1anPywPWqpv/F5/4xQiy/rjXKDlPwIRZAiJXHd9aLuZGA9JENzH02Zt+60Bl364UvnRSsJMET9kEF4Kt1fQ8EtViDWFVtONhEgGqqXTLgkjriKebcaryLUJk+lEqRwK8nlKhrVOlPRVRqWFZXhAzFjgHaQOJ80dBXyQnIRiZilgzSDABD1bqgEDj4jumVEROP1xTs6x2kEX52c3Z7RMrbZNrTRD2VSyoHJ9zPt9Y1W5FoWT2WPduOGkjNbLqme+VRRLcqGKX3IvmCNZ+n4sYd1gnZeLtD64Ca05Wm6dKrndNNPxOA2G3FoaxEltsIB17KZYySY4cXLOaCE0o6EwF9Ug7dVG6zxdAimewlDptW/6ghAQnz8dohSYfe+E+yHkZoi66cwL2oNjENpZg8gjE9FRlOTidrOJ3e7QGwwHg73OYPstHg673VarSzpey227aCX+H/rSFT9lNwAA + H4sIAAAAAAAC/+0ba1PjNvA7v8JVuQ7MBEhCgFxmmE7hSjvTO0qPu/vSYzyKrQQV23IlGchl3N/elfyIH0oIw/vwfbgxu+vV7mq1LyvTFctCxKUSDz2CBtYIe4K0FNCjwYUAyN/wh2VN9f8AxuIdZ6HLrgLASR5pYo2hgeNFLvmCuaiiLggJP1GfVOESj2dLJJTRkPCASCJQCjwrUPMxkQceDi6KkiY4KrX86I8ZgxlyEmqci8X5kGHupszjlZQ9CnFAPIO2LpZYsIg7+v0Tznwiz0lU4D2ixHMPWTCiYyCZzjRxyQhHnhQlKMCdSEjmV6Cakef9GWKHygkgO+1WGS3O2dUJo4FmiAJySTiqkoAWx5HnVc2foSV2Lmgwri0NOJ+5WsOAcR97qISOV0zP8Yw7YiAMpy4p76VV1dDH0jkHsQ3rU1etPpwcY3CSVhXLQklZoBX38bXl4NRMZTEr6obgpoRLWpOqLllBBId5jNckAPQl9iJiED3du2sCTqBeBR6cuAYOBStrclSjiCuQuLW01NqnNvMdvq38s+0PyAPIdQ6+cQRn59ZyeWRMArd62EskkjFP0tDo8tkS9FvG4v51gzBJTuXEI7dWTkUjg2sm/6rnfwY3gM9aZqf0vCzqLbGppb/PjGc+g+ZGQmM49iesHOOQ0mq3EB6u4O9urwC4BkBBP6QCXrvGW5u5U0gvknAwqFKpM3OlQnAoiJA7Tin0YvEpTXNVX0EO9px6oEAeFvKYSRVViyYsGRy5VIQennxID1GSSksUgHaITwKpwwMdn8syXgX395nISjZjmJ25ekmr7PAKOPle4fjGNYuGXjSmwRfCBVhMvXLZ6Wz2NtuokmLLhigtdmNC1FTkOtSRUET+msrodgAy2hCeZCTsLHxPoVwQsKf7X9Fq+vgVtax/2BAg6q0N9QLZgBU4dYTCKTb7/wG9elAAThJh4A0njL6ieL0sSOIHRyqryfnpo2DkOyqr9QwgiUEudogdMtd2WCAxBAk+yJ9skNWOBB6DTQhAXWFLJrE3ABY25aD0HNtU9I/XreHEWoNVblB7OgWaOK77xlm9gDo8+Wx9VrLV6ycJJZwgnGbFWWq3+6iW7q+E+Ai6X4cLi4itN1sPUTtEAZWLsgACng4EAU23fPhtPWxFdcLchzBG0j4ssIYp702NOW/mm+845DRLNR+WZBb4tEDmNIkirhPFlru1u9PvkN4u6ZEdZ2+Ie23c3tvt7W6/3SGjvWF3e+uiLzayOCI2gOnPq9OZJw/+jQifhJhjP/7pEvON7GRm51ID8yO/v5o/agSw21+d2rZiuKm9X2yCxWNkEDuuwc6eWZLeNSfp7tNmmGcSdEd5uDVUADSAZKbz/7z0fkcjpAIPcjsMtB3CaIAdSS/JQOfhkm3szOvhAbxcSPGiLfBkbmBtWc0O3NkCHvVp44FP54FPZ//FtehfERinkD84DkSyTFrBzMkjSRnyD6PBweRIJd6yMKa2USOGKbWq11h1kJM3WywCy6CbJmMGgRgf44B+I0tKQ671UPUgqeMMdZ5hrFrCWZ2F2O5C7PZCbG8hdqe6z6bakhPlq/O1+6KKRevHX8yNSZXsICP7mEbTuZSHVUrrzVzadxnte31C5tL9WqYzcVQOZSy5zY5UPxhZI6YP1333YN/nxLp0znTrpfuiwheGZpjdDLObYXYzzL6/PrnTNTfK2800u5lmLzXN9onP+OTFDLQTce0rxlXIhr5G2jrFLtdOtKyc0w9A+UCD7Q9axqSEtNauthwMCXz9UafcTYXVVFhNhdVUWE2FdecKq2+usHpNhdVUWN9xhcXFs66pmPWMqqpHLUWaawfNtYPm2sHDJPtuz5zsd17EvYM79sbLhvHn+Ok3Ub25gfBIDrHwM/Ar24u7GuH1XEd47u746nZi+Rr/ZeSG22mvG4hXrL+4wuFzUP/Gpq+5mPOyL+aYsbsLsXsLsf37vvJTHC8svvWTUi538adCfNPdn5R8mes/JdIFfI/qw5OPp6frc+l/q9Mflgct1Td+r79xCpFl/XEuJeU/rOVkBIlcdX1ou50YDwkQ3MezZm37rQaXfgxc+SFwwkwSP/QgvBS+V0HDL2Qh1hRaTSfiPBmhlk67IB5xJHFNU11JrnWYTCdK5VCQz1MyrHGipD5eVFpYDw+JHgu8g9RhpbmjgA+Sk1DMLAWsHgTooGdKNWDgMVE9MyoCZz94zjlWO+ji/OzmjJap1TWplWYok0oGVK6Pft/WVhVrUTidP8iNW1bKaL2seuZbRbEE47L4w8GCOZKl78cSxg1WeblI64Ob0Jqj5dapkptNMxuI02DEjKVBnNQGS1jHbIqVbIITJ+eMFkIzGnH9aRqkvdronKdLIMlSGCq99k19EgTE50+HKAVmd3mZH0JuhqibzrygPTgGoa01iDwiER1FSS7uttvY6Y/c4Wg43OsNt9/i0ajf73T6pOd2nK6DVuL/AaM9xHe5QAAA k8s-resources-pod.json.gz: - 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 k8s-resources-workload.json.gz: - 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 k8s-resources-workloads-namespace.json.gz: - H4sIAAAAAAAC/+1dW1PjOBZ+51d4vT1bsMvNuQChamqrgemqrZ1hWZbueWgol2IriQfH8koyl2G8v32P5Lsjm0DTSQA9TE+io+u5fDo6OgoPa4ZhYtfjaOhj89AYIZ/hTVHoe8E1g5Kv8MUwHuS/UIzYCSWhS24DoHEaycqS4gWOH7n4C6KsTrrGOLzwprheztG4GCKpGQ0xDTDHzEwLr0q16RjzIx8F1+WZJjSPy/mb/yw6KIj3oaS5iE2GBFE37TxeS7s3QxRgX7FaF3HESEQd2f6MkinmExyV+h552HePSTDyxlDloViJi0co8jmrlEK5EzFOprVS2ZHv/ytEjsfvgWjtblbJbEJuz4gXyA7NAN9gatarwCpOI9/P2F+ixvnnuGhkEuiEei6uysCoz2yKuDOB4epTFjJ3xWyG958omuJzPPrHSW1SYpSQeySQ0z4yK8S4toAQNAtT7s1MaHZSpdEThm6DvuL/8HvQgs3ZmjfIj7BiATnnM/UwZyrEtZJ48xkT+9Vz+aRtYp3nj0J8Qp+x5jsMaiuaQh8Uu4oehOiJKzVfVp+DN5XvV2sN6/lu+nWs9Wsl9YtQFIzx91axtXppvkhzDDB3RqpYbE7g634JDm8Fn3qlgjsoKOGwKYB5d6ZvySartA1yTIE3Yk3WtNgoCjUtTcHHYxy49S0CsYt0Oy7vlsnugXxnVntNHzF+SrhA/zILryptXY+FPrr/JWV4suVXagDZwVMccAkK3njCq3SxCf2cTbmyxZS3FU6Iz72wvqpM0MwLxjDwWl1uBUdDPxp7wRdMGXBMNLmxrG1re9esuQJVRlQGe3TjlrXwXSj1k0XT9cvAMAKYoh0A1MBW6mA7JK7tkIAjsDB6mH+ynTCyI4bG2GYYSl1mc8KRfwjd2B5FHD+AJ8RADX68ND+kHy/NTSPvWZTnXy7N+DL4q0GC9bxoE0beEBMaUxKFto9HfP2W0GufIHfTyD7Zwq/ZKHq1cwI0PxSelFwBuGowe4p9NMT+E2dWG+zH/wFZfJBz3jCG90bjvC6DKq8TVf9EKMC94PnDQ1Y/jo0to/gqm8exqdKtb5ExmA6i61N0ty5ZQ3HS9r8RyO7JbJHcuDQn4EzC16wvwR8KPWLG2TZoyR/wH7BqY6OdFXIKwIOs6Wtduu9NvWThT1h00mgWDq5mffvjs8/GZ2F3s649h9MFw9TLzg0p417CkX85L/kcWHAXtnowOz/sfA8fJgo83raHm9CnA7gv6y3KqTsFrWplxq8pInwPjiTH2xaWfFU4KypXp6ygJxRcPUMcjg1OcjxkSscH2kVUegk77g6y9npof7Tb7Q5GgwE+GDgY9Z1hbx8PhnjP2t+5PmBbmamxraznv394KBT7EMCD3ocIXOX4LzeIbmWGnZm1LCzsurBqSZBm/eHBtkWP29Ia2PaFgGJJzoacqZIJKTYVi4xnyq5WRrvOoyAAV8Q4Iy5bis0FJMDmirm3+2r3trM838whUcDXl+TktLs41QmP8q1N4Vl7AeNI+tVNbrN2X1fafV2+dHOOFJLMdgQ78xwffiND4IGougVT4ngLuqaewwQvnsq73LW7NBOXTstZW/Frk+6ONh8Nk5mck7OmlrIGSQ2STwZJbTxLNJ72oNi/RSytdAKjKGDJMOlht+EklhxUfyNecHT/SRznq5NRXVlIwjCtDY2ztdYvo7NoP4mAs+ZjV9GKWRE6RoH3O55zSvhOZh8cJed+RVxAkX9QoRlWK7XTSu22Unut1H4rda+JWlGy5ulVq3Xnq9abr1p/vmp7s/kIszEWL3DxXbv0pIR2m8VjNcum0yyYbrNUes0i6c+QvoiwjvHnj0A8aCIeAXHQRDxWpH0U1BNBtZqoPwlqp4n6SVC7jVIC6t4jIrSqsaRGFbR6cyig1Z9D/ay9OZTP2p9D9ayDVsWjWMB8s+aV5FoNGbYJWXFVoRK3rHae3fq0ib5S0/jBbFMEWffn5FqlTSVK9VQ9ltSjiMTPoSemCBrXAqpq/J/d1LLbHLkxvvRFzmplZFW2NRkrlmHrUuabTtbSyTQ6WUvrl07Weu5tltVTX2d1dbbWG8jWMowiSjHFU0Lv5cEfJmwzzG25l5bCFT7mz4lR5GP8CUiiwJuCW5d8icU0GiIWOnnrNSdvJfr0R/K/95fC9eR1PyGL6xfZ9xISuZr8/4U63zoHTOeA6RwwnQO2wjlgHUvtNfd0EtgrSALTXrFOdlhIUkvuI+pLW23XOktMG5ROFNOC1sipkVOb0+vJHkuDcTqBTCeQ6QQynUCmE8hWJYFMeUuizCFLa86XRlar/FgmWVp9nmSyStV3kU+22EuhIxS4tyJzZDmXQ0chW9il0DzsOEPONeZsSTdlC2SGviHTN2TLvxI6UF8J9Zd3JbQuDp7iCdd6ceAMMBcSgIOng70bnBztkydf33rAj79+sG0xnJ2ljF1tJOdNY+bAqTpursZps3rW3FihYE2bOOVxFNwKLc+3Ic/MPMNkD9cCfTMGqiX6Rk3UBfcxxK4W7JszVS3ZxUi25QV3RCkOuHGaiGgmM1YH499cMP7dRLL324KcB21xzUFrIHu3NZBttQayO62B7BeL9WZmfZ5spUYewHvk5XDa7CIF6jnayTDwOaCuQUbZcK6RRsja48FZq2w0PkfDn9qGM06S/aQ9WNwybHMHygCyfmf8nHfGlWhu/PzAUdmWlIGjbl8dONrTL/Be8Qs8HXt73KsUDuX2377Jz6w/trJtFHEy1yOr5k1nmS+t3gMCVgraIHBfQ+AbhUAdr14JDGzxoDUILtYN7HXUGHigMfA1YyC6GWs3cJUh8COgBBpj4ziTT4GFYtDsFH2YH+M1Qi7LTWyCyIGGyDcKkdpNfF0YWQpWapiswmS4MEdy0PD3F3c1TL7xgKLOLVlySPGxCyaNhd8XC2ddxiYw1H+N9s2HFjUargYatl2ca0BcrHPY32vAw47Gw3fiHOpsxtV0EmeyejQ2LthZbARH/WPY78ZZ1Oi4sk7jEwByLe3bpHhEMRNwYHZ3E/0wmTPBU1QoYFfeH4DWjQuVkzKnoCVJl0lnHE/BhjhoeK79pu8xXlLUkvU7SZZq3VAYqJIj4qMK++f4TvIrReUqU/On1RlVaZ4TT9ph2e+T6iBfFYPZGKndlOhBkqlbtqoSVT4GljisMjNg8BgLMDXLhZlcSj3WYaC8Bz1uzdmyOqplpdqtWpKClK9HtrclV9l6FLb89FKc2/1GdemZbpWnxQjl1fTynB3J0C/DCaWAc3tW8UJJVHNDIkqBNoIdEbPDCWL4yb9QFZcwZzXZ5wXyJcVH+VdNqjZZsLaChSr21svVnF0shMctv8T7rfxfyx7Uxwk2eqV0f3NEpfNoBuR2y8pyisB1SMvMSrPfxQ88A+HzxbGZFmbPfsg0jGA/OM9+sMDYMU6zBRvr2b0TS9ZlRslDGnSwPxruugNrgJ1djPqjvX6va3V62Npzeh3UN9fi/wOmipJU1JEAAA== + H4sIAAAAAAAC/+1dW1PjOBZ+51d4vT1bsMvNuQChamqrgemqrZ1hWZbueWgol2IriQfH8koyl2G8v32P5Lsjm0DTSQA9TE+io+u5fDo6OgoPa4ZhYtfjaOhj89AYIZ/hTVHoe8E1g5Kv8MUwHuS/UIzYCSWhS24DoHEaycqS4gWOH7n4C6KsTrrGOLzwprheztG4GCKpGQ0xDTDHzEwLr0q16RjzIx8F1+WZJjSPy/mb/yw6KIj3oaS5iE2GBFE37TxeS7s3QxRgX7FaF3HESEQd2f6MkinmExyV+h552HePSTDyxlDloViJi0co8jmrlEK5EzFOprVS2ZHv/ytEjsfvgWjtblbJbEJuz4gXyA7NAN9gatarwCpOI9/P2F+ixvnnuGhkEuiEei6uysCoz2yKuDOB4epTFjJ3xWyG958omuJzPPrHSW1SYpSQeySQ0z4yK8S4toAQNAtT7s1MaHZSpdEThm6DvuL/8HvQgs3ZmjfIj7BiATnnM/UwZyrEtZJ48xkT+9Vz+aRtYp3nj0J8Qp+x5jsMaiuaQh8Uu4oehOiJKzVfVp+DN5XvV2sN6/lu+nWs9Wsl9YtQFIzx91axtXppvkhzDDB3RqpYbE7g634JDm8Fn3qlgjsoKOGwKYB5d6ZvySartA1yTIE3Yk3WtNgoCjUtTcHHYxy49S0CsYt0Oy7vlsnugXxnVntNHzF+SrhA/zILryptXY+FPrr/JWV4suVXagDZwVMccAkK3njCq3SxCf2cTbmyxZS3FU6Iz72wvqpM0MwLxjDwWl1uBUdDPxp7wRdMGXBMNLmxrO3e9q5ZcwWqjKgM9ujGLWvhu1DqJ4um65eBYQQwRTsAqIGt1MF2SFzbIQFHYGH0MP9kO2FkRwyNsc0wlLrM5oQj/xC6sT2KOH4AT4iBGvx4aX5IP16am0besyjPv1ya8WXwV4ME63nRJoy8ISY0piQKbR+P+Potodc+Qe6mkX2yhV+zUfRq5wRofig8KbkCcNVg9hT7aIj9J86sNtiP/wOy+CDnvGEM743GeV0GVV4nqv6JUIB7wfOHh6x+HBtbRvFVNo9jU6Vb3yJjMB1E16fobl2yhuKk7X8jkN2T2SK5cWlOwJmEr1lfgj8UesSMs23Qkj/gP2DVxkY7K+QUgAdZ09e6dN+besnCn7DopNEsHFzN+vbHZ5+Nz8LuZl17DqcLhqmXnRtSxr2EI/9yXvI5sOAubPVgdn7Y+R4+TBR4vG0PN6FPB3Bf1luUU3cKWtXKjF9TRPgeHEmOty0s+apwVlSuTllBTyi4eoY4HBuc5HjIlI4PtIuo9BJ23B1k7fXQ/mi32x2MBgN8MHAw6jvD3j4eDPGetb9zfcC2MlNjW1nPf//wUCj2IYAHvQ8RuMrxX24Q3coMOzNrWVjYdWHVkiDN+sODbYset6U1sO0LAcWSnA05UyUTUmwqFhnPlF2tjHadR0EArohxRly2FJsLSIDNFXNv99XubWd5vplDooCvL8nJaXdxqhMe5VubwrP2AsaR9Kub3Gbtvq60+7p86eYcKSSZ7Qh25jk+/EaGwANRdQumxPEWdE09hwlePJV3uWt3aSYunZaztuLXJt0dbT4aJjM5J2dNLWUNkhoknwyS2niWaDztQbF/i1ha6QRGUcCSYdLDbsNJLDmo/ka84Oj+kzjOVyejurKQhGFaGxpna61fRmfRfhIBZ83HrqIVsyJ0jALvdzznlPCdzD44Ss79iriAIv+gQjOsVmqnldptpfZaqf1W6l4TtaJkzdOrVuvOV603X7X+fNX2ZvMRZmMsXuDiu3bpSQntNovHapZNp1kw3Wap9JpF0p8hfRFhHePPH4F40EQ8AuKgiXisSPsoqCeCajVRfxLUThP1k6B2G6UE1L1HRGhVY0mNKmj15lBAqz+H+ll7cyiftT+H6lkHrYpHsYD5Zs0rybUaMmwTsuKqQiVuWe08u/VpE32lpvGD2aYIsu7PybVKm0qU6ql6LKlHEYmfQ09METSuBVTV+D+7qWW3OXJjfOmLnNXKyKpsazJWLMPWpcw3naylk2l0spbWL52s9dzbLKunvs7q6mytN5CtZRhFlGKKp4Tey4M/TNhmmNtyLy2FK3zMnxOjyMf4E5BEgTcFty75EotpNEQsdPLWa07eSvTpj+R/7y+F68nrfkIW1y+y7yUkcjX5/wt1vnUOmM4B0zlgOgdshXPAOpbaa+7pJLBXkASmvWKd7LCQpJbcR9SXttqudZaYNiidKKYFrZFTI6c2p9eTPZYG43QCmU4g0wlkOoFMJ5CtSgKZ8pZEmUOW1pwvjaxW+bFMsrT6PMlklarvIp9ssZdCRyhwb0XmyHIuh45CtrBLoXnYcYaca8zZkm7KFsgMfUOmb8iWfyV0oL4S6i/vSmhdHDzFE6714sAZYC4kAAdPB3s3ODnaJ0++vvWAH3/9YNtiODtLGbvaSM6bxsyBU3XcXI3TZvWsubFCwZo2ccrjKLgVWp5vQ56ZeYbJHq4F+mYMVEv0jZqoC+5jiF0t2Ddnqlqyi5FsywvuiFIccOM0EdFMZqwOxr+5YPy7iWTvtwU5D9rimoPWQPZuayDbag1kd1oD2S8W683M+jzZSo08gPfIy+G02UUK1HO0k2Hgc0Bdg4yy4VwjjZC1x4OzVtlofI6GP7UNZ5wk+0l7sLhl2OYOlAFk/c74Oe+MK9Hc+PmBo7ItKQNH3b46cLSnX+C94hd4Ovb2uFcpHMrtv32Tn1l/bGXbKOJkrkdWzZvOMl9avQcErBS0QeC+hsA3CoE6Xr0SGNjiQWsQXKwb2OuoMfBAY+BrxkB0M9Zu4CpD4EdACTTGxnEmnwILxaDZKfowP8ZrhFyWm9gEkQMNkW8UIrWb+LowshSs1DBZhclwYY7koOHvL+5qmHzjAUWdW7LkkOJjF0waC78vFs66jE1gqP8a7ZsPLWo0XA00bLs414C4WOewv9eAhx2Nh+/EOdTZjKvpJM5k9WhsXLCz2AiO+sew342zqNFxZZ3GJwDkWtq3SfGIYibgwOzuJvphMmeCp6hQwK68PwCtGxcqJ2VOQUuSLpPOOJ6CDXHQ8Fz7Td9jvKSoJet3kizVuqEwUCVHxEcV9s/xneRXispVpuZPqzOq0jwnnrTDst8n1UG+KgazMVK7KdGDJFO3bFUlqnwMLHFYZWbA4DEWYGqWCzO5lHqsw0B5D3rcmrNldVTLSrVbtSQFKV+PbG9LrrL1KGz56aU4t/uN6tIz3SpPixHKq+nlOTuSoV+GE0oB5/as4oWSqOaGRJQCbQQ7ImaHE8Twk3+hKi5hzmqyzwvkS4qP8q+aVG2yYG0FC1XsrZerObtYCI9bfon3W/m/lj2ojxNs9Erp/uaISufRDMjtlpXlFIHrkJaZlWa/ix94BsLni2MzLcye/ZBpGMF+cJ79YIGxY5xmCzbWs3snlqzLjJKHNOhgfzTcdQfWADu7GPVHe/1e1+r0sLXn9Dqob67F/wfzQ6bZ1JEAAA== kubelet.json.gz: - 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 namespace-by-pod.json.gz: - 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 namespace-by-workload.json.gz: - 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 persistentvolumesusage.json.gz: - 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 pod-total.json.gz: - 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 proxy.json.gz: - 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 scheduler.json.gz: - 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 workload-total.json.gz: - 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 diff --git a/charts/kubezero-metrics/templates/grafana-dashboards-metrics.yaml b/charts/kubezero-metrics/templates/grafana-dashboards-metrics.yaml index b83cf5a0..9145935d 100644 --- a/charts/kubezero-metrics/templates/grafana-dashboards-metrics.yaml +++ b/charts/kubezero-metrics/templates/grafana-dashboards-metrics.yaml @@ -12,4 +12,4 @@ binaryData: AlertManager.json.gz: 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 Prometheus.json.gz: - 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 diff --git a/charts/kubezero-metrics/templates/rules/etcd-mixin.yaml b/charts/kubezero-metrics/templates/rules/etcd-mixin.yaml index fbe2ece6..fa1a923e 100644 --- a/charts/kubezero-metrics/templates/rules/etcd-mixin.yaml +++ b/charts/kubezero-metrics/templates/rules/etcd-mixin.yaml @@ -14,9 +14,9 @@ spec: description: 'etcd cluster "{{`{{`}} $labels.job {{`}}`}}": members are down ({{`{{`}} $value {{`}}`}}).' summary: etcd cluster members are down. expr: "max without (endpoint) (\n sum without (instance, pod) (up{job=~\".*etcd.*\"} == bool 0)\nor\n count without (To) (\n sum without (instance, pod) (rate(etcd_network_peer_sent_failures_total{job=~\".*etcd.*\"}[120s])) > 0.01\n )\n)\n> 0\n" - for: 10m + for: 20m labels: - severity: critical + severity: warning - alert: etcdInsufficientMembers annotations: description: 'etcd cluster "{{`{{`}} $labels.job {{`}}`}}": insufficient members ({{`{{`}} $value {{`}}`}}).' diff --git a/charts/kubezero-metrics/templates/rules/kubernetes.yaml b/charts/kubezero-metrics/templates/rules/kubernetes.yaml index 79d0ffdf..4f54335c 100644 --- a/charts/kubezero-metrics/templates/rules/kubernetes.yaml +++ b/charts/kubezero-metrics/templates/rules/kubernetes.yaml @@ -11,7 +11,7 @@ spec: rules: - alert: KubePodCrashLooping annotations: - description: 'Pod {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.pod {{`}}`}} ({{`{{`}} $labels.container {{`}}`}}) is in waiting state (reason: "CrashLoopBackOff").' + description: 'Pod {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.pod {{`}}`}} ({{`{{`}} $labels.container {{`}}`}}) is in waiting state (reason: "CrashLoopBackOff") on cluster {{`{{`}} $labels.cluster {{`}}`}}.' runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubepodcrashlooping summary: Pod is crash looping. expr: 'max_over_time(kube_pod_container_status_waiting_reason{reason="CrashLoopBackOff", job="kube-state-metrics"}[5m]) >= 1 @@ -22,7 +22,7 @@ spec: severity: warning - alert: KubePodNotReady annotations: - description: Pod {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.pod {{`}}`}} has been in a non-ready state for longer than 15 minutes. + description: Pod {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.pod {{`}}`}} has been in a non-ready state for longer than 15 minutes on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubepodnotready summary: Pod has been in a non-ready state for more than 15 minutes. expr: "sum by (namespace, pod, cluster) (\n max by(namespace, pod, cluster) (\n kube_pod_status_phase{job=\"kube-state-metrics\", phase=~\"Pending|Unknown|Failed\"}\n ) * on(namespace, pod, cluster) group_left(owner_kind) topk by(namespace, pod, cluster) (\n 1, max by(namespace, pod, owner_kind, cluster) (kube_pod_owner{owner_kind!=\"Job\"})\n )\n) > 0\n" @@ -31,7 +31,7 @@ spec: severity: warning - alert: KubeDeploymentGenerationMismatch annotations: - description: Deployment generation for {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.deployment {{`}}`}} does not match, this indicates that the Deployment has failed but has not been rolled back. + description: Deployment generation for {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.deployment {{`}}`}} does not match, this indicates that the Deployment has failed but has not been rolled back on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubedeploymentgenerationmismatch summary: Deployment generation mismatch due to possible roll-back expr: "kube_deployment_status_observed_generation{job=\"kube-state-metrics\"}\n !=\nkube_deployment_metadata_generation{job=\"kube-state-metrics\"}\n" @@ -40,7 +40,7 @@ spec: severity: warning - alert: KubeDeploymentReplicasMismatch annotations: - description: Deployment {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.deployment {{`}}`}} has not matched the expected number of replicas for longer than 15 minutes. + description: Deployment {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.deployment {{`}}`}} has not matched the expected number of replicas for longer than 15 minutes on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubedeploymentreplicasmismatch summary: Deployment has not matched the expected number of replicas. expr: "(\n kube_deployment_spec_replicas{job=\"kube-state-metrics\"}\n >\n kube_deployment_status_replicas_available{job=\"kube-state-metrics\"}\n) and (\n changes(kube_deployment_status_replicas_updated{job=\"kube-state-metrics\"}[10m])\n ==\n 0\n)\n" @@ -49,7 +49,7 @@ spec: severity: warning - alert: KubeDeploymentRolloutStuck annotations: - description: Rollout of deployment {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.deployment {{`}}`}} is not progressing for longer than 15 minutes. + description: Rollout of deployment {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.deployment {{`}}`}} is not progressing for longer than 15 minutes on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubedeploymentrolloutstuck summary: Deployment rollout is not progressing. expr: 'kube_deployment_status_condition{condition="Progressing", status="false",job="kube-state-metrics"} @@ -62,7 +62,7 @@ spec: severity: warning - alert: KubeStatefulSetReplicasMismatch annotations: - description: StatefulSet {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.statefulset {{`}}`}} has not matched the expected number of replicas for longer than 15 minutes. + description: StatefulSet {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.statefulset {{`}}`}} has not matched the expected number of replicas for longer than 15 minutes on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetreplicasmismatch summary: StatefulSet has not matched the expected number of replicas. expr: "(\n kube_statefulset_status_replicas_ready{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_status_replicas{job=\"kube-state-metrics\"}\n) and (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[10m])\n ==\n 0\n)\n" @@ -71,7 +71,7 @@ spec: severity: warning - alert: KubeStatefulSetGenerationMismatch annotations: - description: StatefulSet generation for {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.statefulset {{`}}`}} does not match, this indicates that the StatefulSet has failed but has not been rolled back. + description: StatefulSet generation for {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.statefulset {{`}}`}} does not match, this indicates that the StatefulSet has failed but has not been rolled back on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetgenerationmismatch summary: StatefulSet generation mismatch due to possible roll-back expr: "kube_statefulset_status_observed_generation{job=\"kube-state-metrics\"}\n !=\nkube_statefulset_metadata_generation{job=\"kube-state-metrics\"}\n" @@ -80,7 +80,7 @@ spec: severity: warning - alert: KubeStatefulSetUpdateNotRolledOut annotations: - description: StatefulSet {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.statefulset {{`}}`}} update has not been rolled out. + description: StatefulSet {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.statefulset {{`}}`}} update has not been rolled out on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetupdatenotrolledout summary: StatefulSet update has not been rolled out. expr: "(\n max by(namespace, statefulset, job, cluster) (\n kube_statefulset_status_current_revision{job=\"kube-state-metrics\"}\n unless\n kube_statefulset_status_update_revision{job=\"kube-state-metrics\"}\n )\n *\n (\n kube_statefulset_replicas{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}\n )\n) and (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[5m])\n ==\n 0\n)\n" @@ -89,7 +89,7 @@ spec: severity: warning - alert: KubeDaemonSetRolloutStuck annotations: - description: DaemonSet {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.daemonset {{`}}`}} has not finished or progressed for at least 15m. + description: DaemonSet {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.daemonset {{`}}`}} has not finished or progressed for at least 15m on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubedaemonsetrolloutstuck summary: DaemonSet rollout is stuck. expr: "(\n (\n kube_daemonset_status_current_number_scheduled{job=\"kube-state-metrics\"}\n !=\n kube_daemonset_status_desired_number_scheduled{job=\"kube-state-metrics\"}\n ) or (\n kube_daemonset_status_number_misscheduled{job=\"kube-state-metrics\"}\n !=\n 0\n ) or (\n kube_daemonset_status_updated_number_scheduled{job=\"kube-state-metrics\"}\n !=\n kube_daemonset_status_desired_number_scheduled{job=\"kube-state-metrics\"}\n ) or (\n kube_daemonset_status_number_available{job=\"kube-state-metrics\"}\n !=\n kube_daemonset_status_desired_number_scheduled{job=\"kube-state-metrics\"}\n )\n) and (\n changes(kube_daemonset_status_updated_number_scheduled{job=\"kube-state-metrics\"}[5m])\n ==\n 0\n)\n" @@ -98,7 +98,7 @@ spec: severity: warning - alert: KubeContainerWaiting annotations: - description: 'pod/{{`{{`}} $labels.pod {{`}}`}} in namespace {{`{{`}} $labels.namespace {{`}}`}} on container {{`{{`}} $labels.container{{`}}`}} has been in waiting state for longer than 1 hour. (reason: "{{`{{`}} $labels.reason {{`}}`}}").' + description: 'pod/{{`{{`}} $labels.pod {{`}}`}} in namespace {{`{{`}} $labels.namespace {{`}}`}} on container {{`{{`}} $labels.container{{`}}`}} has been in waiting state for longer than 1 hour. (reason: "{{`{{`}} $labels.reason {{`}}`}}") on cluster {{`{{`}} $labels.cluster {{`}}`}}.' runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubecontainerwaiting summary: Pod container waiting longer than 1 hour expr: 'kube_pod_container_status_waiting_reason{reason!="CrashLoopBackOff", job="kube-state-metrics"} > 0 @@ -109,7 +109,7 @@ spec: severity: warning - alert: KubeDaemonSetNotScheduled annotations: - description: '{{`{{`}} $value {{`}}`}} Pods of DaemonSet {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.daemonset {{`}}`}} are not scheduled.' + description: '{{`{{`}} $value {{`}}`}} Pods of DaemonSet {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.daemonset {{`}}`}} are not scheduled on cluster {{`{{`}} $labels.cluster {{`}}`}}.' runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubedaemonsetnotscheduled summary: DaemonSet pods are not scheduled. expr: "kube_daemonset_status_desired_number_scheduled{job=\"kube-state-metrics\"}\n -\nkube_daemonset_status_current_number_scheduled{job=\"kube-state-metrics\"} > 0\n" @@ -118,7 +118,7 @@ spec: severity: warning - alert: KubeDaemonSetMisScheduled annotations: - description: '{{`{{`}} $value {{`}}`}} Pods of DaemonSet {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.daemonset {{`}}`}} are running where they are not supposed to run.' + description: '{{`{{`}} $value {{`}}`}} Pods of DaemonSet {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.daemonset {{`}}`}} are running where they are not supposed to run on cluster {{`{{`}} $labels.cluster {{`}}`}}.' runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubedaemonsetmisscheduled summary: DaemonSet pods are misscheduled. expr: 'kube_daemonset_status_number_misscheduled{job="kube-state-metrics"} > 0 @@ -129,7 +129,7 @@ spec: severity: warning - alert: KubeJobNotCompleted annotations: - description: Job {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.job_name {{`}}`}} is taking more than {{`{{`}} "43200" | humanizeDuration {{`}}`}} to complete. + description: Job {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.job_name {{`}}`}} is taking more than {{`{{`}} "43200" | humanizeDuration {{`}}`}} to complete on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubejobnotcompleted summary: Job did not complete in time expr: "time() - max by(namespace, job_name, cluster) (kube_job_status_start_time{job=\"kube-state-metrics\"}\n and\nkube_job_status_active{job=\"kube-state-metrics\"} > 0) > 43200\n" @@ -137,7 +137,7 @@ spec: severity: warning - alert: KubeJobFailed annotations: - description: Job {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.job_name {{`}}`}} failed to complete. Removing failed job after investigation should clear this alert. + description: Job {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.job_name {{`}}`}} failed to complete. Removing failed job after investigation should clear this alert on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubejobfailed summary: Job failed to complete. expr: 'kube_job_failed{job="kube-state-metrics"} > 0 @@ -148,7 +148,7 @@ spec: severity: warning - alert: KubeHpaReplicasMismatch annotations: - description: HPA {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.horizontalpodautoscaler {{`}}`}} has not matched the desired number of replicas for longer than 15 minutes. + description: HPA {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.horizontalpodautoscaler {{`}}`}} has not matched the desired number of replicas for longer than 15 minutes on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubehpareplicasmismatch summary: HPA has not matched desired number of replicas. expr: "(kube_horizontalpodautoscaler_status_desired_replicas{job=\"kube-state-metrics\"}\n !=\nkube_horizontalpodautoscaler_status_current_replicas{job=\"kube-state-metrics\"})\n and\n(kube_horizontalpodautoscaler_status_current_replicas{job=\"kube-state-metrics\"}\n >\nkube_horizontalpodautoscaler_spec_min_replicas{job=\"kube-state-metrics\"})\n and\n(kube_horizontalpodautoscaler_status_current_replicas{job=\"kube-state-metrics\"}\n <\nkube_horizontalpodautoscaler_spec_max_replicas{job=\"kube-state-metrics\"})\n and\nchanges(kube_horizontalpodautoscaler_status_current_replicas{job=\"kube-state-metrics\"}[15m]) == 0\n" @@ -157,7 +157,7 @@ spec: severity: warning - alert: KubeHpaMaxedOut annotations: - description: HPA {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.horizontalpodautoscaler {{`}}`}} has been running at max replicas for longer than 15 minutes. + description: HPA {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.horizontalpodautoscaler {{`}}`}} has been running at max replicas for longer than 15 minutes on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubehpamaxedout summary: HPA is running at max replicas expr: "kube_horizontalpodautoscaler_status_current_replicas{job=\"kube-state-metrics\"}\n ==\nkube_horizontalpodautoscaler_spec_max_replicas{job=\"kube-state-metrics\"}\n" @@ -186,7 +186,7 @@ spec: severity: warning - alert: KubeQuotaAlmostFull annotations: - description: Namespace {{`{{`}} $labels.namespace {{`}}`}} is using {{`{{`}} $value | humanizePercentage {{`}}`}} of its {{`{{`}} $labels.resource {{`}}`}} quota. + description: Namespace {{`{{`}} $labels.namespace {{`}}`}} is using {{`{{`}} $value | humanizePercentage {{`}}`}} of its {{`{{`}} $labels.resource {{`}}`}} quota on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubequotaalmostfull summary: Namespace quota is going to be full. expr: "kube_resourcequota{job=\"kube-state-metrics\", type=\"used\"}\n / ignoring(instance, job, type)\n(kube_resourcequota{job=\"kube-state-metrics\", type=\"hard\"} > 0)\n > 0.9 < 1\n" @@ -195,7 +195,7 @@ spec: severity: info - alert: KubeQuotaFullyUsed annotations: - description: Namespace {{`{{`}} $labels.namespace {{`}}`}} is using {{`{{`}} $value | humanizePercentage {{`}}`}} of its {{`{{`}} $labels.resource {{`}}`}} quota. + description: Namespace {{`{{`}} $labels.namespace {{`}}`}} is using {{`{{`}} $value | humanizePercentage {{`}}`}} of its {{`{{`}} $labels.resource {{`}}`}} quota on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubequotafullyused summary: Namespace quota is fully used. expr: "kube_resourcequota{job=\"kube-state-metrics\", type=\"used\"}\n / ignoring(instance, job, type)\n(kube_resourcequota{job=\"kube-state-metrics\", type=\"hard\"} > 0)\n == 1\n" @@ -204,7 +204,7 @@ spec: severity: info - alert: KubeQuotaExceeded annotations: - description: Namespace {{`{{`}} $labels.namespace {{`}}`}} is using {{`{{`}} $value | humanizePercentage {{`}}`}} of its {{`{{`}} $labels.resource {{`}}`}} quota. + description: Namespace {{`{{`}} $labels.namespace {{`}}`}} is using {{`{{`}} $value | humanizePercentage {{`}}`}} of its {{`{{`}} $labels.resource {{`}}`}} quota on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubequotaexceeded summary: Namespace quota has exceeded the limits. expr: "kube_resourcequota{job=\"kube-state-metrics\", type=\"used\"}\n / ignoring(instance, job, type)\n(kube_resourcequota{job=\"kube-state-metrics\", type=\"hard\"} > 0)\n > 1\n" @@ -213,7 +213,7 @@ spec: severity: warning - alert: CPUThrottlingHigh annotations: - description: '{{`{{`}} $value | humanizePercentage {{`}}`}} throttling of CPU in namespace {{`{{`}} $labels.namespace {{`}}`}} for container {{`{{`}} $labels.container {{`}}`}} in pod {{`{{`}} $labels.pod {{`}}`}}.' + description: '{{`{{`}} $value | humanizePercentage {{`}}`}} throttling of CPU in namespace {{`{{`}} $labels.namespace {{`}}`}} for container {{`{{`}} $labels.container {{`}}`}} in pod {{`{{`}} $labels.pod {{`}}`}} on cluster {{`{{`}} $labels.cluster {{`}}`}}.' runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/cputhrottlinghigh summary: Processes experience elevated CPU throttling. expr: "sum(increase(container_cpu_cfs_throttled_periods_total{container!=\"\", job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", }[5m])) without (id, metrics_path, name, image, endpoint, job, node)\n /\nsum(increase(container_cpu_cfs_periods_total{job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", }[5m])) without (id, metrics_path, name, image, endpoint, job, node)\n > ( 25 / 100 )\n" @@ -281,7 +281,7 @@ spec: rules: - alert: KubeVersionMismatch annotations: - description: There are {{`{{`}} $value {{`}}`}} different semantic versions of Kubernetes components running. + description: There are {{`{{`}} $value {{`}}`}} different semantic versions of Kubernetes components running on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeversionmismatch summary: Different semantic versions of Kubernetes components running. expr: 'count by (cluster) (count by (git_version, cluster) (label_replace(kubernetes_build_info{job!~"kube-dns|coredns"},"git_version","$1","git_version","(v[0-9]*.[0-9]*).*"))) > 1 @@ -292,7 +292,7 @@ spec: severity: warning - alert: KubeClientErrors annotations: - description: Kubernetes API server client '{{`{{`}} $labels.job {{`}}`}}/{{`{{`}} $labels.instance {{`}}`}}' is experiencing {{`{{`}} $value | humanizePercentage {{`}}`}} errors.' + description: Kubernetes API server client '{{`{{`}} $labels.job {{`}}`}}/{{`{{`}} $labels.instance {{`}}`}}' is experiencing {{`{{`}} $value | humanizePercentage {{`}}`}} errors on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeclienterrors summary: Kubernetes API server client is experiencing errors. expr: "(sum(rate(rest_client_requests_total{job=\"apiserver\",code=~\"5..\"}[5m])) by (cluster, instance, job, namespace)\n /\nsum(rate(rest_client_requests_total{job=\"apiserver\"}[5m])) by (cluster, instance, job, namespace))\n> 0.01\n" @@ -303,7 +303,7 @@ spec: rules: - alert: KubeAPIErrorBudgetBurn annotations: - description: The API server is burning too much error budget. + description: The API server is burning too much error budget on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn summary: The API server is burning too much error budget. expr: 'sum by(cluster) (apiserver_request:burnrate1h) > (14.40 * 0.01000) @@ -320,7 +320,7 @@ spec: short: 5m - alert: KubeAPIErrorBudgetBurn annotations: - description: The API server is burning too much error budget. + description: The API server is burning too much error budget on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn summary: The API server is burning too much error budget. expr: 'sum by(cluster) (apiserver_request:burnrate6h) > (6.00 * 0.01000) @@ -337,7 +337,7 @@ spec: short: 30m - alert: KubeAPIErrorBudgetBurn annotations: - description: The API server is burning too much error budget. + description: The API server is burning too much error budget on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn summary: The API server is burning too much error budget. expr: 'sum by(cluster) (apiserver_request:burnrate1d) > (3.00 * 0.01000) @@ -354,7 +354,7 @@ spec: short: 2h - alert: KubeAPIErrorBudgetBurn annotations: - description: The API server is burning too much error budget. + description: The API server is burning too much error budget on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn summary: The API server is burning too much error budget. expr: 'sum by(cluster) (apiserver_request:burnrate3d) > (1.00 * 0.01000) @@ -403,17 +403,18 @@ spec: severity: critical - alert: KubeAggregatedAPIErrors annotations: - description: Kubernetes aggregated API {{`{{`}} $labels.name {{`}}`}}/{{`{{`}} $labels.namespace {{`}}`}} has reported errors. It has appeared unavailable {{`{{`}} $value | humanize {{`}}`}} times averaged over the past 10m. + description: Kubernetes aggregated API {{`{{`}} $labels.instance {{`}}`}}/{{`{{`}} $labels.name {{`}}`}} has reported {{`{{`}} $labels.reason {{`}}`}} errors on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeaggregatedapierrors summary: Kubernetes aggregated API has reported errors. - expr: 'sum by(name, namespace, cluster)(increase(aggregator_unavailable_apiservice_total{job="apiserver"}[10m])) > 4 + expr: 'sum by(cluster, instance, name, reason)(increase(aggregator_unavailable_apiservice_total{job="apiserver"}[1m])) > 0 ' + for: 10m labels: severity: warning - alert: KubeAggregatedAPIDown annotations: - description: Kubernetes aggregated API {{`{{`}} $labels.name {{`}}`}}/{{`{{`}} $labels.namespace {{`}}`}} has been only {{`{{`}} $value | humanize {{`}}`}}% available over the last 10m. + description: Kubernetes aggregated API {{`{{`}} $labels.name {{`}}`}}/{{`{{`}} $labels.namespace {{`}}`}} has been only {{`{{`}} $value | humanize {{`}}`}}% available over the last 10m on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeaggregatedapidown summary: Kubernetes aggregated API is down. expr: '(1 - max by(name, namespace, cluster)(avg_over_time(aggregator_unavailable_apiservice{job="apiserver"}[10m]))) * 100 < 85 @@ -435,7 +436,7 @@ spec: severity: critical - alert: KubeAPITerminatedRequests annotations: - description: The kubernetes apiserver has terminated {{`{{`}} $value | humanizePercentage {{`}}`}} of its incoming requests. + description: The kubernetes apiserver has terminated {{`{{`}} $value | humanizePercentage {{`}}`}} of its incoming requests on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapiterminatedrequests summary: The kubernetes apiserver has terminated {{`{{`}} $value | humanizePercentage {{`}}`}} of its incoming requests. expr: 'sum by(cluster) (rate(apiserver_request_terminations_total{job="apiserver"}[10m])) / ( sum by(cluster) (rate(apiserver_request_total{job="apiserver"}[10m])) + sum by(cluster) (rate(apiserver_request_terminations_total{job="apiserver"}[10m])) ) > 0.20 @@ -448,18 +449,22 @@ spec: rules: - alert: KubeNodeNotReady annotations: - description: '{{`{{`}} $labels.node {{`}}`}} has been unready for more than 15 minutes.' + description: '{{`{{`}} $labels.node {{`}}`}} has been unready for more than 15 minutes on cluster {{`{{`}} $labels.cluster {{`}}`}}.' runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubenodenotready summary: Node is not ready. expr: 'kube_node_status_condition{job="kube-state-metrics",condition="Ready",status="true"} == 0 + and on (cluster, node) + + kube_node_spec_unschedulable{job="kube-state-metrics"} == 0 + ' for: 15m labels: severity: warning - alert: KubeNodeUnreachable annotations: - description: '{{`{{`}} $labels.node {{`}}`}} is unreachable and some workloads may be rescheduled.' + description: '{{`{{`}} $labels.node {{`}}`}} is unreachable and some workloads may be rescheduled on cluster {{`{{`}} $labels.cluster {{`}}`}}.' runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubenodeunreachable summary: Node is unreachable. expr: '(kube_node_spec_taint{job="kube-state-metrics",key="node.kubernetes.io/unreachable",effect="NoSchedule"} unless ignoring(key,value) kube_node_spec_taint{job="kube-state-metrics",key=~"ToBeDeletedByClusterAutoscaler|cloud.google.com/impending-node-termination|aws-node-termination-handler/spot-itn"}) == 1 @@ -470,27 +475,31 @@ spec: severity: warning - alert: KubeletTooManyPods annotations: - description: Kubelet '{{`{{`}} $labels.node {{`}}`}}' is running at {{`{{`}} $value | humanizePercentage {{`}}`}} of its Pod capacity. + description: Kubelet '{{`{{`}} $labels.node {{`}}`}}' is running at {{`{{`}} $value | humanizePercentage {{`}}`}} of its Pod capacity on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubelettoomanypods summary: Kubelet is running at capacity. - expr: "count by(cluster, node) (\n (kube_pod_status_phase{job=\"kube-state-metrics\",phase=\"Running\"} == 1) * on(instance,pod,namespace,cluster) group_left(node) topk by(instance,pod,namespace,cluster) (1, kube_pod_info{job=\"kube-state-metrics\"})\n)\n/\nmax by(cluster, node) (\n kube_node_status_capacity{job=\"kube-state-metrics\",resource=\"pods\"} != 1\n) > 0.95\n" + expr: "(\n max by (cluster, instance) (\n kubelet_running_pods{job=\"kubelet\", metrics_path=\"/metrics\"} > 1\n )\n * on (cluster, instance) group_left(node)\n max by (cluster, instance, node) (\n kubelet_node_name{job=\"kubelet\", metrics_path=\"/metrics\"}\n )\n)\n/ on (cluster, node) group_left()\nmax by (cluster, node) (\n kube_node_status_capacity{job=\"kube-state-metrics\", resource=\"pods\"} != 1\n) > 0.95\n" for: 15m labels: severity: info - alert: KubeNodeReadinessFlapping annotations: - description: The readiness status of node {{`{{`}} $labels.node {{`}}`}} has changed {{`{{`}} $value {{`}}`}} times in the last 15 minutes. + description: The readiness status of node {{`{{`}} $labels.node {{`}}`}} has changed {{`{{`}} $value {{`}}`}} times in the last 15 minutes on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubenodereadinessflapping summary: Node readiness status is flapping. expr: 'sum(changes(kube_node_status_condition{job="kube-state-metrics",status="true",condition="Ready"}[15m])) by (cluster, node) > 2 + and on (cluster, node) + + kube_node_spec_unschedulable{job="kube-state-metrics"} == 0 + ' for: 15m labels: severity: warning - alert: KubeletPlegDurationHigh annotations: - description: The Kubelet Pod Lifecycle Event Generator has a 99th percentile duration of {{`{{`}} $value {{`}}`}} seconds on node {{`{{`}} $labels.node {{`}}`}}. + description: The Kubelet Pod Lifecycle Event Generator has a 99th percentile duration of {{`{{`}} $value {{`}}`}} seconds on node {{`{{`}} $labels.node {{`}}`}} on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletplegdurationhigh summary: Kubelet Pod Lifecycle Event Generator is taking too long to relist. expr: 'node_quantile:kubelet_pleg_relist_duration_seconds:histogram_quantile{quantile="0.99"} >= 10 @@ -501,7 +510,7 @@ spec: severity: warning - alert: KubeletPodStartUpLatencyHigh annotations: - description: Kubelet Pod startup 99th percentile latency is {{`{{`}} $value {{`}}`}} seconds on node {{`{{`}} $labels.node {{`}}`}}. + description: Kubelet Pod startup 99th percentile latency is {{`{{`}} $value {{`}}`}} seconds on node {{`{{`}} $labels.node {{`}}`}} on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletpodstartuplatencyhigh summary: Kubelet Pod startup latency is too high. expr: 'histogram_quantile(0.99, sum(rate(kubelet_pod_worker_duration_seconds_bucket{job="kubelet", metrics_path="/metrics"}[5m])) by (cluster, instance, le)) * on(cluster, instance) group_left(node) kubelet_node_name{job="kubelet", metrics_path="/metrics"} > 60 @@ -512,7 +521,7 @@ spec: severity: warning - alert: KubeletClientCertificateExpiration annotations: - description: Client certificate for Kubelet on node {{`{{`}} $labels.node {{`}}`}} expires in {{`{{`}} $value | humanizeDuration {{`}}`}}. + description: Client certificate for Kubelet on node {{`{{`}} $labels.node {{`}}`}} expires in {{`{{`}} $value | humanizeDuration {{`}}`}} on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletclientcertificateexpiration summary: Kubelet client certificate is about to expire. expr: 'kubelet_certificate_manager_client_ttl_seconds < 604800 @@ -522,7 +531,7 @@ spec: severity: warning - alert: KubeletClientCertificateExpiration annotations: - description: Client certificate for Kubelet on node {{`{{`}} $labels.node {{`}}`}} expires in {{`{{`}} $value | humanizeDuration {{`}}`}}. + description: Client certificate for Kubelet on node {{`{{`}} $labels.node {{`}}`}} expires in {{`{{`}} $value | humanizeDuration {{`}}`}} on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletclientcertificateexpiration summary: Kubelet client certificate is about to expire. expr: 'kubelet_certificate_manager_client_ttl_seconds < 86400 @@ -532,7 +541,7 @@ spec: severity: critical - alert: KubeletServerCertificateExpiration annotations: - description: Server certificate for Kubelet on node {{`{{`}} $labels.node {{`}}`}} expires in {{`{{`}} $value | humanizeDuration {{`}}`}}. + description: Server certificate for Kubelet on node {{`{{`}} $labels.node {{`}}`}} expires in {{`{{`}} $value | humanizeDuration {{`}}`}} on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletservercertificateexpiration summary: Kubelet server certificate is about to expire. expr: 'kubelet_certificate_manager_server_ttl_seconds < 604800 @@ -542,7 +551,7 @@ spec: severity: warning - alert: KubeletServerCertificateExpiration annotations: - description: Server certificate for Kubelet on node {{`{{`}} $labels.node {{`}}`}} expires in {{`{{`}} $value | humanizeDuration {{`}}`}}. + description: Server certificate for Kubelet on node {{`{{`}} $labels.node {{`}}`}} expires in {{`{{`}} $value | humanizeDuration {{`}}`}} on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletservercertificateexpiration summary: Kubelet server certificate is about to expire. expr: 'kubelet_certificate_manager_server_ttl_seconds < 86400 @@ -552,7 +561,7 @@ spec: severity: critical - alert: KubeletClientCertificateRenewalErrors annotations: - description: Kubelet on node {{`{{`}} $labels.node {{`}}`}} has failed to renew its client certificate ({{`{{`}} $value | humanize {{`}}`}} errors in the last 5 minutes). + description: Kubelet on node {{`{{`}} $labels.node {{`}}`}} has failed to renew its client certificate ({{`{{`}} $value | humanize {{`}}`}} errors in the last 5 minutes) on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletclientcertificaterenewalerrors summary: Kubelet has failed to renew its client certificate. expr: 'increase(kubelet_certificate_manager_client_expiration_renew_errors[5m]) > 0 @@ -563,7 +572,7 @@ spec: severity: warning - alert: KubeletServerCertificateRenewalErrors annotations: - description: Kubelet on node {{`{{`}} $labels.node {{`}}`}} has failed to renew its server certificate ({{`{{`}} $value | humanize {{`}}`}} errors in the last 5 minutes). + description: Kubelet on node {{`{{`}} $labels.node {{`}}`}} has failed to renew its server certificate ({{`{{`}} $value | humanize {{`}}`}} errors in the last 5 minutes) on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeletservercertificaterenewalerrors summary: Kubelet has failed to renew its server certificate. expr: 'increase(kubelet_server_expiration_renew_errors[5m]) > 0 @@ -640,20 +649,20 @@ spec: ' record: cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase1h - - expr: 'sum by (cluster, verb, scope) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{le="+Inf"} * 24 * 30) + - expr: 'sum by (cluster, verb, scope) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{le="+Inf"}) ' record: cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d - - expr: "1 - (\n (\n # write too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=\"1\"})\n ) +\n (\n # read too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=\"1\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=\"5\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"\ - cluster\",le=\"30\"})\n )\n ) +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d)\n" + - expr: "1 - (\n (\n # write too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=~\"1(\\\\.0)?\"})\n ) +\n (\n # read too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=~\"5(\\\\.0)?\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"\ + LIST|GET\",scope=\"cluster\",le=~\"30(\\\\.0)?\"})\n )\n ) +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d)\n" labels: verb: all record: apiserver_request:availability30d - - expr: "1 - (\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n # too slow\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=\"1\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=\"5\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=\"30\"})\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\"})\n" + - expr: "1 - (\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n # too slow\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=~\"5(\\\\.0)?\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=~\"30(\\\\.0)?\"})\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\"})\n" labels: verb: read record: apiserver_request:availability30d - - expr: "1 - (\n (\n # too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=\"1\"})\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\"})\n" + - expr: "1 - (\n (\n # too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=~\"1(\\\\.0)?\"})\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\"})\n" labels: verb: write record: apiserver_request:availability30d @@ -687,66 +696,66 @@ spec: record: code_verb:apiserver_request_total:increase1h - name: kube-apiserver-burnrate.rules rules: - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[1d]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[1d]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[1d]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[1d]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"\ - 5..\"}[1d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[1d]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[1d]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[1d]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[1d]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[1d]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\"\ + ,verb=~\"LIST|GET\",code=~\"5..\"}[1d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[1d]))\n" labels: verb: read record: apiserver_request:burnrate1d - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[1h]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[1h]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[1h]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[1h]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"\ - 5..\"}[1h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[1h]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[1h]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[1h]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[1h]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[1h]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\"\ + ,verb=~\"LIST|GET\",code=~\"5..\"}[1h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[1h]))\n" labels: verb: read record: apiserver_request:burnrate1h - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[2h]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[2h]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[2h]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[2h]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"\ - 5..\"}[2h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[2h]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[2h]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[2h]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[2h]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[2h]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\"\ + ,verb=~\"LIST|GET\",code=~\"5..\"}[2h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[2h]))\n" labels: verb: read record: apiserver_request:burnrate2h - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[30m]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[30m]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[30m]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[30m]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"\ - ,code=~\"5..\"}[30m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[30m]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[30m]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[30m]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[30m]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[30m]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"\ + apiserver\",verb=~\"LIST|GET\",code=~\"5..\"}[30m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[30m]))\n" labels: verb: read record: apiserver_request:burnrate30m - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[3d]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[3d]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[3d]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[3d]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"\ - 5..\"}[3d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[3d]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[3d]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[3d]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[3d]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[3d]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\"\ + ,verb=~\"LIST|GET\",code=~\"5..\"}[3d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[3d]))\n" labels: verb: read record: apiserver_request:burnrate3d - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[5m]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[5m]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[5m]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[5m]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"\ - 5..\"}[5m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[5m]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[5m]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[5m]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[5m]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[5m]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\"\ + ,verb=~\"LIST|GET\",code=~\"5..\"}[5m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[5m]))\n" labels: verb: read record: apiserver_request:burnrate5m - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[6h]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=\"1\"}[6h]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=\"5\"}[6h]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=\"30\"}[6h]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\",code=~\"\ - 5..\"}[6h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[6h]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\"}[6h]))\n -\n (\n (\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"}[6h]))\n or\n vector(0)\n )\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"namespace\",le=~\"5(\\\\.0)?\"}[6h]))\n +\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"LIST|GET\",subresource!~\"proxy|attach|log|exec|portforward\",scope=\"cluster\",le=~\"30(\\\\.0)?\"}[6h]))\n )\n )\n +\n # errors\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\"\ + ,verb=~\"LIST|GET\",code=~\"5..\"}[6h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"LIST|GET\"}[6h]))\n" labels: verb: read record: apiserver_request:burnrate6h - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[1d]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[1d]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[1d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[1d]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[1d]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[1d]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[1d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[1d]))\n" labels: verb: write record: apiserver_request:burnrate1d - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[1h]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[1h]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[1h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[1h]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[1h]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[1h]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[1h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[1h]))\n" labels: verb: write record: apiserver_request:burnrate1h - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[2h]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[2h]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[2h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[2h]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[2h]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[2h]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[2h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[2h]))\n" labels: verb: write record: apiserver_request:burnrate2h - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[30m]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[30m]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[30m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[30m]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[30m]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[30m]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[30m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[30m]))\n" labels: verb: write record: apiserver_request:burnrate30m - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[3d]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[3d]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[3d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[3d]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[3d]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[3d]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[3d]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[3d]))\n" labels: verb: write record: apiserver_request:burnrate3d - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[5m]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[5m]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[5m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[5m]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[5m]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[5m]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[5m]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[5m]))\n" labels: verb: write record: apiserver_request:burnrate5m - - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[6h]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=\"1\"}[6h]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[6h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[6h]))\n" + - expr: "(\n (\n # too slow\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_count{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\"}[6h]))\n -\n sum by (cluster) (rate(apiserver_request_sli_duration_seconds_bucket{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",subresource!~\"proxy|attach|log|exec|portforward\",le=~\"1(\\\\.0)?\"}[6h]))\n )\n +\n sum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\",code=~\"5..\"}[6h]))\n)\n/\nsum by (cluster) (rate(apiserver_request_total{job=\"apiserver\",verb=~\"POST|PUT|PATCH|DELETE\"}[6h]))\n" labels: verb: write record: apiserver_request:burnrate6h @@ -916,4 +925,122 @@ spec: labels: quantile: '0.5' record: node_quantile:kubelet_pleg_relist_duration_seconds:histogram_quantile + - name: windows.node.rules + rules: + - expr: "count by (cluster) (\n windows_system_system_up_time{job=\"kubernetes-windows-exporter\"}\n)\n" + record: node:windows_node:sum + - expr: "count by (cluster, instance) (sum by (cluster, instance, core) (\n windows_cpu_time_total{job=\"kubernetes-windows-exporter\"}\n))\n" + record: node:windows_node_num_cpu:sum + - expr: '1 - avg by (cluster) (rate(windows_cpu_time_total{job="kubernetes-windows-exporter",mode="idle"}[1m])) + + ' + record: :windows_node_cpu_utilisation:avg1m + - expr: "1 - avg by (cluster, instance) (\n rate(windows_cpu_time_total{job=\"kubernetes-windows-exporter\",mode=\"idle\"}[1m])\n)\n" + record: node:windows_node_cpu_utilisation:avg1m + - expr: '1 - + + sum by (cluster) (windows_memory_available_bytes{job="kubernetes-windows-exporter"}) + + / + + sum by (cluster) (windows_os_visible_memory_bytes{job="kubernetes-windows-exporter"}) + + ' + record: ':windows_node_memory_utilisation:' + - expr: 'sum by (cluster) (windows_memory_available_bytes{job="kubernetes-windows-exporter"} + windows_memory_cache_bytes{job="kubernetes-windows-exporter"}) + + ' + record: :windows_node_memory_MemFreeCached_bytes:sum + - expr: '(windows_memory_cache_bytes{job="kubernetes-windows-exporter"} + windows_memory_modified_page_list_bytes{job="kubernetes-windows-exporter"} + windows_memory_standby_cache_core_bytes{job="kubernetes-windows-exporter"} + windows_memory_standby_cache_normal_priority_bytes{job="kubernetes-windows-exporter"} + windows_memory_standby_cache_reserve_bytes{job="kubernetes-windows-exporter"}) + + ' + record: node:windows_node_memory_totalCached_bytes:sum + - expr: 'sum by (cluster) (windows_os_visible_memory_bytes{job="kubernetes-windows-exporter"}) + + ' + record: :windows_node_memory_MemTotal_bytes:sum + - expr: "sum by (cluster, instance) (\n (windows_memory_available_bytes{job=\"kubernetes-windows-exporter\"})\n)\n" + record: node:windows_node_memory_bytes_available:sum + - expr: "sum by (cluster, instance) (\n windows_os_visible_memory_bytes{job=\"kubernetes-windows-exporter\"}\n)\n" + record: node:windows_node_memory_bytes_total:sum + - expr: '(node:windows_node_memory_bytes_total:sum - node:windows_node_memory_bytes_available:sum) + + / + + scalar(sum(node:windows_node_memory_bytes_total:sum)) + + ' + record: node:windows_node_memory_utilisation:ratio + - expr: '1 - (node:windows_node_memory_bytes_available:sum / node:windows_node_memory_bytes_total:sum) + + ' + record: 'node:windows_node_memory_utilisation:' + - expr: 'irate(windows_memory_swap_page_operations_total{job="kubernetes-windows-exporter"}[5m]) + + ' + record: node:windows_node_memory_swap_io_pages:irate + - expr: "avg by (cluster) (irate(windows_logical_disk_read_seconds_total{job=\"kubernetes-windows-exporter\"}[1m]) +\n irate(windows_logical_disk_write_seconds_total{job=\"kubernetes-windows-exporter\"}[1m])\n )\n" + record: :windows_node_disk_utilisation:avg_irate + - expr: "avg by (cluster, instance) (\n (irate(windows_logical_disk_read_seconds_total{job=\"kubernetes-windows-exporter\"}[1m]) +\n irate(windows_logical_disk_write_seconds_total{job=\"kubernetes-windows-exporter\"}[1m]))\n)\n" + record: node:windows_node_disk_utilisation:avg_irate + - expr: "max by (cluster,instance,volume)(\n (windows_logical_disk_size_bytes{job=\"kubernetes-windows-exporter\"}\n- windows_logical_disk_free_bytes{job=\"kubernetes-windows-exporter\"})\n/ windows_logical_disk_size_bytes{job=\"kubernetes-windows-exporter\"}\n)\n" + record: 'node:windows_node_filesystem_usage:' + - expr: 'max by (cluster, instance, volume) (windows_logical_disk_free_bytes{job="kubernetes-windows-exporter"} / windows_logical_disk_size_bytes{job="kubernetes-windows-exporter"}) + + ' + record: 'node:windows_node_filesystem_avail:' + - expr: 'sum by (cluster) (irate(windows_net_bytes_total{job="kubernetes-windows-exporter"}[1m])) + + ' + record: :windows_node_net_utilisation:sum_irate + - expr: "sum by (cluster, instance) (\n (irate(windows_net_bytes_total{job=\"kubernetes-windows-exporter\"}[1m]))\n)\n" + record: node:windows_node_net_utilisation:sum_irate + - expr: 'sum by (cluster) (irate(windows_net_packets_received_discarded_total{job="kubernetes-windows-exporter"}[1m])) + + + sum by (cluster) (irate(windows_net_packets_outbound_discarded_total{job="kubernetes-windows-exporter"}[1m])) + + ' + record: :windows_node_net_saturation:sum_irate + - expr: "sum by (cluster, instance) (\n (irate(windows_net_packets_received_discarded_total{job=\"kubernetes-windows-exporter\"}[1m]) +\n irate(windows_net_packets_outbound_discarded_total{job=\"kubernetes-windows-exporter\"}[1m]))\n)\n" + record: node:windows_node_net_saturation:sum_irate + - name: windows.pod.rules + rules: + - expr: 'windows_container_available{job="kubernetes-windows-exporter", container_id != ""} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job="kube-state-metrics", container_id != ""}) by(container, container_id, pod, namespace, cluster) + + ' + record: windows_pod_container_available + - expr: 'windows_container_cpu_usage_seconds_total{job="kubernetes-windows-exporter", container_id != ""} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job="kube-state-metrics", container_id != ""}) by(container, container_id, pod, namespace, cluster) + + ' + record: windows_container_total_runtime + - expr: 'windows_container_memory_usage_commit_bytes{job="kubernetes-windows-exporter", container_id != ""} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job="kube-state-metrics", container_id != ""}) by(container, container_id, pod, namespace, cluster) + + ' + record: windows_container_memory_usage + - expr: 'windows_container_memory_usage_private_working_set_bytes{job="kubernetes-windows-exporter", container_id != ""} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job="kube-state-metrics", container_id != ""}) by(container, container_id, pod, namespace, cluster) + + ' + record: windows_container_private_working_set_usage + - expr: 'windows_container_network_receive_bytes_total{job="kubernetes-windows-exporter", container_id != ""} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job="kube-state-metrics", container_id != ""}) by(container, container_id, pod, namespace, cluster) + + ' + record: windows_container_network_received_bytes_total + - expr: 'windows_container_network_transmit_bytes_total{job="kubernetes-windows-exporter", container_id != ""} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job="kube-state-metrics", container_id != ""}) by(container, container_id, pod, namespace, cluster) + + ' + record: windows_container_network_transmitted_bytes_total + - expr: "max by (cluster, namespace, pod, container) (\n kube_pod_container_resource_requests{resource=\"memory\",job=\"kube-state-metrics\"}\n) * on(container,pod,namespace,cluster) (windows_pod_container_available)\n" + record: kube_pod_windows_container_resource_memory_request + - expr: 'kube_pod_container_resource_limits{resource="memory",job="kube-state-metrics"} * on(container,pod,namespace,cluster) (windows_pod_container_available) + + ' + record: kube_pod_windows_container_resource_memory_limit + - expr: "max by (cluster, namespace, pod, container) (\n kube_pod_container_resource_requests{resource=\"cpu\",job=\"kube-state-metrics\"}\n) * on(container,pod,namespace,cluster) (windows_pod_container_available)\n" + record: kube_pod_windows_container_resource_cpu_cores_request + - expr: 'kube_pod_container_resource_limits{resource="cpu",job="kube-state-metrics"} * on(container,pod,namespace,cluster) (windows_pod_container_available) + + ' + record: kube_pod_windows_container_resource_cpu_cores_limit + - expr: "sum by (cluster, namespace, pod, container) (\n rate(windows_container_total_runtime{}[5m])\n)\n" + record: namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate diff --git a/charts/kubezero-metrics/templates/rules/node-exporter.yaml b/charts/kubezero-metrics/templates/rules/node-exporter.yaml index a15f467c..9cefe333 100644 --- a/charts/kubezero-metrics/templates/rules/node-exporter.yaml +++ b/charts/kubezero-metrics/templates/rules/node-exporter.yaml @@ -105,7 +105,7 @@ spec: severity: warning - alert: NodeHighNumberConntrackEntriesUsed annotations: - description: '{{`{{`}} $value | humanizePercentage {{`}}`}} of conntrack entries are used.' + description: '{{`{{`}} $labels.instance {{`}}`}} {{`{{`}} $value | humanizePercentage {{`}}`}} of conntrack entries are used.' runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodehighnumberconntrackentriesused summary: Number of conntrack are getting close to the limit. expr: '(node_nf_conntrack_entries{job="node-exporter"} / node_nf_conntrack_entries_limit) > 0.75 @@ -193,7 +193,7 @@ spec: ' runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodecpuhighusage summary: High CPU usage. - expr: 'sum without(mode) (avg without (cpu) (rate(node_cpu_seconds_total{job="node-exporter", mode!="idle"}[2m]))) * 100 > 90 + expr: 'sum without(mode) (avg without (cpu) (rate(node_cpu_seconds_total{job="node-exporter", mode!~"idle|iowait"}[2m]))) * 100 > 90 ' for: 15m diff --git a/charts/kubezero/values.yaml b/charts/kubezero/values.yaml index 6af77b46..b633492b 100644 --- a/charts/kubezero/values.yaml +++ b/charts/kubezero/values.yaml @@ -101,7 +101,7 @@ operators: metrics: enabled: false namespace: monitoring - targetRevision: 0.10.2 + targetRevision: 0.11.0 istio: grafana: {} prometheus: {}