2017-06-06 117 views
4

我已經使用Prometheus,Grafana和cAdvisor設置了碼頭監控堆棧。使用此查詢來獲得運行容器時:Prometheus cAdvisor碼頭監控

count_scalar(container_last_seen{name=~container1|container2}) 

它拿起容器好嗎,只要我啓動一個新的容器,它立即被拾起。問題是當一個容器被停止或移除時,它並沒有拿起它,它仍然顯示它是一個正在運行的容器。

從cAdvisor /指標端點作爲容器停止它被立即刪除。

有什麼錯查詢?

(這是我使用的堆棧:https://github.com/vegasbrianc/prometheus

回答

3

這似乎是有關amount of time cAdvisor stores the data in memory

雖然cAdvisor保存在內存中的數據,你仍然有一個有效日期container_last_seen指標。所以count_scalar指令仍然'看到'容器,因爲它有一個有效值。

在我的測試設置,cAdvisor在5分鐘內保持數據。在這段時間後,我會從您的公式中獲得正確的信息,因爲container_last_seen指標已經消失。

你可以用--storage_duration標誌更改此cAdvisor配置。

--storage_duration=2m0s: How long to store data. 

作爲替代如果你wan't快報警,你也可以考慮運行一個查詢,將最後一次看到日期與當前日期比較:

count_scalar(time()-container_last_seen{name=~"container1|container2"}<=60)