.metadata.name — имя метрики, используется в HPA.
.spec.query — кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторами sum() by() , max() by() и пр.). В запросе необходимо обязательно использовать ключи:
<<.LabelMatchers>> — заменится на набор лейблов {namespace="mynamespace"###PLACEHOLDER###} . Можно добавить свои лейблы через запятую (пример).
<<.GroupBy>> — заменится на перечисление лейблов namespace###PLACEHOLDER2### для группировки (max() by(...) , sum() by (...) и пр.).
|
.metadata.name — the name of the metric (used in HPA).
.spec.query — a custom PromQL query that returns a unique value for your label set (you can use sum() by() , max() by() , etc., operators for grouping). The following keys must be used in the request:
<<.LabelMatchers>> — will be replaced with a set of {namespace="mynamespace"###PLACEHOLDER###} labels. You can add your own comma-separated labels list (as in the example).
<<.GroupBy>> — will be replaced with namespace###PLACEHOLDER2### labels for grouping (max() by(...) , sum() by (...) , etc.).
|
Настройка ванильного prometheus-metrics-adapter — достаточно трудоемкий процесс. Мы его несколько упростили, определив набор CustomResourceDefinition с разной областью видимости (scope).
| Setting up a vanilla prometheus-metrics-adapter is a time-consuming process. Happily, we have somewhat simplified it by defining a set of CustomResourceDefinitions with different scopes.
|
С помощью cluster-wide-ресурса можно определить метрику глобально, а с помощью namespaced-ресурса ее можно локально переопределять. Формат всех custom resource’ов — одинаковый.
| You can globally define a metric using the cluster-wide resource, while the namespaced resource allows you to redefine it locally. All custom resources have the same format.
|
Namespaced custom resources
| Namespaced custom resources
|
ServiceMetric
| ServiceMetric
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,service=”myservice”’ |
replace: ‘###PLACEHOLDER2###’, ‘,service’ }} |
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,service=”myservice”’ |
replace: ‘###PLACEHOLDER2###’, ‘,service’ }} |
|
IngressMetric
| IngressMetric
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,ingress=”myingress”’ |
replace: ‘###PLACEHOLDER2###’, ‘,ingress’ }} |
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,ingress=”myingress”’ |
replace: ‘###PLACEHOLDER2###’, ‘,ingress’ }} |
|
PodMetric
| PodMetric
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,pod=”mypod-xxxxx”’ |
replace: ‘###PLACEHOLDER2###’, ‘,pod’ }} |
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,pod=”mypod-xxxxx”’ |
replace: ‘###PLACEHOLDER2###’, ‘,pod’ }} |
|
DeploymentMetric
| DeploymentMetric
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,deployment=”mydeployment”’ |
replace: ‘###PLACEHOLDER2###’, ‘,deployment’ }} |
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,deployment=”mydeployment”’ |
replace: ‘###PLACEHOLDER2###’, ‘,deployment’ }} |
|
StatefulSetMetric
| StatefulSetMetric
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,statefulset=”mystatefulset”’ |
replace: ‘###PLACEHOLDER2###’, ‘,statefulset’ }} |
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,statefulset=”mystatefulset”’ |
replace: ‘###PLACEHOLDER2###’, ‘,statefulset’ }} |
|
NamespaceMetric
| NamespaceMetric
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘’ |
replace: ‘###PLACEHOLDER2###’, ‘’ }} |
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘’ |
replace: ‘###PLACEHOLDER2###’, ‘’ }} |
|
DaemonSetMetric (недоступен пользователям)
| DaemonSetMetric (not available to users)
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,daemonset=”mydaemonset”’ |
replace: ‘###PLACEHOLDER2###’, ‘,daemonset’ }} |
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,daemonset=”mydaemonset”’ |
replace: ‘###PLACEHOLDER2###’, ‘,daemonset’ }} |
|
Cluster custom resources
| Cluster custom resources
|
ClusterServiceMetric (недоступен пользователям)
| ClusterServiceMetric (not available to users)
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,service=”myservice”’ |
replace: ‘###PLACEHOLDER2###’, ‘,service’ }} |
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,service=”myservice”’ |
replace: ‘###PLACEHOLDER2###’, ‘,service’ }} |
|
ClusterIngressMetric (недоступен пользователям)
| ClusterIngressMetric (not available to users)
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,ingress=”myingress”’ |
replace: ‘###PLACEHOLDER2###’, ‘,ingress’ }} |
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,ingress=”myingress”’ |
replace: ‘###PLACEHOLDER2###’, ‘,ingress’ }} |
|
ClusterPodMetric (недоступен пользователям)
| ClusterPodMetric (not available to users)
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,pod=”mypod-xxxxx”’ |
replace: ‘###PLACEHOLDER2###’, ‘,pod’ }} |
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,pod=”mypod-xxxxx”’ |
replace: ‘###PLACEHOLDER2###’, ‘,pod’ }} |
|
ClusterDeploymentMetric (недоступен пользователям)
| ClusterDeploymentMetric (not available to users)
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,deployment=”mydeployment”’ |
replace: ‘###PLACEHOLDER2###’, ‘,deployment’ }} |
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,deployment=”mydeployment”’ |
replace: ‘###PLACEHOLDER2###’, ‘,deployment’ }} |
|
ClusterStatefulSetMetric (недоступен пользователям)
| ClusterStatefulSetMetric (not available to users)
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,statefulset=”mystatefulset”’ |
replace: ‘###PLACEHOLDER2###’, ‘,statefulset’ }} |
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,statefulset=”mystatefulset”’ |
replace: ‘###PLACEHOLDER2###’, ‘,statefulset’ }} |
|
ClusterDaemonSetMetric (недоступен пользователям)
| ClusterDaemonSetMetric (not available to users)
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,daemonset=”mydaemonset”’ |
replace: ‘###PLACEHOLDER2###’, ‘,daemonset’ }} |
|
{{ cr_spec |
replace: ‘###PLACEHOLDER###’, ‘,daemonset=”mydaemonset”’ |
replace: ‘###PLACEHOLDER2###’, ‘,daemonset’ }} |
|