You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell解析Prometheus prom格式并转为PowerShell对象?

PowerShell解析Prometheus prom格式响应的简便方法

我一直在寻找如何使用PowerShell解析Prometheus的prom格式响应,将已发布的Windows系统性能指标转换为PowerShell对象。

示例prom格式内容

# HELP CPU_Total Total CPU load in percent of all processors combined.
# TYPE CPU_Total gauge
CPU_Total{Instance="_total"} 1.29915
# HELP Disk_Avg_Bytes_Read Average number of bytes transfered from the disk during read operations.
# TYPE Disk_Avg_Bytes_Read gauge
Disk_Avg_Bytes_Read{Instance="harddiskvolume2"} 0
# HELP Disk_Avg_Bytes_Read Average number of bytes transfered from the disk during read operations.
# TYPE Disk_Avg_Bytes_Read gauge
Disk_Avg_Bytes_Read{Instance="c"} 0
# HELP Disk_Avg_Bytes_Read Average number of bytes transfered from the disk during read operations.
# TYPE Disk_Avg_Bytes_Read gauge
Disk_Avg_Bytes_Read{Instance="_total"} 0
# HELP Disk_Avg_Bytes_Write Average number of bytes transfered to the disk during write operations.
# TYPE Disk_Avg_Bytes_Write gauge
Disk_Avg_Bytes_Write{Instance="harddiskvolume2"} 0
# HELP Disk_Avg_Bytes_Write Average number of bytes transfered to the disk during write operations.
# TYPE Disk_Avg_Bytes_Write gauge
Disk_Avg_Bytes_Write{Instance="c"} 8192
# HELP Disk_Avg_Bytes_Write Average number of bytes transfered to the disk during write operations.
# TYPE Disk_Avg_Bytes_Write gauge
Disk_Avg_Bytes_Write{Instance="_total"} 8192
# HELP Disk_sec_per_Read Average time, in seconds, of a read of data from the disk.
# TYPE Disk_sec_per_Read gauge
Disk_sec_per_Read{Instance="harddiskvolume2"} 0

尝试情况说明

  • 已有Go、C#等语言的解析示例,多基于Google ProtoBuf库,但我不熟悉C#编写,PowerShell调用.NET版ProtoBuf公开方法难度大,还需借助DLL浏览器查找可用调用名称。
  • 尝试用Install-Package安装.NET版ProtoBuf及依赖时,出现如下错误:
    Install-Package: Dependency loop detected for package 'protobuf-net'
    
    但使用choco install protoc可成功安装。
  • Prometheus已不再支持JSON格式,对应的proto文件也不再维护(未来可能恢复维护)。
  • 后续尝试:
    • 转而使用Chocolatey安装相关库
    • 发现ProtoBuf库实际是带有命令行参数的protoc.exe文件
    • 找到Prometheus的ebnf规范
    • 补充了上述prom格式示例内容

请问是否有基于prom文件在PowerShell中构建解析器的简便方法?


内容的提问来源于stack exchange,提问作者Dennis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 14:13:08