2017-07-18 29 views
1

我使用Prometheus Java Client導出應用程序的會話信息。我們想要顯示會話有多久閒置。如何刪除不再有效的量表

問題是我們最多有1000個會話,並且會話在一段時間後被刪除。不幸的是,他們不從普羅米修斯消失:

Current and expired sessions

我的代碼如下所示:

static final Gauge sessionInactivity = Gauge.build() 
    .name("sessions_inactivity_duration") 
    .labelNames("internal_key", "external_key", "browser") 
    .help("Number of milliseconds a certain session has been inactive") 
    .register(); 

sessionInactivity.labels(internalKey, externalKey, browser).set(inactivityTime); 

我試圖擦傷期間做sessionInactivity.clear()但顯然這並不清空規的內容。

回答

3

這種按請求處理不適合像普羅米修斯這樣的公制系統。這將被視爲分析,爲此,更多的習慣將被處理。

也建議導出這種事情的時間戳,而不是多久以前。這對更新時間不再更新的東西具有彈性,並且您可以在Prometheus端執行time()的減法。

+0

瞭解,但是沒有概念去除儀表?我還有另一個場景,我需要收集瀏覽器的統計數據,我將使用標籤來表示。我寧願不必將它們設置爲零。 – Marged

+0

有一種方法,但它只是爲了統一。這也是普羅米修斯不適合的用例,因爲事件記錄需要類似ELK堆棧的東西。 –

+0

我仍然試圖弄清楚我的其他場景是否適合普羅米修斯。我清楚瞭解時間戳部分,我會改變這一點。你能告訴我爲什麼我的會議方法不適合Prometheus的一些(更多)具體原因?是否因爲可能的'internal_key'數量龐大,會進入數千個,但一次不能超過1000個會話?我可以爲我的第二種情況創建另一個問題,如果你喜歡這只是給我一個標誌 – Marged