1 个不稳定版本
0.2.0 | 2022年4月27日 |
---|
#547 in HTTP客户端
27KB
424 行
prometheus-http-api-rs 0.2.0
使用其API从Prometheus拉取数据的简单库
即将到来的文档 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);
}
许可证
- Apache许可证,版本2.0 (LICENSE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
待办事项
将很快解决
- 缺少回退到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