首頁>技術>

瞭解應用程式的執行狀況至關重要。如果您的服務不可用,則可能會降低生產力並延誤其他流程。您可以透過多種方式跟蹤應用程式的可用性。AzureMonitor提供了一種收集和分析有關應用程式效能和事件的資訊的方法。AzureMonitor收集諸如度量標準(數字資料)和日誌(由不同型別資料的屬性集合構成的資料)之類的資訊。ApplicationInsights提供資料的視覺化。

AzureMonitor已經收集了有關您新增的服務的一些資訊。此外,它支援從Prometheus收集資訊。Prometheus是CloudNativeComputingFoundation的流行解決方案,用於從應用程式收集指標。

新增ApplicationInsights代理

ApplicationInsights可以監視您的AKS應用程式,而無需對原始碼進行任何更改。要將ApplicationInsights新增到您的應用程式中,請將ApplicationInsights代理新增到您的專案中。

然後,將ApplicationInsights資源新增到您的Azure帳戶。為此,請在portal.azure.com中,在搜尋欄中鍵入“ApplicationInsights”,然後從結果中選擇它。

選擇它之後,您將看到您的ApplicationInsights資源列表。此列表可能為空。要建立新資源,請單擊+建立按鈕。ApplicationInsights提示您選擇資源組併為新資源提供名稱。從選單中選擇一個資源組,然後輸入描述性名稱。然後單擊“審閱+建立”。

ApplicationInsights使用Java代理來捕獲日誌記錄。Java代理是使用Java工具API攔截呼叫的特殊類。這使我們無需修改程式碼即可新增ApplicationInsights支援。下載ApplicationInsightsJAR,並記下儲存它的位置。要將jar新增到專案中,請使用maven命令列工具。

mvn  install:install-file -Dfile=/path-to-downloaded-file/applicationinsights-agent-3.0.2.jar -DartifactId="applicationinsights-agent" -Dpackaging=jar -Dversion="3.0.2" -DgroupId="com.microsoft"12345複製程式碼型別:[java]

另外,新增一個名為applicationsinsights-agent-3.0.2.json的檔案。JSON檔案的內容為:

{"connectionString": "InstrumentationKey=..."}123複製程式碼型別:[java]

在Azure門戶中檢視ApplicationInsight的資源時,會看到要應用於connectionStrings元素的實際值。配置和重新部署應用程式後,ApplicationInsights會自動記錄您的應用程式透過java.util.logging發出的資訊以及來自其他日誌記錄實用程式的資訊。

為應用程式見解檢測應用程式並對其進行部署後,就可以透過Azure門戶檢視該應用程式的指標和日誌記錄。若要開始檢視應用程式的指標,請從Azure門戶中開啟“應用程式見解”。選擇您的應用程式,然後選擇一種度量標準以圖形方式檢視度量。

由於Azure為Java應用程式提供了用於日誌記錄和收集指標的本機支援,因此開始進行日誌記錄無需花費太多精力。Azure收集的一些指標會自動收集。Azure與流行的庫整合在一起,用於管理應用程式中的登入。這包括Log4j,使用Java簡單日誌記錄外觀(SLF4J)的解決方案以及內建的java.util.logging功能。

自定義日誌

您可以配置其他選項以透過應用程式見解配置檔案(applicationinsights-agent-3.0.2.json)進行日誌記錄。預設情況下,ApplicationInsights會捕獲INFO級別或更高級別的所有日誌記錄。如果您只關心標記為WARN或更高級別的日誌記錄,請在配置檔案中使用以下內容進行指定。

{  "instrumentation": {    "logging": {      "level": "WARN"    }  }}1234567複製程式碼型別:[java]

該配置可以為事務指定取樣百分比以降低成本。例如,如果抽樣百分比為20%,則執行的交易的20%會記錄其詳細資訊。在配置中,使用以下元素指定取樣率。

{  "sampling": {    "percentage": 20  }}12345複製程式碼型別:[java]

雖然ApplicationInsights自動收集許多指標,但您使用的Java元件還提供了其他指標。要捕獲這些指標,您必須知道物件的名稱和屬性以獲取要捕獲的其他指標。要查詢此資訊,您可能需要使用其他工具,例如JDKMissionControl。獲得此資訊後,將其新增到配置檔案中名為的元素中jmxMetrics。該元素列出了指定物件名稱,屬性和名稱的物件,這些名稱,屬性和名稱將在ApplicationInsights控制檯中用作標籤。

"jmxMetrics": [      {        "name": "Thread Count",        "objectName": "java.lang:type=Threading",        "attribute": "ThreadCount"      }]1234567複製程式碼型別:[java]

可自定義應用程式日誌記錄的其他幾個方面。您可以從此處閱讀有關配置無程式碼應用程式監視和日誌的更多資訊。

應用擴充套件

您可以使用AzureMonitor來響應需求來擴充套件應用程式。透過根據需求擴充套件,可以最大程度地減少資源使用,而不會影響效能。當應用程式的使用模式不可預測或您不完全瞭解它們時,自動縮放將特別有用。為了擴充套件AzureKubernetes應用程式,“節點池”設定提供了兩個選項。對於手動縮放,請選擇例項化的節點數。對於自動縮放,請選擇最小和最大節點數。AKS自動更改節點數。

Azure在一段時間內會根據平均指標響應擴充套件需求。預設情況下,平均超過45分鐘,但是在CloudShell中,用於Kubernetes的時間是可調整的。

結論

在本系列的下一部分中,我們將研究您的應用程式如何知道其正在使用中。我們還將研究Azure如何透過其服務和免費程式碼庫提供支援以對使用者進行身份驗證。

4
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Azure上的Java:雲原生身份驗證