Как добавить новые метки к существующим prometheus metri c в Istio? - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь добавить новую метку source_ip в prometheus metri c requestcount
Я добавил атрибут в обработчик выпускного вечера

params:
    metrics:
    - instance_name: requestcount.instance.istio-system
      kind: COUNTER
      label_names:
      - reporter
      - source_ip
      - source_app

и добавил измерение в requestcount экземпляр

compiledTemplate: metric
  params:
    dimensions:
      reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination")
      source_app: source.labels["app"] | "unknown"
      source_ip: source.ip | "unknown"

и добавил attribute_binding в attributes экземпляр

spec:
  attributeBindings:
    destination.workload.namespace: $out.destination_workload_namespace | "unknown"
    destination.workload.uid: $out.destination_workload_uid | "unknown"
    source.ip: $out.source_pod_ip | ip("0.0.0.0")

, но метка source_ip не включена в istio_request_total метри c сообщил прометей, я что-то упустил?

1 Ответ

1 голос
/ 10 августа 2020

О микшере и используемой документации

Я использую istio 1.5, и обновление может занять у меня значительное время.

Эта документация Вы упомянули, не будет работать с istio 1.5, поскольку он использует микшер, который устарел с istio 1.5, как указано в нижеприведенных документах, вы можете повторно включить его, но я не смог найти никакой документации по этому поводу.

Как уже упоминалось здесь и здесь

Mixer устарел. Функциональные возможности, предоставляемые Mixer, переносятся в прокси Envoy. Использование Mixer с Istio будет поддерживаться только в выпуске Istio 1.7.

Прекращение поддержки Mixer

Mixer, процесс, лежащий в основе развертывания istio-telemetry и istio-policy , устарела в версии 1.5. istio-policy была отключена по умолчанию, так как Istio 1.3, а istio-телеметрия отключена по умолчанию в Istio 1.5.

Телеметрия собирается с помощью механизма расширения прокси (Telemetry V2), который не требует Mixer.

Если вы зависите от конкретных c функций микшера, таких как адаптеры вне процесса, вы можете повторно включить микшер. Mixer продолжит получать исправления ошибок и исправления безопасности до выхода Istio 1.7. Многие функции, поддерживаемые Mixer, имеют альтернативы, указанные в документе Mixer Deprecation, включая встроенные расширения на основе API-интерфейса песочницы WebAssembly.

Если вы полагаетесь на функцию Mixer, у которой нет эквивалент, мы рекомендуем вам открывать вопросы и обсуждать их в сообществе.

Об обновлении

Об обновлении, я бы сказал, что если бы это была более старая версия istio, тогда было бы сложнее обновить, но, поскольку это 1.5, я бы сказал, что было бы легко перейти на 1.6 с помощью обновление istioctl . Я бы посоветовал сначала протестировать его в какой-нибудь тестовой среде.

О главном вопросе

Istio настраивает prometheus с заданием «kubernetes-pods». По крайней мере, при использовании «демо» профиля. В этой конфигурации задания prometheus есть relabel_configs, который получает метки модулей.

relabel_configs: 
...
- action: labelmap
  regex: __meta_kubernetes_pod_label_(.+)

Если вы хотите использовать его, используйте параметр meshConfig.enablePrometheusMerge = true, он добавит метки к метрикам istio. Об этом есть соответствующая документация . Просто обратите внимание, что эта опция впервые представлена ​​в Istio 1.6 и в настоящее время считается альфа-версией.

...