Essentially, we started with this behavior, and kept it to not break
existing Flink setups.
You can disable the filtering of label values with the
filterLabelValueCharacters setting.
https://ci.apache.org/projects/flink/flink-docs-release-1.11/monitoring/metrics.html#prometheus-orgapacheflinkmetricsprometheusprometheusreporter
||||
On 11/25/2020 9:37 PM, Alexey Trenikhun wrote:
Hello,
I'm trying to expose version string as Prometheus user variable:
runtimeContext.getMetricGroup()
.addGroup("version", "0.0.3-beta.399+gf5b79ac")
.gauge("buildInfo", () -> 0);
the problem that for some reason label value
0.0.3-beta.399+gf5b79ac is converted into /0_0_3_beta_399_gf5b79ac/
/>curl localhost:9249
/
/.../
/flink_taskmanager_job_task_operator_version_semVer_buildInfo{task_attempt_id="d1f0f53ebc6d9f7c5b41dcab30efe135",host="10_244_116_231",task_attempt_num="0",tm_id="a0ec013e8100604e2a588d62edac2bfd",job_id="00000000000000000000000000000000",task_id="c9977249e16bca0a7d11687f82be62a2",version="0_0_3_beta_399_gf5b79ac",operator_id="c9977249e16bca0a7d11687f82be62a2",operator_name="Transform",task_name="Transform",job_name="job1",subtask_index="0",}
0.0/
I understand "normalization" for label names, but why for label
values, according to [1]: "/Label values may contain any Unicode
characters./"?
Thanks,
Alexey
P.S. [1] -
https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels
Data model | Prometheus
<https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels>
Prometheus fundamentally stores all data as time series: streams of
timestamped values belonging to the same metric and the same set of
labeled dimensions.Besides stored time series, Prometheus may generate
temporary derived time series as the result of queries.
prometheus.io