Prometheus metric parsing formats

Prometheus-formatted metrics are parsed and written to InfluxDB in one of two formats, depending on the scraping tool used:

Scraping tools and parsing format

Scraping tool InfluxDB Metric version
Telegraf Prometheus plugin Determined by metric_version configuration option
InfluxDB scraper 1
Flux prometheus.scrape() 2

Metric version 1

  • _time: timestamp
  • _measurement: Prometheus metric name (_bucket, _sum, and _count are trimmed from histogram and summary metric names)
  • _field: depends on the Prometheus metric type
  • Counter: counter
  • Gauge: gauge
  • Histogram: histogram bucket upper limits, count, sum
  • Summary: summary quantiles, count, sum
  • _value: Prometheus metric value
  • tags: A tag for each Prometheus label (except for histogram bucket upper limits (le) or summary quantiles (quantile)). The label name is the tag key and the label value is the tag value.

Example Prometheus query results

The following are example Prometheus metrics scraped from the InfluxDB OSS 2.x /metrics endpoint:

1. # HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
2. # TYPE go_memstats_alloc_bytes_total counter
3. go_memstats_alloc_bytes_total 1.42276424e+09
4. # HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
5. # TYPE go_memstats_buck_hash_sys_bytes gauge
6. go_memstats_buck_hash_sys_bytes 5.259247e+06
7. # HELP task_executor_run_latency_seconds Records the latency between the time the run was due to run and the time the task started execution, by task type
8. # TYPE task_executor_run_latency_seconds histogram
9. task_executor_run_latency_seconds_bucket{task_type="system",le="0.25"} 4413
10. task_executor_run_latency_seconds_bucket{task_type="system",le="0.5"} 11901
11. task_executor_run_latency_seconds_bucket{task_type="system",le="1"} 12565
12. task_executor_run_latency_seconds_bucket{task_type="system",le="2.5"} 12823
13. task_executor_run_latency_seconds_bucket{task_type="system",le="5"} 12844
14. task_executor_run_latency_seconds_bucket{task_type="system",le="10"} 12864
15. task_executor_run_latency_seconds_bucket{task_type="system",le="+Inf"} 74429
16. task_executor_run_latency_seconds_sum{task_type="system"} 4.256783538679698e+11
17. task_executor_run_latency_seconds_count{task_type="system"} 74429
18. # HELP task_executor_run_duration The duration in seconds between a run starting and finishing.
19. # TYPE task_executor_run_duration summary
20. task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.5"} 5.178160855
21. task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.9"} 5.178160855
22. task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.99"} 5.178160855
23. task_executor_run_duration_sum{taskID="00xx0Xx0xx00XX0x0",task_type="threshold"} 2121.9758301650004
24. task_executor_run_duration_count{taskID="00xx0Xx0xx00XX0x0",task_type="threshold"} 570

Resulting line protocol

1. go_memstats_alloc_bytes_total counter=1.42276424e+09
2. go_memstats_buck_hash_sys_bytes gauge=5.259247e+06
3. task_executor_run_latency_seconds,task_type=system 0.25=4413,0.5=11901,1=12565,2.5=12823,5=12844,10=12864,+Inf=74429,sum=4.256783538679698e+11,count=74429
4. task_executor_run_duration,taskID=00xx0Xx0xx00XX0x0,task_type=threshold 0.5=5.178160855,0.9=5.178160855,0.99=5.178160855,sum=2121.9758301650004,count=570

View version 1 tables when queried from InfluxDB

_time _measurement _field _value
2021-01-01T00:00:00Z go_memstats_alloc_bytes_total counter 1422764240.0
_time _measurement _field _value
2021-01-01T00:00:00Z go_memstats_buck_hash_sys_bytes gauge 5259247.0
_time _measurement task_type _field _value
2021-01-01T00:00:00Z task_executor_run_latency_seconds system 0.25 4413.0
_time _measurement task_type _field _value
2021-01-01T00:00:00Z task_executor_run_latency_seconds system 0.5 11901.0
_time _measurement task_type _field _value
2021-01-01T00:00:00Z task_executor_run_latency_seconds system 1 12565.0
_time _measurement task_type _field _value
2021-01-01T00:00:00Z task_executor_run_latency_seconds system 2.5 12823.0
_time _measurement task_type _field _value
2021-01-01T00:00:00Z task_executor_run_latency_seconds system 5 12844.0
_time _measurement task_type _field _value
2021-01-01T00:00:00Z task_executor_run_latency_seconds system +Inf 74429.0
_time _measurement task_type _field _value
2021-01-01T00:00:00Z task_executor_run_latency_seconds system sum 425678353867.9698
_time _measurement task_type _field _value
2021-01-01T00:00:00Z task_executor_run_latency_seconds system count 74429.0
_time _measurement task_type _field _value
2021-01-01T00:00:00Z task_executor_run_duration threshold 0.5 5.178160855
_time _measurement task_type _field _value
2021-01-01T00:00:00Z task_executor_run_duration threshold 0.9 5.178160855
_time _measurement task_type _field _value
2021-01-01T00:00:00Z task_executor_run_duration threshold 0.99 5.178160855
_time _measurement task_type _field _value
2021-01-01T00:00:00Z task_executor_run_duration threshold sum 2121.9758301650004
_time _measurement task_type _field _value
2021-01-01T00:00:00Z task_executor_run_duration threshold count 570.0

Metrics version 2

Example Prometheus query results

The following are example Prometheus metrics scraped from the InfluxDB OSS 2.x /metrics endpoint:

1. # HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
2. # TYPE go_memstats_alloc_bytes_total counter
3. go_memstats_alloc_bytes_total 1.42276424e+09
4. # HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
5. # TYPE go_memstats_buck_hash_sys_bytes gauge
6. go_memstats_buck_hash_sys_bytes 5.259247e+06
7. # HELP task_executor_run_latency_seconds Records the latency between the time the run was due to run and the time the task started execution, by task type
8. # TYPE task_executor_run_latency_seconds histogram
9. task_executor_run_latency_seconds_bucket{task_type="system",le="0.25"} 4413
10. task_executor_run_latency_seconds_bucket{task_type="system",le="0.5"} 11901
11. task_executor_run_latency_seconds_bucket{task_type="system",le="1"} 12565
12. task_executor_run_latency_seconds_bucket{task_type="system",le="2.5"} 12823
13. task_executor_run_latency_seconds_bucket{task_type="system",le="5"} 12844
14. task_executor_run_latency_seconds_bucket{task_type="system",le="10"} 12864
15. task_executor_run_latency_seconds_bucket{task_type="system",le="+Inf"} 74429
16. task_executor_run_latency_seconds_sum{task_type="system"} 4.256783538679698e+11
17. task_executor_run_latency_seconds_count{task_type="system"} 74429
18. # HELP task_executor_run_duration The duration in seconds between a run starting and finishing.
19. # TYPE task_executor_run_duration summary
20. task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.5"} 5.178160855
21. task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.9"} 5.178160855
22. task_executor_run_duration{taskID="00xx0Xx0xx00XX0x0",task_type="threshold",quantile="0.99"} 5.178160855
23. task_executor_run_duration_sum{taskID="00xx0Xx0xx00XX0x0",task_type="threshold"} 2121.9758301650004
24. task_executor_run_duration_count{taskID="00xx0Xx0xx00XX0x0",task_type="threshold"} 570

Resulting line protocol

1. prometheus,url=http://localhost:8086/metrics go_memstats_alloc_bytes_total=1.42276424e+09
2. prometheus,url=http://localhost:8086/metrics go_memstats_buck_hash_sys_bytes=5.259247e+06
3. prometheus,url=http://localhost:8086/metrics,task_type=system,le=0.25 task_executor_run_latency_seconds=4413
4. prometheus,url=http://localhost:8086/metrics,task_type=system,le=0.5 task_executor_run_latency_seconds=11901
5. prometheus,url=http://localhost:8086/metrics,task_type=system,le=1 task_executor_run_latency_seconds=12565
6. prometheus,url=http://localhost:8086/metrics,task_type=system,le=2.5 task_executor_run_latency_seconds=12823
7. prometheus,url=http://localhost:8086/metrics,task_type=system,le=5 task_executor_run_latency_seconds=12844
8. prometheus,url=http://localhost:8086/metrics,task_type=system,le=10 task_executor_run_latency_seconds=12864
9. prometheus,url=http://localhost:8086/metrics,task_type=system,le=+Inf task_executor_run_latency_seconds=74429
10. prometheus,url=http://localhost:8086/metrics,task_type=system task_executor_run_latency_seconds_sum=4.256783538679698e+11
11. prometheus,url=http://localhost:8086/metrics,task_type=system task_executor_run_latency_seconds_count=74429
12. prometheus,url=http://localhost:8086/metrics,taskID=00xx0Xx0xx00XX0x0,task_type=threshold quantile=0.5 task_executor_run_duration=5.178160855
13. prometheus,url=http://localhost:8086/metrics,taskID=00xx0Xx0xx00XX0x0,task_type=threshold quantile=0.9 task_executor_run_duration=5.178160855
14. prometheus,url=http://localhost:8086/metrics,taskID=00xx0Xx0xx00XX0x0,task_type=threshold quantile=0.99 task_executor_run_duration=5.178160855
15. prometheus,url=http://localhost:8086/metrics,taskID=00xx0Xx0xx00XX0x0,task_type=threshold task_executor_run_duration_sum=2121.9758301650004
16. prometheus,url=http://localhost:8086/metrics,taskID=00xx0Xx0xx00XX0x0,task_type=threshold task_executor_run_duration_count=570

View version 2 tables when queried from InfluxDB

_time _measurement url _field _value
2021-01-01T00:00:00Z prometheus <http://localhost:8086/metrics> go_memstats_alloc_bytes_total 1422764240.0
_time _measurement url _field _value
2021-01-01T00:00:00Z prometheus <http://localhost:8086/metrics> go_memstats_buck_hash_sys_bytes 5259247.0
_time _measurement task_type url le _field _value
2021-01-01T00:00:00Z prometheus system <http://localhost:8086/metrics> 0.25 task_executor_run_latency_seconds 4413
_time _measurement task_type url le _field _value
2021-01-01T00:00:00Z prometheus system <http://localhost:8086/metrics> 0.5 task_executor_run_latency_seconds 11901
_time _measurement task_type url le _field _value
2021-01-01T00:00:00Z prometheus system <http://localhost:8086/metrics> 1 task_executor_run_latency_seconds 12565
_time _measurement task_type url le _field _value
2021-01-01T00:00:00Z prometheus system <http://localhost:8086/metrics> 2.5 task_executor_run_latency_seconds 12823
_time _measurement task_type url le _field _value
2021-01-01T00:00:00Z prometheus system <http://localhost:8086/metrics> 5 task_executor_run_latency_seconds 12844
_time _measurement task_type url le _field _value
2021-01-01T00:00:00Z prometheus system <http://localhost:8086/metrics> +Inf task_executor_run_latency_seconds 74429
_time _measurement task_type url _field _value
2021-01-01T00:00:00Z prometheus system <http://localhost:8086/metrics> task_executor_run_latency_seconds_sum 425678353867.9698
_time _measurement task_type url _field _value
2021-01-01T00:00:00Z prometheus system <http://localhost:8086/metrics> task_executor_run_latency_seconds_count 74429
_time _measurement task_type taskID url quantile _field _value
2021-01-01T00:00:00Z prometheus threshold 00xx0Xx0xx00XX0x0 <http://localhost:8086/metrics> 0.5 task_executor_run_duration 5.178160855
_time _measurement task_type taskID url quantile _field _value
2021-01-01T00:00:00Z prometheus threshold 00xx0Xx0xx00XX0x0 <http://localhost:8086/metrics> 0.9 task_executor_run_duration 5.178160855
_time _measurement task_type taskID url quantile _field _value
2021-01-01T00:00:00Z prometheus threshold 00xx0Xx0xx00XX0x0 <http://localhost:8086/metrics> 0.99 task_executor_run_duration 5.178160855
_time _measurement task_type taskID url _field _value
2021-01-01T00:00:00Z prometheus threshold 00xx0Xx0xx00XX0x0 <http://localhost:8086/metrics> task_executor_run_duration_sum 2121.9758301650004
_time _measurement task_type taskID url _field _value
2021-01-01T00:00:00Z prometheus threshold 00xx0Xx0xx00XX0x0 <http://localhost:8086/metrics> task_executor_run_duration_count 570

prometheus