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

已删除 prometheus-http-api-rs

与Prometheus HTTP API交互的API

0.1.0 2022年4月26日

#83 in #endpoint

Apache-2.0

24KB
433 代码行

prometheus-http-api-rs 0.0.1

一个简单的库,用于通过其API从Prometheus获取数据

Rust Crates.io Documentation

即将推出的文档 crate文档

使用方法

Cargo.toml 中添加依赖项

[dependencies]
prometheus-http-api-rs = "0.0.1"

使用 prometheus_http_api_rs

use prometheus_http_api_rs::*;

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

许可证

待办事项

即将解决

  • 缺少POST的回退,某些查询可能会超过GET参数的限制。
  • 缺少对Instant的支持,目前我们只支持epochs作为参数。
  • 查询元数据:/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 v2.33 开始,Prometheus 远程写入协议 /api/v1/write 不是推送数据的有效方式。

备注

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

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

依赖项

~7–18MB
~245K SLoC