文档文档

Prometheus 端点在 InfluxDB 中的支持

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

Prometheus 远程读取和写入 API 支持

注意:Prometheus API 稳定性保证声明,远程读取和远程写入端点是列为实验性或可能会更改的功能,因此对于 2.x 版本被认为是不稳定的。 任何重大更改都将包含在 InfluxDB 发行说明中。

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

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

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

创建目标数据库

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

CREATE DATABASE "prometheus"

配置

要启用 Prometheus 远程读取和写入 API 与 InfluxDB 的使用,请将 URL 值添加到 Prometheus 配置文件 中的以下设置

URL 必须可从您运行的 Prometheus 服务器解析,并使用 InfluxDB 正在运行的端口(默认为 8086)。 还要使用 db= 查询参数包含数据库名称。

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

remote_write:
  - url: "https://127.0.0.1:8086/api/v1/prom/write?db=prometheus"

remote_read:
  - url: "https://127.0.0.1:8086/api/v1/prom/read?db=prometheus"

带有身份验证的读取和写入 URL

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

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

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

在您的 Prometheus 配置文件中包含纯文本密码并不理想。 遗憾的是,Prometheus 配置文件中不支持环境变量和密钥。 有关更多信息,请参阅此 Prometheus 问题

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

Prometheus 指标如何在 InfluxDB 中解析

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

  • Prometheus 指标名称变为 InfluxDB measurement 名称。
  • Prometheus 样本(值)变为 InfluxDB 字段,使用 value 字段键。 它始终是浮点数。
  • 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 数据都进入名为 _ 的单个 measurement,并且 Prometheus measurement 名称存储在 __name__ 标签中。 在 InfluxDB v1.6 或更高版本中,每个 Prometheus measurement 都有其自己的 InfluxDB measurement。

此格式与 Telegraf Prometheus 输入插件 使用的格式不同。


此页是否对您有帮助?

感谢您的反馈!


Flux 的未来

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

阅读更多

InfluxDB 3 开源版本现已公开发布 Alpha 版

InfluxDB 3 开源版本现已可用于 Alpha 测试,根据 MIT 或 Apache 2 许可获得许可。

我们正在发布两个产品作为 Alpha 版的一部分。

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

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