[英]How to add new labels to existing prometheus metric in Istio?
我正在尝试将新的 label source_ip
添加到普罗米修斯指标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"
并向attributes
实例添加了一个attribute_binding
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
label 未包含在 prometheus 报告的istio_request_total
指标中,我在这里遗漏了什么吗?
我正在使用 istio 1.5,升级可能需要相当长的时间。
您提到的该文档不适用于 istio 1.5,因为它使用了自 istio 1.5 以来已弃用的混音器,如下面的文档中所述,您可能会重新启用它,但我找不到任何相关文档。
混合器已弃用。 Mixer 提供的功能正在转移到 Envoy 代理中。 只有 Istio 1.7 版本才支持将 Mixer 与 Istio 一起使用。
混合器弃用
Mixer 是 istio-telemetry 和 istio-policy 部署背后的过程,在 1.5 版本中已被弃用。 从 Istio 1.3 开始,默认禁用 istio-policy,在 Istio 1.5 中默认禁用 istio-telemetry。
遥测是使用不需要 Mixer 的代理内扩展机制 (Telemetry V2) 收集的。
如果您依赖于特定的 Mixer 功能,例如进程外适配器,您可以重新启用 Mixer。 在 Istio 1.7 之前,Mixer 将继续接收错误修复和安全修复。 Mixer 支持的许多功能都有 Mixer Deprecation 文档中指定的替代方案,包括基于 WebAssembly 沙箱 API 的代理内扩展。
如果您依赖的 Mixer 功能没有等效功能,我们鼓励您打开问题并在社区中讨论。
关于升级,我会说如果那是 istio 的旧版本,那么升级可能会更困难,但由于它是 1.5,我会说使用istioctl upgrade升级到 1.6 可能很容易。 我建议先在一些测试环境中测试它。
Istio 使用“kubernetes-pods”作业配置 prometheus。 至少在使用“演示”配置文件时。 在这个 prometheus 作业配置中,有一个 relabel_configs 用于获取 pod 标签。
relabel_configs:
...
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
如果您想使用它,请使用 meshConfig.enablePrometheusMerge=true 选项,它将 append 标记到 istio 指标。 有相关的文档。 请注意,此选项是 Istio 1.6 中新引入的,目前被视为 alpha。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.