问题描述
我正在以这种方式在我的指标导出器中创建标签:
metrics:
export:
elastic:
host: "xx"
index: "metricbeat-k8s-apps"
user-name: "elastic"
password: "xx"
step: 30s
connect-timeout: 10s
tags:
cluster: ${CLUSTER}
kubernetes.pod.name: ${POD_NAME}
kubernetes.namespace: ${POD_NAMESPACE}
但是我不知道为什么“kubernetes.pod.name”会被转换成“kubernetes_pod_name”,我该如何保留这些点?
解决方法
Micrometer中的单词分隔符是'dot'(),根据see docs,Elastic中的单词分隔符是'underscore'。在 Micrometer 中,每个注册表都有一个 NamingConvention
。对于 Elastic,它是 Elastic naming conventions。
因为您可以在该类中使用 ElasticNamingConvention
,所以默认命名约定是 snake_case
:
public ElasticNamingConvention() {
this(NamingConvention.snakeCase);
}
您可以看到如何ElasticMeterRegistry
see,但您可以提供自己的,请uses this naming convention。