使用 istio 运算符覆盖 source_workload 指标

Posted

技术标签:

【中文标题】使用 istio 运算符覆盖 source_workload 指标【英文标题】:Overwrite source_workload metric using istio operator 【发布时间】:2021-11-19 16:16:41 【问题描述】:

由于特定工作负载产生的高基数问题,我想覆盖 request_bytes_bucket 指标中的 source_workload 标记 - 我不想删除 source_workload 标记,因为这会破坏 Kiali 功能并影响其他没有此功能的工作负载问题 - 我尝试使用以下定义,但这似乎不起作用,似乎没有很多示例,所以我不确定在这种情况下是否可以使用三元或正则表达式:

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  name: istio
spec:
  values:
    telemetry:
      v2:
        prometheus:
          configOverride:
            inboundSidecar:
              metrics:
                - name: request_bytes_bucket
                  dimensions:
                    source_workload: "matches(istio_request_bytes_bucket.source_workload, \"source-workload-prefix-.*\") ? istio_request_bytes_bucket.source_app : istio_request_bytes_bucket.source_workload"

【问题讨论】:

您使用了哪个版本的 Kubernetes、istio 和 prometheus,您是如何设置集群的?您是否使用裸机安装或某些云提供商? “这似乎不起作用”是什么意思?你有什么错误吗? k8s: 1.18, istio: 1.9.1 在 EKS 上运行 - 没有错误,它应用了 enovy 过滤器,但不影响任何指标 您知道吗,您使用的是已弃用的 k8s 版本?您是使用一些教程进行部署还是只是尝试创建监控并遇到问题? 【参考方案1】:

为了让它工作,我必须删除'istio'前缀,'bucket'后缀并在值周围添加一组额外的单引号,例如

values:
   telemetry:
     enabled: true
     v2:
       enabled: true
       prometheus:
         configOverride:
           inboundSidecar:
             stat_prefix: istio
             metrics:
               - name: request_bytes
                 dimensions:
                  source_workload: "'test'"

【讨论】:

以上是关于使用 istio 运算符覆盖 source_workload 指标的主要内容,如果未能解决你的问题,请参考以下文章

在 queryDSL 中使用 postgresql 数组覆盖运算符的语法

在 Scala/Chisel 中使用类型参数覆盖/重载运算符

如何使用扩展运算符向对象添加属性,而不是覆盖它?

istio-ingress-gateway

使用 GKE Istio Addon 时如何更改 istio-ingressgateway?

使用Istio简化微服务系列三:如何才能做“金丝雀部署”,并通过Istio增加流量?