了解應(yīng)用程序的運(yùn)行狀況至關(guān)重要。如果您的服務(wù)不可用,則可能會(huì)降低生產(chǎn)力并延誤其他流程。您可以通過(guò)多種方式跟蹤應(yīng)用程序的可用性。AzureMonitor提供了一種收集和分析有關(guān)應(yīng)用程序性能和事件的信息的方法。AzureMonitor收集諸如度量標(biāo)準(zhǔn)(數(shù)字?jǐn)?shù)據(jù))和日志(由不同類型數(shù)據(jù)的屬性集合構(gòu)成的數(shù)據(jù))之類的信息。ApplicationInsights提供數(shù)據(jù)的可視化。 AzureMonitor已經(jīng)收集了有關(guān)您添加的服務(wù)的一些信息。此外,它支持從Prometheus收集信息。Prometheus是CloudNativeComputingFoundation的流行解決方案,用于從應(yīng)用程序收集指標(biāo)。 添加ApplicationInsights代理ApplicationInsights可以監(jiān)視您的AKS應(yīng)用程序,而無(wú)需對(duì)源代碼進(jìn)行任何更改。要將ApplicationInsights添加到您的應(yīng)用程序中,請(qǐng)將ApplicationInsights代理添加到您的項(xiàng)目中。 然后,將ApplicationInsights資源添加到您的Azure帳戶。為此,請(qǐng)?jiān)趐ortal.azure.com中,在搜索欄中鍵入“ApplicationInsights”,然后從結(jié)果中選擇它。 選擇它之后,您將看到您的ApplicationInsights資源列表。此列表可能為空。要?jiǎng)?chuàng)建新資源,請(qǐng)單擊+創(chuàng)建按鈕。ApplicationInsights提示您選擇資源組并為新資源提供名稱。從菜單中選擇一個(gè)資源組,然后輸入描述性名稱。然后單擊“審閱+創(chuàng)建”。 Azure門(mén)戶執(zhí)行驗(yàn)證步驟。驗(yàn)證后,點(diǎn)擊創(chuàng)建。幾秒鐘后,Azure門(mén)戶將創(chuàng)建資源。如果返回到“ApplicationInsights”資源列表,那么您的新資源就在那里。如果選擇它,將顯示其詳細(xì)信息。感興趣的元素是詳細(xì)信息右側(cè)的“連接字符串”。您將需要該信息。 ApplicationInsights使用Java代理來(lái)捕獲日志記錄。Java代理是使用Java工具API攔截調(diào)用的特殊類。這使我們無(wú)需修改代碼即可添加ApplicationInsights支持。下載ApplicationInsightsJAR,并記下保存它的位置。要將jar添加到項(xiàng)目中,請(qǐng)使用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復(fù)制代碼類型:[java] 另外,添加一個(gè)名為applicationsinsights-agent-3.0.2.json的文件。JSON文件的內(nèi)容為: {"connectionString": "InstrumentationKey=..."}123復(fù)制代碼類型:[java] 在Azure門(mén)戶中查看ApplicationInsight的資源時(shí),會(huì)看到要應(yīng)用于connectionStrings元素的實(shí)際值。配置和重新部署應(yīng)用程序后,ApplicationInsights會(huì)自動(dòng)記錄您的應(yīng)用程序通過(guò)java.util.logging發(fā)出的信息以及來(lái)自其他日志記錄實(shí)用程序的信息。 為應(yīng)用程序見(jiàn)解檢測(cè)應(yīng)用程序并對(duì)其進(jìn)行部署后,就可以通過(guò)Azure門(mén)戶查看該應(yīng)用程序的指標(biāo)和日志記錄。若要開(kāi)始查看應(yīng)用程序的指標(biāo),請(qǐng)從Azure門(mén)戶中打開(kāi)“應(yīng)用程序見(jiàn)解”。選擇您的應(yīng)用程序,然后選擇一種度量標(biāo)準(zhǔn)以圖形方式查看度量。 由于Azure為Java應(yīng)用程序提供了用于日志記錄和收集指標(biāo)的本機(jī)支持,因此開(kāi)始進(jìn)行日志記錄無(wú)需花費(fèi)太多精力。Azure收集的一些指標(biāo)會(huì)自動(dòng)收集。Azure與流行的庫(kù)集成在一起,用于管理應(yīng)用程序中的登錄。這包括Log4j,使用Java簡(jiǎn)單日志記錄外觀(SLF4J)的解決方案以及內(nèi)置的java.util.logging功能。 自定義日志您可以配置其他選項(xiàng)以通過(guò)應(yīng)用程序見(jiàn)解配置文件(applicationinsights-agent-3.0.2.json)進(jìn)行日志記錄。默認(rèn)情況下,ApplicationInsights會(huì)捕獲INFO級(jí)別或更高級(jí)別的所有日志記錄。如果您只關(guān)心標(biāo)記為WARN或更高級(jí)別的日志記錄,請(qǐng)?jiān)谂渲梦募惺褂靡韵聝?nèi)容進(jìn)行指定。 { "instrumentation": { "logging": { "level": "WARN" } } }1234567復(fù)制代碼類型:[java] 該配置可以為事務(wù)指定采樣百分比以降低成本。例如,如果抽樣百分比為20%,則執(zhí)行的交易的20%會(huì)記錄其詳細(xì)信息。在配置中,使用以下元素指定采樣率。 { "sampling": { "percentage": 20 } }12345復(fù)制代碼類型:[java] 雖然ApplicationInsights自動(dòng)收集許多指標(biāo),但您使用的Java組件還提供了其他指標(biāo)。要捕獲這些指標(biāo),您必須知道對(duì)象的名稱和屬性以獲取要捕獲的其他指標(biāo)。要查找此信息,您可能需要使用其他工具,例如JDKMissionControl。獲得此信息后,將其添加到配置文件中名為的元素中jmxMetrics。該元素列出了指定對(duì)象名稱,屬性和名稱的對(duì)象,這些名稱,屬性和名稱將在ApplicationInsights控制臺(tái)中用作標(biāo)簽。 "jmxMetrics": [ { "name": "Thread Count", "objectName": "java.lang:type=Threading", "attribute": "ThreadCount" } ]1234567復(fù)制代碼類型:[java] 可自定義應(yīng)用程序日志記錄的其他幾個(gè)方面。您可以從此處閱讀有關(guān)配置無(wú)代碼應(yīng)用程序監(jiān)視和日志的更多信息。 應(yīng)用擴(kuò)展您可以使用AzureMonitor來(lái)響應(yīng)需求來(lái)擴(kuò)展應(yīng)用程序。通過(guò)根據(jù)需求擴(kuò)展,可以最大程度地減少資源使用,而不會(huì)影響性能。當(dāng)應(yīng)用程序的使用模式不可預(yù)測(cè)或您不完全了解它們時(shí),自動(dòng)縮放將特別有用。為了擴(kuò)展AzureKubernetes應(yīng)用程序,“節(jié)點(diǎn)池”設(shè)置提供了兩個(gè)選項(xiàng)。對(duì)于手動(dòng)縮放,請(qǐng)選擇實(shí)例化的節(jié)點(diǎn)數(shù)。對(duì)于自動(dòng)縮放,請(qǐng)選擇最小和最大節(jié)點(diǎn)數(shù)。AKS自動(dòng)更改節(jié)點(diǎn)數(shù)。 Azure在一段時(shí)間內(nèi)會(huì)根據(jù)平均指標(biāo)響應(yīng)擴(kuò)展需求。默認(rèn)情況下,平均超過(guò)45分鐘,但是在CloudShell中,用于Kubernetes的時(shí)間是可調(diào)整的。 結(jié)論在本系列的下一部分中,我們將研究您的應(yīng)用程序如何知道其正在使用中。我們還將研究Azure如何通過(guò)其服務(wù)和免費(fèi)代碼庫(kù)提供支持以對(duì)用戶進(jìn)行身份驗(yàn)證。 |
|
來(lái)自: 碼農(nóng)9527 > 《Java》