Shu*_*oor 6 java rest grafana prometheus prometheus-alertmanager
我是 prometheus 的新手,所以做了一些研究,发现它对于监控应用程序很有帮助,有很多增加计数器来检查 api 调用的例子。我的用例有些不同,我有一个 Rest API,它连接到数据库执行查询并以 JSON 格式返回数据。例如:
{
"dskreads": 26815,
"bufreads": 14451041,
"dskwrites": 52471,
"bufwrites": 569468,
"isamtot": 18439806,
"isopens": 432586,
"isstarts": 408604,
"isreads": 6962799,
"iswrites": 80438,
"isrewrites": 54535,
"isdeletes": 54469,
"iscommits": 61673,
"isrollbacks": 0,
"latchwts": 190,
"buffwts": 192,
"lockreqs": 13921801,
"lockwts": 0,
"ckptwts": 7,
"deadlks": 0,
"lktouts": 0,
"numckpts": 106,
"plgpagewrites": 11106,
"plgwrites": 460,
"llgrecs": 552829,
"llgpagewrites": 49076,
"llgwrites": 43672,
"pagreads": 76446,
"pagwrites": 68495,
"flushes": 107,
"compress": 15039,
"fgwrites": 0,
"lruwrites": 0,
"chunkwrites": 8195,
"btraidx": 1627,
"dpra": 3933,
"rapgs_used": 4755,
"seqscans": 16008,
"totalsorts": 6691,
"memsorts": 4612,
"disksorts": 2079,
"maxsortspace": 224
}
Run Code Online (Sandbox Code Playgroud)
现在我想将我的 API 注册到 Prometheus,以便它不断轮询上述数据并以图形格式显示。
我认为你的意思是,你引用的 JSON 文档是 API 调用的结果,并且你希望它的每个属性(例如dskreads)被 Prometheus 视为一个指标,以便你可以查询|图表这些?
如果是这样,您将需要编写一个导出器:
GET是你的API
解析 JSON 响应
迭代属性
将结果呈现为 HTTP ( /metrics) 页面
从 Prometheus 服务器上抓取此页面
请参阅编写导出器
需要注意的一件事是,Prometheus 期望 Counter 始终递增(并且您可能无法设置初始值,例如,对于名为 也许total_disk_reads(派生自dskreads)的 Counter,您可能无法将 Counter 的值初始化为26815。
出于这个原因,如果您认为需要减少测量值,您可能需要确保您希望使用计数器而不是仪表。查看指标类型
| 归档时间: |
|
| 查看次数: |
3127 次 |
| 最近记录: |