0.1.0 |
|
---|
#83 in #endpoint
24KB
433 代码行
prometheus-http-api-rs 0.0.1
一个简单的库,用于通过其API从Prometheus获取数据
即将推出的文档 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);
}
许可证
- Apache许可证第2版 (LICENSE 或 http://apache.ac.cn/licenses/LICENSE-2.0)
待办事项
即将解决
- 缺少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