Documentation

InfluxDB中的Prometheus端点支持

此页面记录了 InfluxDB OSS 的早期版本。InfluxDB OSS v2 是最新的稳定版本。请参阅 InfluxDB v2 文档

Prometheus 远程读取和写入 API 支持

注意:Prometheus API稳定性保证指出,远程读取和远程写入端点被列为实验性特性或可能会发生变化,因此在2.x中被视为不稳定。任何破坏性更改将包含在InfluxDB发布说明中。

InfluxDB对Prometheus远程读取和写入API的支持增加了以下HTTP端点到InfluxDB:

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

此外,还有一个 /metrics 端点 被配置为以 Prometheus 指标格式生成默认的 Go 指标。

创建目标数据库

在您的 InfluxDB 实例中创建一个数据库,以存储来自 Prometheus 发送的数据。 在下面提供的示例中,prometheus 被用作数据库名称,但 您可以使用您喜欢的任何数据库名称。

CREATE DATABASE "prometheus"

配置

为了启用与InfluxDB的Prometheus远程读取和写入API,请在Prometheus配置文件中添加以下设置的URL值:

这些 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"

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

如果 在 InfluxDB 上启用了认证,请使用 u=p= 查询参数分别传递具有读写权限的 InfluxDB 用户的 usernamepassword

启用身份验证的端点示例**_
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问题:

支持在配置文件中进行环境变量替换

Prometheus指标在InfluxDB中的解析方式

当Prometheus数据被导入InfluxDB时,进行以下转换以匹配InfluxDB数据结构:

  • Prometheus 的指标名称成为 InfluxDB 测量 名称。
  • Prometheus 示例 (value) 通过 value 字段键变成 InfluxDB 字段。它始终是一个浮点数。
  • Prometheus 标签变为 InfluxDB 标签。
  • 所有 # HELP# TYPE 行都会被忽略。
  • [v1.8.6 及以后版本] 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 数据都进入一个名为 _ 的单一测量,Prometheus 测量名称存储在 __name__ 标签中。 在 InfluxDB v1.6 或更高版本中,每个 Prometheus 测量都有自己的 InfluxDB 测量。

此格式与Telegraf Prometheus input plugin使用的格式不同。



Flux的未来

Flux 正在进入维护模式。您可以像现在一样继续使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: