This repository has been archived on 2023-04-02. You can view files and clone it, but cannot push or open issues or pull requests.
gitops-tbrnt/monitoring/vendor/kubernetes-mixin/rules/kube_apiserver.libsonnet

41 lines
1.4 KiB
Plaintext

{
_config+:: {
kubeApiserverSelector: 'job="kube-apiserver"',
podLabel: 'pod',
},
prometheusRules+:: {
groups+: [
{
name: 'kube-apiserver-error',
rules:
$._config.SLOs.apiserver.errors.recordingrules,
},
{
name: 'kube-apiserver.rules',
rules: [
{
record: 'cluster:apiserver_request_duration_seconds:mean5m',
expr: |||
sum(rate(apiserver_request_duration_seconds_sum{subresource!="log",verb!~"LIST|WATCH|WATCHLIST|DELETECOLLECTION|PROXY|CONNECT"}[5m])) without(instance, %(podLabel)s)
/
sum(rate(apiserver_request_duration_seconds_count{subresource!="log",verb!~"LIST|WATCH|WATCHLIST|DELETECOLLECTION|PROXY|CONNECT"}[5m])) without(instance, %(podLabel)s)
||| % ($._config),
},
] + [
{
record: 'cluster_quantile:apiserver_request_duration_seconds:histogram_quantile',
expr: |||
histogram_quantile(%(quantile)s, sum(rate(apiserver_request_duration_seconds_bucket{%(kubeApiserverSelector)s,subresource!="log",verb!~"LIST|WATCH|WATCHLIST|DELETECOLLECTION|PROXY|CONNECT"}[5m])) without(instance, %(podLabel)s))
||| % ({ quantile: quantile } + $._config),
labels: {
quantile: quantile,
},
}
for quantile in ['0.99', '0.9', '0.5']
],
},
],
},
}