2017-07-30 19 views
1

我正在消耗計劃上運行Azure功能應用程序,並且我想監視當前正在運行的實例數量。使用REST API端點格式以編程方式獲取爲函數應用程序運行的實例數量

https://management.azure.com/subscriptions/{subscr}/resourceGroups/{rg} 
     /providers/Microsoft.Web/sites/{appname}/instances?api-version=2015-08-01 

我可以檢索實例。但是,結果與我在Application Insights/Live Metrics Stream中看到的信息不匹配。

例如,現在App Insights顯示4個在線服務器,而API調用僅返回一個(此1實例的GUID也在App Insights GUID中)。

我可以信任誰?是否有更好的方法來獲取實例數量(例如,從App Insights獲取)?

更新:它看起來像來自REST API的數據是錯誤的。

我向隊列發送了10000條消息,每個函數調用都記錄了處理請求的相應實例ID。

雖然消息一直進來並且積壓增長,但REST API中的實例計數似乎是正確的(從1到12)。發送停止後,報告的實例計數迅速下降(最終回到1,而處理器仍然很忙)。

但基於速度和執行日誌,我可以告訴實際實例數量不斷增加,並最終在最後一條消息處理的時刻結束了15個實例。

UPDATE2:它看起來像SDK拒絕報告超過20臺服務器。該公制單位在20,而App Insights保持穩定增長,並已顯示41.

+0

我使用azure性能測試(500users * 10分鐘)發送http請求,然後得到相同的結果(從REST API實例計數似乎是正確的(從1到12縮放)發送停止後,報告的實例數會迅速下降(最終回到1,而處理器仍然很忙)' –

回答

1

我可以信任誰?是否有更好的方法來獲取實例數量(例如,從App Insights獲取)?

根據我的理解,我們需要使用Rest API端點來檢索實例,可以爲多個WebApp配置App Insights,因此App Insights中的在線服務器數量可能會用於多個WebApp。

更新時間:

根據我的測試,應用洞察力的數量可能不是實時

在測試期間,如果WebApp功能擴展,那麼我可以使用Rest API獲取多個實例,並且我還可以在App Insights中檢查在線服務器的數量。

https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroup}/providers/Microsoft.Web/sites/{functionname}/instances?api-version=2016-08-01 

後,我考完試,我能得到與REST API實例的數量是,根據我的理解,這是正確的結果。 與此同時,我在Application Insight中檢查它,在測試期間,在線服務器的最大數量爲

過了一段後,服務器的在線應用程序的洞察力數量也成爲。

所以,如果我們想獲得Azure函數的intance數量,我的建議是使用REST API來做到這一點。

UPDATE2:

按照DavidEbbo提到的REST API並不總是可靠的

不幸的是,REST API並不總是可靠的。具體而言,當功能應用程序跨越多個比例單位時,只會反映「家」比例單位的實例。你可能不會在一個小小的測試中看到這個,但如果你開始廣泛地擴展(比如超過20個實例),可能會出現這種情況。

+0

我只爲一個應用程序配置了App Insights – Mikhail

+0

最好的測試,我發現應用程序洞察中的在線服務器數量可能會不是實時的,我已經更新了答案 –

+0

我對關於實例的情況有同樣的看法,但實際上應用程序的見解顯示其他服務器仍在處理消息,而且我確實看到消息處理速率似乎高於從REST API報告的實例,因此我的問題 – Mikhail

相關問題