2015-08-28 100 views
3

我需要一些幫助來爲自定義應用程序洞察度量標準找到一個很好的模式。Azure應用程序洞察自定義響應度量標準

環境

我有一個自定義Windows服務在多個Azure的虛擬機上運行。 我可以成功將Events添加到Azure上的Monitoring實例。

目標

我想創建一個自定義的指標,讓我來監控,如果我的窗口服務正在運行並且每個實例響應。如果它像網站指標中的響應超時一樣,那將是完美的。 每個服務實例有一個自定義maschine相關標識,如:

TelemetryClient telemetry = new TelemetryClient(); 
telemetry.Context.Device.Id = FingerPrint.Instance; 

現在我wnat如果我的服務實例(Context.Device.Id)的一個不運行或響應創建警報。

enter image description here

問題

如何實現這一目標? 它是可能的或有用的監視一個服務類型的多個實例的應用程序見解?或者我必須爲每個實例打開一個應用程序洞察力? 任何人都可以幫助我嗎?

迴應保羅的answere

軌道公制使用TrackMetric發送未連接到特定事件指標。例如,您可以定期監視隊列長度。

如果我這樣做,如果我的服務器重新啓動(更新或somethink)和我的服務不啓動最新情況。現在該服務沒有嚮應用程序洞察發送TrackMetric,並且沒有發出警報,因爲該值不低於1,但服務仍未運行。

問候斯特芬

回答

4

我發現了一個很好的工作解決方案,只需幾個簡單的步驟。

1)實現用簡單的文本響應一個服務端口(例如8181上的HttpListener實例) 「200:OK」

2)添加匹配端點到天青VM imstande

3)的「myVM.cloudapp.net:8181」與響應文本的檢查創建一個默認的Web測試

工作的高度,到目前爲止,我所有的需求相匹配! :)

3

每在Azure門戶的文檔:

https://azure.microsoft.com/en-us/documentation/articles/app-insights-api-custom-events-metrics/#track-metric

軌道公制 使用TrackMetric發送未連接到特定事件指標。例如,您可以定期監視隊列長度。

度量標準在公制瀏覽器中顯示爲統計圖表,但與事件不同,您不能在診斷搜索中搜索單個事件。

度量值應該> = 0才能正確顯示。

C#代碼看起來像這樣

private void Run() { 
var appInsights = new TelemetryClient(); 
while (true) { 
    Thread.Sleep(60000); 
    appInsights.TrackMetric("Queue", queue.Length); 
} 
} 
+0

謝謝你answere,保羅!我提出了更精確的問題。我想用一個Application Insight來觀察多個實例。不知道是否有可能!? –

2

我不認爲這是目前做到這一點的好辦法。你真正想要的是一種檢測「陳舊心跳」的方法。例如,如果您的服務發送了一個「服務健康狀況良好」的事件,則您需要提醒您在一段時間內沒有收到這些事件之一。 AI警報系統中沒有任何日期/時間條件操作符。

微軟可能會解釋說這種情況並不打算由AI來滿足,因爲這更像是一種「健康檢查」系統的責任,比如SCOM或Operation Insights或其他什麼。

我同意這是需要一個解決方案,並使用AI爲它將是美好的(我已經嘗試完成同樣的事情,沒有運氣);我只是認爲「他們」會說它不是人工智能責任領域的情景。

+0

但有一些系統像網站或服務器的響應測試。微軟必須輕鬆地發佈一些自定義反應測試模式。 –