Объедините метрики Grafana с несовпадающими метками - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть две метрики (относящиеся к использованию памяти в моих модулях Kubernetes), определенные следующим образом:

  1. kube_pod_container_resource_limits_memory_bytes {app = "kube-state-metrics", container = "foo", экземпляр = "10.244.0.7:8080", работа = "kubernetes-конечные точки", kubernetes_name = "Kube-состояние-метрика", kubernetes_namespace = "мониторинг", пространство имен = "тест", узел = "АКС-nodepool1-25518080-0 ", pod =" foo-cb9bc5fb5-2bghz "}
  2. container_memory_working_set_bytes {agentpool =" nodepool1 ", beta_kubernetes_io_arch =" amd64 ", beta_kubernetes_os_os_os_os_tos_io_tes_io_in_) _"Linux", * 1 010 * container_name = "Foo" , failure_domain_beta_kubernetes_io_region = "westeurope", failure_domain_beta_kubernetes_io_zone = "1", ID = "/ kubepods / Burstable / pod5b0099a9-Eeff-11e8-884b-ca2011a99774 / eeb183b21e2b3226a32de41dd85d7a2e9fc8715cf31ea7109bfbb2cae7c00c44", изображение= "@ sha256: 6d6003ba86a0b7f74f512b08768093b4c098e825bd7850db66d11f66bc384870", экземпляр = "АКС-nodepool1-25518080-0", работа = "kubernetes-чаdvisor "kubernetes_azure_com_cluster = "MC_test.planned.bthbygg.se_bthbygg-test_westeurope", kubernetes_io_hostname = "АКС-nodepool1-25518080-0", kubernetes_io_role = "агент", имя =" k8s_foo_foo-cb9bc5fb5-2bghz_test_5b0099a9-Eeff-11e8-884b-ca2011a99774_0 ", namespace =" test ", pod_name =" foo-cb9bc5fb5-2bghz ", storageprofile =" managed ", storagetier =" Standard_LRS "}

Я хочу объединитьэти два в процентах, делая что-то вроде

container_memory_working_set_bytes{namespace="test"}
  / kube_pod_container_resource_limits_memory_bytes{namespace="test"}

, но это не возвращает мне данных, предположительно, потому что нет подходящих меток для присоединения к наборам данных.Как вы можете видеть, у меня есть совпадающая метка values ​​, но метка names не совпадает.

Могу ли я как-то сформулировать свой запрос, чтобы присоединиться к этимНапример, pod == pod_name, без необходимости изменения метрик на другом конце (куда они экспортируются)?

1 Ответ

0 голосов
/ 26 ноября 2018

Вы можете использовать функцию PromQL label_replace для создания новой подходящей метки из исходных меток.

Например, вы можете использовать приведенное ниже выражение для добавления метки container_name="foo" кПервая метрика, которую можно использовать для объединения:

label_replace(
 kube_pod_container_resource_limits_memory_bytes,
 "container_name", "$1", "container", "(.*)")

Вы можете использовать вышеуказанный шаблон для создания новых меток, которые можно использовать для сопоставления.

...