微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

helm -- 为 datadog/hazelcast 设置 json 值

如何解决helm -- 为 datadog/hazelcast 设置 json 值

我正在尝试设置推送到 datadog 的 Hazelcast 指标。我遵循以下文件

DD for HazelCast

这就是我所做的:

  • 我为hazelcast 设置了values.yaml - 我从第一个链接复制注释并添加到 values.yaml
  • 之后 helm install my-hazelcast -f values.yaml 我看到了指标。

现在,我必须在我的组织中的 ci 管道中做同样的事情。所以我必须在 --set

中传递这些注释
        ad.datadoghq.com/test-hz.check_names: |
                        ["openmetrics"]
        ad.datadoghq.com/test-hz.init_configs: |
                        [{}]
        ad.datadoghq.com/test-hz.instances: |
            [
              {
                "prometheus_url": "http://%%host%%:8080/metrics ","namespace": "my_namespace","metrics": ["*"]
              }
            ]        

你可以看到它有点复杂:

helm upgrade --install test-hz hazelcast/hazelcast                                                      \
-f values.yaml                                                                                      \
--set annotations."ad\.datadoghq\.com/test-hz\.check_names=[\"openmetrics\"]"     \
--set annotations."ad\.datadoghq\.com/test-hz\.init_configs=[{}]"                 \
--set metrics.enable=true \
--set metrics.service.port=8080 \
--set image.repository=artifactory.a-us-common.wfk8s.com/docker/hazelcast/hazelcast           \
--set annotations."ad\.datadoghq\.com/test-hz\.instances=| 
    [ 
        { 
            \"prometheus_url\": \"http://%%host%%:8080/metrics \"\,\"namespace\": \"my-namespace\"\,\"metrics\": [\"*\"] 
        } 
    ]"

显示 pod 运行时带有这样的注释

enter image description here

我也尝试过:

  • 我在一行中添加了 json
  • 逃逸管道
  • 不带管道

我看到 pod 正在运行,但在 Datadog 中没有指标。我 99% 肯定 json 把事情搞砸了。

我也试过 jq。

helm upgrade --install test-hz hazelcast/hazelcast                                                      \
-f values.yaml                                                                                      \
--set annotations."ad\.datadoghq\.com/test-hz\.check_names=[\"openmetrics\"]"     \
--set annotations."ad\.datadoghq\.com/test-hz\.init_configs=[{}]"                 \
--set metrics.enable=true \
--set metrics.service.port=8080 \
--set image.repository=artifactory.a-us-common.wfk8s.com/docker/hazelcast/hazelcast           \
--set annotations."ad\.datadoghq\.com/test-hz\.instances=|$(jq -ner $myvar | helm_set_escape)"

哪里,

myvar='[{                                                                                                                                                                          
   "prometheus_url": "http://%%host%%:8080/metrics","namespace": "gvp-hazelcast-test","metrics": ["*"] 
 }]'

helm_set_escape(){
  sed -E 's|([}{,])|\\\1|g' /dev/stdin
}

我得到了

enter image description here

感谢任何帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。