首页

InfluxDB中的Prometheus端点支持

Prometheus 远程读写API 接口支持

注:普罗米修斯【API稳定性保证】(https://Prometheus.io/docs/Prometheus/latest/Stability/) 声明远程读取和远程写入端点是作为实验性功能列出的功能 或者易受变化影响,因此对于2x来说是不稳定的 将包含在InfluxDB发行说明中。

InfluxDB 对 Prometheus 远程读写 API 接口支持增加了一下内容传入数据库的HTTP端点: HTTP endpoints to InfluxDB:

  • /api/v1/prom/read
  • /api/v1/prom/write

此外, 还有一个 /metrics endpoint 配置为以prometheus metrics 格式生成默认的GO metrics

创建目标数据库

在您的Influxdb实例中创建一个数据库,以容纳从Prometheus发送的数据,在下面提供的示例中,prometheus用作数据库名称,但是欢迎你使用任何数据库名称

CREATE DATABASE "prometheus"

配置

要使prometheus远程读写应用程序接口能够与Influxdb数据库一起使用,请将URL添加到prometheus配置文件中的以下设置

这些URL必须可从正在运行的Prometheus服务器上解析,并使用运行InfluxDB的端口(8086默认情况下)。还使用db=查询参数包括数据库名称。

示例:Prometheus配置文件中的端点

remote_write:
  - url: "http://localhost:8086/api/v1/prom/write?db=prometheus"

remote_read:
  - url: "http://localhost:8086/api/v1/prom/read?db=prometheus"

使用身份验证读取和写入URL

如果在 InfluxDB启用了身份验证,请分别使用和参数向具有读和写特权的Influxdb用户传递username和password u= p=

启用身份验证的端点的示例**_
remote_write:
  - url: "http://localhost:8086/api/v1/prom/write?db=prometheus&u=username&p=password"

remote_read:
  - url: "http://localhost:8086/api/v1/prom/read?db=prometheus&u=username&p=password"

在Prometheus配置文件中包含纯文本密码并不理想,不幸的是,prometheus配置文件不支持环境变量和机密,有关更多信息,请参见prometheus问题:

支持配置文件中的环境变量替换

如何在Influxdb中解析Prometheus指标

将Prometheus数据导入Influxdb时,将进行一下转换以匹配Influxdb数据结构

  • Prometheus数据导入Influxdb measurement名称
  • 使用 (value) 字段键,Prometheus示例(值)将成为Influxdb字段,它总是浮点数
  • Prometheus标签成为 InfluxDB tags.
  • 全部 # HELP 和所有 # TYPE行均被忽略
  • [v1.8.6 and later] Prometheus 远程写入端点丢弃不支持的prometheus(NaN,-Inf和+Inf),而不是拒绝整个批次

示例 :将 Prometheus 解析为 InfluxDB

# Prometheus metric
example_metric{queue="0:http://example:8086/api/v1/prom/write?db=prometheus",le="0.005"} 308

# Same metric parsed into InfluxDB
measurement
  example_metric
tags
  queue = "0:http://example:8086/api/v1/prom/write?db=prometheus"
  le = "0.005"
  job = "prometheus"
  instance = "localhost:9090"
  __name__ = "example_metric"
fields
  value = 308

在 InfluxDB v1.5 和更早版本中,所有Prometheus 数据都进入一个名为_ measurement 中,并且Prometheus measurement名称存储在_name_标签中,在Influxdb v1.6或更高版本中.每个Prometheus measurement都有在Influxdb v1.6或更高版本中,每个Prometheus measurement都有其自己的Influxdb Measurement。

此格式不同于 Telegraf Prometheus 输入插件.使用的格式


InfluxDB OSS 2.0 release candidate

InfluxDB OSS v2.0.rc includes breaking changes that require a manual upgrade from all alpha and beta versions. For information, see:

Upgrade to InfluxDB OSS v2.0.rc