共用方式為


AIS 服務登陸區域加速器的作業管理考慮

本文提供使用 AIS 供應專案時,作業管理和監視的考慮和建議。

本節中的大部分建議適用于 Standard (單一租使用者) 版本的 Logic Apps,其本身是Azure App 服務供應專案的一部分,並共用許多相同的管理功能。

組成 AIS 的許多資源都可以設定為將記錄、遙測和計量資料儲存在 Log Analytics/Application Insights 中,或在自訂儲存體位置中, (這些資源包括儲存體帳戶、事件中樞和其他) 。

我們可以利用這項資訊,將資源的整體健康情況視覺化,並採取適當的管理動作。

定義

  • Azure 監視器記錄 會從受監視的資源收集並組織記錄和效能資料。 Log Analytics 之類的工具接著可以查詢或視覺化此記錄資訊,或讓您在符合特定條件時發出警示。

  • Azure 計量記錄 會從受監視的資源將數值資料收集到時間序列資料庫中。 Application Insights 之類的工具接著可以將此資料視覺化,協助您識別效能和執行時間問題。

  • Log Analytics 是 Azure 監視供應專案,可提供儲存記錄和效能資料的位置、提供機制和語言來查詢這些記錄 (Kusto) ;和 提供根據這些記錄建立警示和儀表板的能力, (其他功能) 。

  • Application Insights 是 Azure 監視供應專案,可提供對受監視資源所發出的效能資料視覺化和警示的能力。

  • Kusto 查詢語言 (KQL) 是針對查詢和格式化資料優化的強大查詢語言。 例如,它是 Log Analytics 的主要查詢語言。

設計考量

  • 請考慮整個監視解決方案:

    • 您需要監視哪些資源?

    • 您要如何追蹤在資源之間流動的訊息?

    • 您將連線到哪些外部系統?

    • 您需要哪種類型的警示?

  • 請思考您需要執行的查詢。 例如,您是否需要知道指定的要求是否花費超過預期? 或者,如果您收到單一錯誤與錯誤叢集?

  • 您需要何種層級的追蹤? 例如,如果訊息來自協力廠商,您需要透過所有相關聯的資源追蹤該訊息嗎?

  • 您需要執行哪些管理工作? 您需要重新提交訊息或檔案嗎?

  • 邏輯應用程式執行歷程記錄預設會儲存在 Azure 儲存體中,但您也可以選擇將計量和記錄檔匯出至其他來源 (,例如 Log Analytics 或外部儲存體帳戶) 。 請考慮如何使用記錄資訊,以及如果您使用集中式記錄存放區。

  • Application Insights 可用來提供應用程式效能監視。 其方式是從組成解決方案的資源收集計量。

  • Log Analytics 可用來查詢記錄和設定警示,讓您查看資源的健康情況,並瞭解可能發生的問題。 記錄資料可以包含自訂屬性 (請參閱下方的 追蹤屬性) 。

  • 如需 App Services 特有的更多考慮和建議,請參閱App Service登陸區域加速器管理一文

設計建議

  • 設定 Application Insights ,讓它使用 Log Analytics 工作區作為資料來源, (稱為 工作區型資源) 。 這麼做可讓記錄和效能資料保留在合併的位置。

  • 設定所有資源的警示,以通知與個別資源或工作負載相關的適當事件小組。

  • 如果支援,請將解決方案中的資源連結至 Application Insights。 例如,邏輯應用程式可以連結至 Application Insights,讓執行時間資料和計量可供查詢。 如需 範例,請參閱這裡

  • 使用 Logic Apps 的 clientTrackingId 功能來提供自訂追蹤識別碼,讓您能夠跨邏輯應用程式執行相互關聯事件。 您可以使用 x-ms-client-tracking-id 標頭,透過要求、HTTP 或 HTTP+WebHook 觸發程式來達成此結果。

  • 使用 Logic Apps 的 [追蹤屬性] 功能,將其他資料記錄 (動作的輸入或輸出) 記錄檔中。 然後使用 KQL 搭配 Log Analytics 或其他解決方案查詢記錄時,可以使用這些屬性。

  • 請考慮使用資源標籤。 資源標籤可協助您管理和組織 Azure 上的資源。 您可以使用它們將中繼資料指派給資源。 您可以針對各種用途使用此中繼資料,例如依應用程式或業務單位分類資源、追蹤資源的成本,以及識別資源以符合規範。

範例 Kusto 查詢

下列查詢顯示如何查詢用於 AIS 記錄資料的三個主要資料表。 您可以從邏輯應用程式的 [監視] 區段中的 [記錄] 選項存取這些資料表。

主要查詢資料表包括:

  • exceptions
    此資料表包含資源所記錄的任何例外狀況,例如 Logic App 執行時間擲回的例外狀況。 它可以用來尋找您在入口網站或程式碼執行期間看到之任何問題的基礎原因。

  • requests
    此資料表會將 Logic App 執行時間提出的所有要求記錄到另一個資源,或記錄到工作流程內的特定動作。

  • traces
    下表包含大量 Logic Apps 執行時間記錄、觸發程式執行、工作流程啟動和停止的記錄詳細資料,以及動作執行。 如果您已記錄動作中的任何追蹤屬性,您會在 customDimensions 區 段中找到此資料。 然後,您可以使用查詢中的 extend 子句,將資料新增為查詢回應中的資料行。

發生錯誤的工作流程:

> traces
>
> \| where customDimensions\["Category"\] == "Host.Triggers.Workflows"
>
> \| where customDimensions.LogLevel == "Error"

所有工作流程在過去 24 小時內執行的工作流程數目:

> traces
>
> \| where customDimensions\["Category"\] == "Host.Triggers.Workflows"
>
> \| where customDimensions\["EventName"\] == "WorkflowActionStart"
>
> \| where timestamp \> ago(1d)
>
> \| count

觸發成功率,經過一段時間的圖形化

> traces  
> \| where customDimensions\["Category"\] == "Host.Triggers.Workflows"  
> \| where customDimensions\["EventName"\] == "WorkflowTriggerEnd"  
> \|summarize
>
> success = countif(customDimensions\["prop\_\_status"\] ==
> "Succeeded"),
>
> failures = countif(customDimensions\["prop\_\_status"\] == "Failed")
>
> by bin(timestamp, 1m)  
> \| render timechart

後續步驟

檢閱重要的設計區域,以針對您的架構進行完整的考慮和建議。