PromQL中多指標相乘
PromQL表達式:
0.045 * h9_daily_income{coin="nock"} * h9_pool_price_cny{coin="nock"}
📈 基礎:單指標運算
常數與指標相乘
在PromQL中,常數與指標的乘法是最簡單的運算:
# ? 簡單有效
0.045 * h9_daily_income{coin="nock"}
?? 挑戰:多指標相乘
初次嘗試失敗
# ? 可能顯示 "No data"
0.045 * h9_daily_income{coin="nock"} * h9_pool_price_cny{coin="nock"}
三重乘法 ? 顯示:“No data”
問題根源
問題出現在向量匹配上。PromQL要求參與運算的時間序列必須能夠正確匹配,
問題分析:
- ?
coin
標簽匹配 - ?
instance
標簽不匹配 - ?
job
標簽不匹配
結果:默認匹配失敗,返回空結果。
方案1:on() 明確匹配標簽 ?????
最推薦的解決方案:
0.045 * h9_daily_income{coin="nock"} * on(coin) h9_pool_price_cny{coin="nock"}
工作原理:
on(coin)
告訴PromQL只基于coin
標簽進行匹配- 忽略其他所有標簽的差異
- 確保具有相同
coin
值的序列能夠參與運算