在Grafana中基于process标签合并IIS应用池监控时间序列
解决IIS应用池重启后PromQL多时间序列问题
针对IIS应用池重启导致同一池对应多个PromQL时间序列的问题,可通过标签提取+聚合的方式解决:
最终查询语句
max by (app_pool, instance) ( label_replace(windows_process_working_set_bytes{process=~"w3wp_.*", instance="Server"}, "app_pool", "$1", "process", "w3wp_(.*)") )
原理说明
label_replace:从process标签中剥离w3wp_前缀,生成仅包含应用池名称的app_pool标签,统一同一应用池的标识。max by (app_pool, instance):将所有归属同一应用池的序列聚合为一个。由于同一时间点同一应用池只有一个活跃w3wp进程,max会自动选取当前有效的内存数据,旧进程停止上报的历史数据会被自然过滤。
该方案既保留了每个应用池独立的时间序列,又消除了process_id变更带来的图例混乱,适配20+应用池的监控场景。
内容的提问来源于stack exchange,提问作者MMM
相关产品推荐
相关产品推荐

