4 个版本 (破坏性更新)
新版本 0.4.0 | 2024 年 8 月 9 日 |
---|---|
0.3.0 | 2024 年 6 月 27 日 |
0.2.0 | 2024 年 6 月 15 日 |
0.1.0 | 2024 年 6 月 2 日 |
在 命令行工具 中排名第 166
每月下载量 39 次
81KB
2K SLoC
nu_plugin_prometheus
用于查询 Prometheus 的 nushell 插件
支持
- nushell 0.96.1
- Prometheus API
- 即时查询
- 范围查询
- 目标状态
- 系列
- 标签名称
- 标签值
- 保存源以方便使用或相互 TLS 验证
用法
源
可以使用 --url
直接查询 Prometheus 插件
"up" | prometheus query --source https://test.prometheus.example/
可以使用 nushell 插件配置来保存配置 Prometheus 源,包括 mTLS。
$env.config.plugins.prometheus = {
sources: {
prod: {
url: "https://prod.prometheus.example/"
cert: ( $env.HOME | path join ".config/nu_plugin_prometheus/user.crt" )
key: ( $env.HOME | path join ".config/nu_plugin_prometheus/user.pk8.key" )
cacert: ( $env.HOME | path join ".config/nu_plugin_prometheus/ca.crt" )
}
}
}
密钥必须是 PKCS#8 格式。您可以使用以下命令将 PEM 密钥转换为 PKCS#8 格式:
openssl pkcs8 -topk8 -inform PEM -outform DER -in user.key -out user.pk8.key
使用 --source
或 -s
使用配置的源
"up" | prometheus query --source prod
查询
即时
将 Prometheus 查询管道传递到 prometheus query
以进行即时查询
"up" | prometheus query --url https://prometheus.example:9090/
这将输出一个表格
名称 | 标签 | 值 | 时间戳 |
---|---|---|---|
状态 | {job: prometheus, instance: prometheus.example:9090} | 1 | 1435781451 |
状态 | {job: node, instance: prometheus.example:9100} | 0 | 1435781451 |
范围
范围查询需要 --start
、--end
和 --step
参数
"up" | prometheus query range --url https://prometheus.example:9090/ --start ((date now) - 30sec) --end (date now) --step 15sec
名称 | 标签 | 值 |
---|---|---|
状态 | {job: prometheus, instance: prometheus.example:9090} | [{value: 1, timestamp: 1435781430}, {value: 1, timestamp: 1435781445} {value: 1, timestamp: 1435781460}] |
状态 | {job: node, instance: prometheus.example:9100} | [{value: 0, timestamp: 1435781430}, {value: 0, timestamp: 1435781445} {value: 1, timestamp: 1435781460}] |
展开标签
添加 --flatten
将标签展开到每一行。
"up" | prometheus query --url https://prometheus.example:9090/ --flatten
输出
名称 | 实例 | 任务 | 值 | 时间戳 |
---|---|---|---|---|
状态 | prometheus.example:9090 | prometheus | 1 | 1435781451 |
状态 | prometheus.example:9100 | 任务 | 0 | 1435781451 |
如果度量使用 "name" 作为标签,它将覆盖 "name" 列。
对于范围查询,值不会展开。
标签名称
使用以下方式检索标签名称
prometheus label names --url https://prometheus.example:9090/
标签名称可以通过选择器作为输入进行过滤,并通过 --start
和 --end
作为时间进行过滤。
查询 "up" 标签名称
"up" | prometheus label names --url https://prometheus.example:9090/
标签值
使用以下方式检索标签值
"version" | prometheus label values --url https://prometheus.example:9090/
标签值可以通过名称作为输入进行过滤,通过 --start
和 --end
作为时间进行过滤,并通过额外参数作为选择器进行过滤。
查询 "postgres" 任务的 "version" 标签值
"version" | prometheus label values --url https://prometheus.example:9090/ 'job="postgres"'
度量元数据
使用以下方式检索度量元数据
prometheus metric metadata --url https://prometheus.example:9090/
这可能需要一些时间,因此请提供指标名称作为输入,或者提供 --limit
来减少检索的记录数。使用 --limit-per-metric
来减少每个指标检索的元数据项数。
系列
使用以下命令检索与给定标签集匹配的系列:
[up process_start_time_seconds{job="prometheus"}] |
prometheus series -s home
系列通过输入的选择器检索。检索到的系列可以通过 --start
和 --end
根据时间进行过滤。
目标
使用以下命令检索 Prometheus 目标发现:
prometheus targets --url https://prometheus.example:9090/
这检索了处于活动或已删除状态的目标。使用 any
参数也会检索这两种状态。
使用 active
或 dropped
直接过滤活动或已删除的目标。这将仅输出所选状态。
依赖关系
~30–64MB
~1M SLoC