#prometheus #http-api #query #endpoint #data #docs #interact

prometheus-http-api

与Prometheus HTTP API交互的API

1 个不稳定版本

0.2.0 2022年4月27日

#547 in HTTP客户端

Apache-2.0

27KB
424

prometheus-http-api-rs 0.2.0

使用其API从Prometheus拉取数据的简单库

Rust Crates.io Documentation

即将到来的文档 crate文档

使用方法

Cargo.toml 中添加依赖项

[dependencies]
prometheus-http-api = "0.2.0"

使用 prometheus_http_api

use prometheus_http_api::*;

#[tokio::main]
async fn main() {
    let query = Query::Instant(InstantQuery::new("up"));
    let request = DataSourceBuilder::new("localhost:9090")
        .with_query(query)
        .build()
        .unwrap();
    let res_json = request.get().await;
    tracing::info!("{:?}", res_json);
}

许可证

待办事项

将很快解决

  • 缺少回退到POST,某些查询可以增长到GET参数限制。
  • 缺少对Instant的支持,目前我们只支持作为参数的纪元。
  • 查询元数据:/api/v1/series/api/v1/labels /api/v1/label/<label_name>/values
  • 目标状态 /api/v1/targets
  • AlertManagers /api/v1/alertmanagers
  • 状态配置 /api/v1/status/config
  • 状态标志 /api/v1/status/flags
  • 运行时信息 /api/v1/status/runtimeinfo,自Prometheus v2.2起可用
  • 构建信息 /api/v1/status/buildinfo,自Prometheus v2.14起可用
  • TSDB度量 /api/v1/status/tsdb,自Prometheus v2.14起可用
  • WAL重放状态 /api/v1/status/walreplay 自Prometheus v2.15起可用

不稳定的端点

  • 查询示例 /api/v1/query_exemplars (实验性)
  • 规则 /api/v1/rules (没有从Prometheus v1保证稳定性)
  • 警报 /api/v1/alerts (没有从Prometheus v1保证稳定性)
  • 目标元数据 /api/v1/targets/metadata (实验性)
  • 度量元数据 /api/v1/metadata(实验性)

管理端点

自Prometheus v2.18起,需要 -web.enable-admin-api

  • 快照 /api/v1/admin/tsdb/snapshot
  • 删除时间序列 /api/v1/admin/tsdb/delete_series
  • 清理墓碑 /api/v1/admin/tsdb/clean_tombstones

写入端点

需要 --web.enable-remote-write-receiver

  • Prometheus 远程写入协议 /api/v1/write 自 Prometheus v2.33 以来不是推送数据的高效方式。

注意

  • 代码 json::Value 不一定是数字,它可能是一个字符串

JSON 不支持 NaN、Inf 和 -Inf 等特殊浮点值,因此样本值以引用的 JSON 字符串形式传输,而不是原始数字。

依赖关系

~7–18MB
~249K SLoC