如何解决helm -- 为 datadog/hazelcast 设置 json 值
我正在尝试设置推送到 datadog 的 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 运行时带有这样的注释
我也尝试过:
- 我在一行中添加了 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
}
感谢任何帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。