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



Reply via email to