Настройка ванильного prometheus-metrics-adapter
— достаточно трудоемкий процесс. Мы его несколько упростили, определив набор CustomResourceDefinition с разной областью видимости (scope).
С помощью cluster-wide-ресурса можно определить метрику глобально, а с помощью namespaced-ресурса ее можно локально переопределять. Формат всех custom resource’ов — одинаковый.
Namespaced custom resources
ServiceMetric
.metadata.name
— имя метрики, используется в HPA..spec.query
— кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторамиsum() by()
,max() by()
и пр.). В запросе необходимо обязательно использовать ключи:<<.LabelMatchers>>
— заменится на набор лейблов{namespace="mynamespace",service="myservice"}
. Можно добавить свои лейблы через запятую (пример).<<.GroupBy>>
— заменится на перечисление лейбловnamespace,service
для группировки (max() by(...)
,sum() by (...)
и пр.).
IngressMetric
.metadata.name
— имя метрики, используется в HPA..spec.query
— кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторамиsum() by()
,max() by()
и пр.). В запросе необходимо обязательно использовать ключи:<<.LabelMatchers>>
— заменится на набор лейблов{namespace="mynamespace",ingress="myingress"}
. Можно добавить свои лейблы через запятую (пример).<<.GroupBy>>
— заменится на перечисление лейбловnamespace,ingress
для группировки (max() by(...)
,sum() by (...)
и пр.).
PodMetric
.metadata.name
— имя метрики, используется в HPA..spec.query
— кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторамиsum() by()
,max() by()
и пр.). В запросе необходимо обязательно использовать ключи:<<.LabelMatchers>>
— заменится на набор лейблов{namespace="mynamespace",pod="mypod-xxxxx"}
. Можно добавить свои лейблы через запятую (пример).<<.GroupBy>>
— заменится на перечисление лейбловnamespace,pod
для группировки (max() by(...)
,sum() by (...)
и пр.).
DeploymentMetric
.metadata.name
— имя метрики, используется в HPA..spec.query
— кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторамиsum() by()
,max() by()
и пр.). В запросе необходимо обязательно использовать ключи:<<.LabelMatchers>>
— заменится на набор лейблов{namespace="mynamespace",deployment="mydeployment"}
. Можно добавить свои лейблы через запятую (пример).<<.GroupBy>>
— заменится на перечисление лейбловnamespace,deployment
для группировки (max() by(...)
,sum() by (...)
и пр.).
StatefulSetMetric
.metadata.name
— имя метрики, используется в HPA..spec.query
— кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторамиsum() by()
,max() by()
и пр.). В запросе необходимо обязательно использовать ключи:<<.LabelMatchers>>
— заменится на набор лейблов{namespace="mynamespace",statefulset="mystatefulset"}
. Можно добавить свои лейблы через запятую (пример).<<.GroupBy>>
— заменится на перечисление лейбловnamespace,statefulset
для группировки (max() by(...)
,sum() by (...)
и пр.).
NamespaceMetric
.metadata.name
— имя метрики, используется в HPA..spec.query
— кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторамиsum() by()
,max() by()
и пр.). В запросе необходимо обязательно использовать ключи:<<.LabelMatchers>>
— заменится на набор лейблов{namespace="mynamespace"}
. Можно добавить свои лейблы через запятую (пример).<<.GroupBy>>
— заменится на перечисление лейбловnamespace
для группировки (max() by(...)
,sum() by (...)
и пр.).
DaemonSetMetric
(недоступен пользователям)
.metadata.name
— имя метрики, используется в HPA..spec.query
— кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторамиsum() by()
,max() by()
и пр.). В запросе необходимо обязательно использовать ключи:<<.LabelMatchers>>
— заменится на набор лейблов{namespace="mynamespace",daemonset="mydaemonset"}
. Можно добавить свои лейблы через запятую (пример).<<.GroupBy>>
— заменится на перечисление лейбловnamespace,daemonset
для группировки (max() by(...)
,sum() by (...)
и пр.).
Cluster custom resources
ClusterServiceMetric
(недоступен пользователям)
.metadata.name
— имя метрики, используется в HPA..spec.query
— кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторамиsum() by()
,max() by()
и пр.). В запросе необходимо обязательно использовать ключи:<<.LabelMatchers>>
— заменится на набор лейблов{namespace="mynamespace",service="myservice"}
. Можно добавить свои лейблы через запятую (пример).<<.GroupBy>>
— заменится на перечисление лейбловnamespace,service
для группировки (max() by(...)
,sum() by (...)
и пр.).
ClusterIngressMetric
(недоступен пользователям)
.metadata.name
— имя метрики, используется в HPA..spec.query
— кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторамиsum() by()
,max() by()
и пр.). В запросе необходимо обязательно использовать ключи:<<.LabelMatchers>>
— заменится на набор лейблов{namespace="mynamespace",ingress="myingress"}
. Можно добавить свои лейблы через запятую (пример).<<.GroupBy>>
— заменится на перечисление лейбловnamespace,ingress
для группировки (max() by(...)
,sum() by (...)
и пр.).
ClusterPodMetric
(недоступен пользователям)
.metadata.name
— имя метрики, используется в HPA..spec.query
— кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторамиsum() by()
,max() by()
и пр.). В запросе необходимо обязательно использовать ключи:<<.LabelMatchers>>
— заменится на набор лейблов{namespace="mynamespace",pod="mypod-xxxxx"}
. Можно добавить свои лейблы через запятую (пример).<<.GroupBy>>
— заменится на перечисление лейбловnamespace,pod
для группировки (max() by(...)
,sum() by (...)
и пр.).
ClusterDeploymentMetric
(недоступен пользователям)
.metadata.name
— имя метрики, используется в HPA..spec.query
— кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторамиsum() by()
,max() by()
и пр.). В запросе необходимо обязательно использовать ключи:<<.LabelMatchers>>
— заменится на набор лейблов{namespace="mynamespace",deployment="mydeployment"}
. Можно добавить свои лейблы через запятую (пример).<<.GroupBy>>
— заменится на перечисление лейбловnamespace,deployment
для группировки (max() by(...)
,sum() by (...)
и пр.).
ClusterStatefulSetMetric
(недоступен пользователям)
.metadata.name
— имя метрики, используется в HPA..spec.query
— кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторамиsum() by()
,max() by()
и пр.). В запросе необходимо обязательно использовать ключи:<<.LabelMatchers>>
— заменится на набор лейблов{namespace="mynamespace",statefulset="mystatefulset"}
. Можно добавить свои лейблы через запятую (пример).<<.GroupBy>>
— заменится на перечисление лейбловnamespace,statefulset
для группировки (max() by(...)
,sum() by (...)
и пр.).
ClusterDaemonSetMetric
(недоступен пользователям)
.metadata.name
— имя метрики, используется в HPA..spec.query
— кастомный PromQL-запрос, который возвращает однозначное значение для вашего набора лейблов (используйте группировку операторамиsum() by()
,max() by()
и пр.). В запросе необходимо обязательно использовать ключи:<<.LabelMatchers>>
— заменится на набор лейблов{namespace="mynamespace",daemonset="mydaemonset"}
. Можно добавить свои лейблы через запятую (пример).<<.GroupBy>>
— заменится на перечисление лейбловnamespace,daemonset
для группировки (max() by(...)
,sum() by (...)
и пр.).