閱讀英文

共用方式為


應用程式對應:對分散式應用程式進行分級

開發人員使用應用程式對應來代表分散式應用程式的邏輯結構。 對應是藉由識別個別應用程式元件 (使用個別應用程式元件在已記錄遙測中的 roleNamename 屬性) 來產生。 對應上的圓形 (或節點) 代表元件和方向線 (連接器邊緣) 顯示從來源節點到目標節點的 HTTP 呼叫。

Azure 監視器提供應用程式對應功能,協助您快速實作對應,並找出所有元件上的效能瓶頸或失敗熱點。 每個對應節點是應用程式元件或其相依性;並提供健康情況 KPI 與警示狀態。 您可以選取任何節點以查看元件的詳細診斷,例如 Application Insights 事件。 如果您的應用程式使用 Azure 服務,您也可以選取 Azure 診斷,例如 SQL 資料庫建議程式的建議。

應用程式對應也提供智慧型檢視,以協助快速進行服務健康情況調查。

了解元件

元件是分散式或微服務應用程式中可獨立部署的組件。 開發人員和作業小組可在程式碼層級查看或存取這些應用程式元件所產生的遙測。

元件的一些相關考量:

  • 元件不同於小組或組織可能無法存取 (程式碼或遙測資料) 的「已觀察」外部相依性,例如 Azure SQL 和 Azure 事件中樞。
  • 元件能在任何數量的伺服器、角色或容器執行個體上執行。
  • 元件可以是個別的 Application Insights 資源,即使訂用帳戶不同也一樣。 其也可以是向單一 Application Insights 資源報告的不同角色。 預覽對應體驗會顯示元件,不論其設定方式為何。

探索應用程式對應

應用程式對應可讓您查看跨相關應用程式元件多個層級的完整應用程式拓撲。 如先前所述,元件可以是不同的 Application Insights 資源、不同的元件,或是單一資源中的不同角色。 應用程式對應會尋找元件,方法是遵循已安裝 Application Insights SDK 之伺服器之間所發出的 HTTP 相依性呼叫。

對應體驗會從應用程式內的元件與其相依性的漸進式探索開始。 首次載入應用程式對應時會觸發一組查詢,以探索與主要元件相關的元件。 探索元件時,狀態列會顯示目前已探索到的元件數目:

顯示 Azure 入口網站中應用程式對應初始載入的螢幕擷取畫面。

下列各節說明一些可在 Azure 入口網站中使用應用程式對應的動作。

更新對應元件

更新對應元件選項會觸發元件的探索,並重新整理對應以顯示所有目前的節點。 視應用程式的複雜度而定,此更新可能需要一些時間載入:

顯示如何在應用程式對應中更新目前元件的螢幕擷取畫面。

當所有應用程式元件都是單一 Application Insights 資源內的角色時,不需要探索步驟。 此應用程式案例中的初始載入會探索所有元件。

檢視元件詳細資料。

應用程式對應體驗的主要目標是協助您將具有數百個元件的複雜拓撲視覺化。 在此案例中,使用檢視詳細資料選項增強具有個別節點詳細資料的對應檢視很有用。 節點詳細資料窗格會顯示所選元件的相關深入解析、效能和失敗分級體驗:

顯示如何在應用程式對應中檢視所選節點詳細資料的螢幕擷取畫面。

每個窗格區段都包含一個選項,可讓您在展開的檢視中查看詳細資訊,包括失敗、效能,以及失敗要求與相依性的詳細資料。

調查失敗

在節點詳細資料窗格中,您可以使用 [調查失敗] 選項來檢視元件的所有失敗:

顯示如何在節點詳細資料窗格中選取 [調查失敗] 選項的螢幕擷取畫面。

[失敗] 檢視可讓您探索與所選元件相關的作業、相依性、例外狀況與角色的失敗資料:

顯示所選元件的 [失敗] 檢視的螢幕擷取畫面。

調查效能

在節點詳細資料窗格中,您可以選取 [調查效能] 選項,針對元件的效能問題進行疑難排解:

顯示如何在節點詳細資料窗格中選取 [調查效能] 選項的螢幕擷取畫面。

[效能] 檢視可讓您探索與所選元件連線之作業、相依性與角色的遙測資料:

顯示所選元件的 [效能] 檢視的螢幕擷取畫面。

移至詳細資料和堆疊追蹤

節點詳細資料窗格中的 [移至詳細資料] 選項會顯示元件的端對端交易體驗。 此窗格可讓您檢視呼叫堆疊層級的詳細資料:

顯示如何在節點詳細資料窗格中選取 [移至詳細資料] 選項的螢幕擷取畫面。

頁面隨即開啟,以顯示詳細資料的 [時間軸] 檢視:

顯示所選元件的 [詳細資料] 檢視的螢幕擷取畫面。

您可以使用 [檢視全部] 選項,查看具有元件追蹤與事件資訊的堆疊詳細資料:

顯示所選元件的 [所有追蹤與事件] 檢視的螢幕擷取畫面。

檢視記錄 (Analytics)

在節點詳細資料窗格中,您可以使用 [在記錄中檢視 (Analytics)] 選項,進一步查詢及調查應用程式資料:

顯示如何在節點詳細資料窗格中選取 [在記錄中檢視 (Analytics)] 選項的螢幕擷取畫面。

[記錄 (Analytics)] 頁面提供選項,可讓您使用內建或自訂查詢與函式來探索您的應用程式遙測資料表記錄。 您可以藉由調整格式並儲存和匯出分析來處理資料:

顯示 [記錄] 畫面的螢幕擷取畫面,其中折線圖摘要要求過去 12 小時的平均回應持續時間。

檢視警示與規則

節點詳細資料窗格中的 [檢視警示] 選項可讓您查看作用中警示:

顯示如何在節點詳細資料窗格中選取 [檢視警示] 選項的螢幕擷取畫面。

[警示] 頁面會顯示重大和引發的警示:

顯示所選元件之警示清單的螢幕擷取畫面。

[警示] 頁面上的 [警示規則] 選項會顯示導致觸發警示的底層規則:

顯示為所選元件定義之警示規則清單的螢幕擷取畫面。

了解雲端角色名稱與節點

應用程式對應會使用雲端角色名稱屬性來識別對應上的應用程式元件。 若要探索雲端角色名稱如何搭配元件節點使用,請查看具有多個雲端角色名稱的應用程式對應。

下列範例顯示具有五個元件節點和連至九個相依節點之連接器的 [階層式檢視] 中的對應。 每個節點都有雲端角色名稱。

顯示具有數個節點和不同色彩醒目提示之應用程式對應的螢幕擷取畫面。

應用程式對應針對節點使用不同的色彩、醒目提示和大小,來描述應用程式元件資料與關聯性:

  • 雲端角色名稱表示分散式應用程式的不同層面。 在這裡範例中,部分應用程式角色包括 Contoso Retail CheckFabrikam-Appfabrikam-loadfuncretailfabrikam-37ha6retailapp

  • 節點周圍的虛線藍色圓圈表示最後一個選取的元件。 在此範例中,最後一個選取的元件是 Web 節點。

  • 當您選取節點以查看詳細資料時,純藍色圓圈會醒目提示節點。 在範例中,目前選取的節點是 Contoso Retail Reports

  • 相較於其他節點,遠距離或不相關的元件節點會顯得較小。 這些項目在檢視中會呈現暗色,以醒目提示目前選取元件的效能。

  • 在此範例中,每個雲端角色名稱也會以自己的檢測金鑰來代表不同的唯一 Application Insights 資源。 因為此應用程式的擁有者可以存取那四個不同的 Application Insights 資源,因此應用程式對應可以結合底層關聯性的對應。

調查雲端角色執行個體

當雲端角色名稱在您的 Web 前端某個地方顯示問題,而且您在 Web 前端執行多個負載平衡的伺服器時,使用雲端角色執行個體會很有幫助。 應用程式對應可讓您使用 Kusto 查詢來檢視元件節點的更深入資訊。 您可以調查節點,以檢視特定雲端角色執行個體的詳細資料。 此方法可協助您判斷問題會影響所有 Web 前端伺服器,或只影響特定執行個體

會想要覆寫雲端角色執行個體值的其中一個情況,是當您的應用程式在容器化環境中執行時。 在此案例中,僅知道個別伺服器的相關資訊可能不足以找出特定的問題。

如需如何使用遙測初始設定式覆寫雲端角色名稱屬性的詳細資訊,請參閱新增屬性:ITelemetryInitializer

設定雲端角色名稱雲端角色名稱

應用程式對應會使用雲端角色名稱屬性來識別地圖上的元件。 本節提供手動設定或覆寫雲端角色名稱,以及變更在應用程式對應上顯示之內容的範例。

注意

Application Insights SDK 或代理程式會自動將雲端角色名稱屬性新增至 Azure App Service 環境中的元件發出的遙測。

下列程式碼片段顯示雲端角色與雲端角色執行個體的結構描述定義:

[Description("Name of the role the application is a part of. Maps directly to the role name in Azure.")]
[MaxStringLength("256")]
705: string      CloudRole = "ai.cloud.role";

[Description("Name of the instance where the application is running. Computer name for on-premises, instance name for Azure.")]
[MaxStringLength("256")]
715: string      CloudRoleInstance = "ai.cloud.roleInstance";

針對官方定義

撰寫自訂 TelemetryInitializer

using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.Extensibility;

namespace CustomInitializer.Telemetry
{
    public class MyTelemetryInitializer : ITelemetryInitializer
    {
        public void Initialize(ITelemetry telemetry)
        {
            if (string.IsNullOrEmpty(telemetry.Context.Cloud.RoleName))
            {
                //set custom role name here
                telemetry.Context.Cloud.RoleName = "Custom RoleName";
                telemetry.Context.Cloud.RoleInstance = "Custom RoleInstance";
            }
        }
    }
}

ASP.NET 應用程式:將初始設定式載入至作用中 TelemetryConfiguration

ApplicationInsights.config 檔案中:

    <ApplicationInsights>
      <TelemetryInitializers>
        <!-- Fully qualified type name, assembly name: -->
        <Add Type="CustomInitializer.Telemetry.MyTelemetryInitializer, CustomInitializer"/>
        ...
      </TelemetryInitializers>
    </ApplicationInsights>

ASP.NET Web 應用程式的替代方法是要在程式碼中具現化初始設定式。 下列範例顯示 Global.aspx.cs 檔案中的程式碼:

 using Microsoft.ApplicationInsights.Extensibility;
 using CustomInitializer.Telemetry;

    protected void Application_Start()
    {
        // ...
        TelemetryConfiguration.Active.TelemetryInitializers.Add(new MyTelemetryInitializer());
    }

注意

使用 ApplicationInsights.configTelemetryConfiguration.Active 屬性新增初始設定式不適用於 ASP.NET Core 應用程式。

ASP.NET Core 應用程式:將初始設定式載入至 TelemetryConfiguration

針對 ASP.NET Core 應用程式,若要新增 TelemetryInitializer 執行個體,請將其新增至相依性插入容器。 下列範例顯示此方法。 在 Startup.cs 類別的 ConfigureServices 方法中新增此程式碼。

 using Microsoft.ApplicationInsights.Extensibility;
 using CustomInitializer.Telemetry;
 public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<ITelemetryInitializer, MyTelemetryInitializer>();
}

使用應用程式對應篩選

應用程式對應篩選可協助您減少對應上可見的節點與邊緣數目。 這些篩選可用來減少對應的範圍,並顯示較小且目標更明確的檢視。

篩選的快速方法是使用對應上任何節點的快顯功能表上的 [於此節點上篩選] 選項:

顯示如何在應用程式對應中於所選節點上篩選的螢幕擷取畫面。

您也可以使用 [新增篩選] 選項來建立篩選:

顯示如何在應用程式對應中開啟 [新增篩選] 選項的螢幕擷取畫面。

選取您的篩選類型 (節點或連接器) 與所需的設定,然後檢閱您的選擇,並將其套用至目前的對應。

建立節點篩選

節點篩選可讓您只查看應用程式對應中的特定節點,並隱藏所有其他節點。 您可以設定參數來搜尋對應中節點的屬性,以尋找符合條件的值。 當節點篩選移除節點時,篩選也會移除該節點的所有連接器與邊緣。

節點篩選有三個要設定的參數:

  • 包含的節點:要在應用程式對應中檢閱是否有相符屬性的節點類型。 有四個選項:

    • 節點、來源和目標:符合搜尋準則的所有節點都會包含在結果對應中。 即使來源或目標不符合搜尋準則,相符節點的所有來源和目標節點也會自動包含在結果對應中。 來源與目標節點統稱為「已連線」節點。

    • 節點和來源:與 [節點、來源和目標] 相同的行為,但目標節點不會自動包含在結果對應中。

    • 節點和目標:與 [節點、來源和目標] 相同的行為,但來源節點不會自動包含在結果對應中。

    • 僅節點:結果對應中的所有節點都必須具有與搜尋準則相符的屬性值。

  • 運算子:要在每個節點的屬性值上執行的條件式測試類型。 有四個選項:

    • contains:節點屬性值包含搜尋值參數中指定的值。
    • !contains:節點屬性值不包含搜尋值參數中指定的值。
    • ==:節點屬性值等於搜尋值參數中指定的值。
    • !=:節點屬性值不等於搜尋值參數中指定的值。
  • 搜尋值:要用於屬性值條件式測試的文字字串。 參數的下拉式清單會顯示應用程式對應中現有節點的值。 您可以從清單中選取值,或建立您自己的值。 在參數欄位中輸入您的自訂值,然後在清單中選取 [建立選項]。 例如,您可能會輸入 test,然後在清單中選取 [建立選項 “測試”]

下圖顯示套用至應用程式對應 (其中顯示 30 天的資料) 之篩選的範例。 篩選會指示應用程式對應搜尋具有包含「retailapp」文字之屬性的節點和已連線目標:

顯示如何設定節點篩選以符合「retailapp」文字的螢幕擷取畫面。

結果對應中包含相符節點與其已連線目標節點:

顯示結果對應的螢幕擷取畫面,其中包含符合節點篩選的節點和與目標節點。

建立連接器 ((邊緣)) 篩選

連接器篩選可讓您只查看應用程式對應中具有特定連接器的特定節點,並隱藏所有其他節點與連接器。 您可以設定參數來搜尋對應中連接器的屬性,以尋找符合條件的值。 當節點沒有相符的連接器時,篩選會從對應中移除節點。

連接器篩選有三個要設定的參數:

  • 篩選連接器依據:要在應用程式對應中檢閱是否有相符屬性的連接器類型。 有四個選擇。 您選取的項目會控制其他兩個參數的可用選項。

  • 運算子:要在每個連接器的屬性值上執行的條件式測試類型。

  • :要用於屬性值條件式測試的比較值。 參數的下拉式清單包含與目前應用程式對應相關的值。 您可以從清單中選取值,或建立您自己的值。 例如,您可能會輸入 16,然後在清單中選取 [建立選項 “16”]

下表根據您選擇的 [篩選連接器依據] 參數,摘要說明設定選項。

篩選連接器依據 描述 運算子參數 值參數 使用方式
錯誤連接器 (以紅色醒目提示) 根據連接器的色彩搜尋連接器。 紅色表示連接器處於錯誤狀態。 ==:等於
!=:不等於
一律設定為 [錯誤] 只顯示有錯誤的連接器,或只顯示沒有錯誤的連接器。
錯誤率 (0% - 100%) 根據連接器的平均錯誤率搜尋連接器 (失敗呼叫次數除以所有呼叫次數)。 此值是以百分比表示。 >= 大於或等於
<= 小於或等於
下拉式清單會顯示與應用程式對應中目前連接器相關的平均錯誤率。 遵循稍早所述的流程,從清單中選擇值,或輸入自訂值。 顯示失敗率大於或低於所選值的連接器。
平均呼叫持續時間 (毫秒) 根據連接器中所有呼叫的平均持續時間來搜尋連接器。 此值以毫秒來衡量。 >= 大於或等於
<= 小於或等於
下拉式清單會顯示與應用程式對應中目前連接器相關的平均持續時間。 例如,1000 值是指平均持續時間為 1 秒的呼叫。 遵循稍早所述的流程,從清單中選擇值,或輸入自訂值。 顯示平均呼叫持續時間大於或低於所選值的連接器。
呼叫計數 根據連接器中的呼叫總數來搜尋連接器。 >= 大於或等於
<= 小於或等於
下拉式清單會顯示與應用程式對應中目前連接器相關的總呼叫計數。 遵循稍早所述的流程,從清單中選擇值,或輸入自訂值。 顯示呼叫計數大於或低於所選值的連接器。

值的百分位數指標

當您依 [錯誤率]、[平均呼叫持續時間] 或 [呼叫計數] 篩選連接器時,[值] 參數的某些選項包括 (Pxx) 指定。 此指標會顯示百分位數等級。 針對 [平均呼叫持續時間] 篩選,您可能會看到值 200 (P90)。 此選項表示所有連接器的 90% (不論所代表的呼叫次數為何) 具有少於 200 毫秒的呼叫持續時間。

您可以在參數欄位中輸入 P,以查看包含百分位數等級的 [值] 選項。

檢閱您的篩選

選取項目之後,[新增篩選] 彈出視窗的 [檢閱] 區段會顯示有關篩選的文字和視覺描述。 摘要顯示可協助您了解篩選如何套用至應用程式對應。

下列範例顯示節點篩選的 [檢閱] 摘要,該篩選會搜尋具有 “-west” 文字屬性的節點與目標:

顯示 [檢閱] 區段的螢幕擷取畫面,其中包含已設定之節點篩選的相關資訊。

此範例顯示連接器篩選的摘要,該篩選會搜尋平均呼叫持續時間等於或大於 42 毫秒的連接器 (以及它們所連線的節點):

顯示 [檢閱] 區段的螢幕擷取畫面,其中包含已設定之連接器篩選的相關資訊。

將篩選套用至對應

設定並檢閱篩選設定之後,請選取 [套用] 以建立篩選。 您可以同時將多個篩選套用到相同的應用程式對應。 在應用程式對應中,已套用的篩選會顯示為對應上方的「膠囊」

顯示應用程式對應上方篩選膠囊的螢幕擷取畫面。

篩選膠囊上的 [移除] 動作 可讓您刪除篩選。 當您刪除已套用的篩選時,對應檢視會更新以減去篩選邏輯。

應用程式對應會從清單中最左邊的篩選開始,循序將篩選邏輯套用至對應。 套用篩選時,會從對應檢視中移除節點與連接器。 從檢視中移除節點或連接器之後,後續篩選就無法還原項目。

您可以選取篩選膠囊來變更已套用篩選的設定。 當您變更篩選設定時,應用程式對應會顯示具有新篩選邏輯的對應檢視預覽。 如果您決定不套用變更,您可以使用 [取消] 選項來取消目前的對應檢視與篩選。

顯示已更新篩選設定之地圖檢視預覽的螢幕擷取畫面。

探索和儲存篩選

當您探索到有趣的篩選時,您可以儲存篩選以便稍後重複使用,方式是選取 [複製連結] 或 [釘選到儀表板] 選項:

此螢幕擷取畫面顯示可在應用程式對應中重複使用篩選的兩個選項。

  • [複製連結] 選項會將已複製之 URL 中的所有目前篩選設定編碼。 您可以在瀏覽器中將此連結儲存為書籤,或與他人共用。 此功能會保留篩選設定中的持續時間值,但不會保留絕對時間。 當您稍後使用該連結時,產生的應用程式對應可能會與擷取連結時存在的對應不同。

  • [釘選到儀表板] 選項會將目前的應用程式對應連同其目前的篩選新增至儀表板。 常見的診斷方法是釘選已套用 [錯誤連接器] 篩選的對應。 您可以監視應用程式,尋找其 HTTP 呼叫中有錯誤的節點。

下列各節說明適用於大部分對應,且對於釘選儀表板很有用的一些常見篩選。

檢查重要錯誤

僅產生在過去 24 小時內具有錯誤 (以紅色醒目提示) 之連接器的對應檢視。 篩選包含 [錯誤連接器] 參數,並結合 [智慧型檢視]

篩選的螢幕擷取畫面,其中僅顯示過去 24 小時內以紅色醒目提示且已啟用智慧型檢視的錯誤。

本文稍後會說明智慧型檢視功能。

隱藏低流量連接器

從對應檢視中隱藏沒有錯誤的低流量連接器,以便您可以快速專注於更顯著的問題。 篩選包括過去 24 小時內 [呼叫計數] 大於 2872 (P20) 的連接器:

篩選的螢幕擷取畫面,其中僅顯示針對呼叫計數大於 2872 之連接器在 24 小時內以紅色醒目提示的錯誤。

顯示高流量連接器

顯示其平均呼叫持續時間也很高的高流量連接器。 此篩選有助於識別潛在的效能問題。 此範例中的篩選包括過去 24 小時內 [呼叫計數] 大於 10854 (P50) 且 [平均呼叫持續時間] 大於 578 (P80) 的連接器:

此螢幕擷取畫面顯示篩選,其中顯示過去 24 小時內呼叫計數大於 10854 且平均呼叫持續時間大於 578 毫秒的連接器。

依名稱尋找元件

根據您的元件 roleName 屬性命名慣例實作,依名稱尋找應用程式中的元件 (節點與連接器)。 您可以使用此方法來查看分散式應用程式的特定部分。 篩選會搜尋過去 24 小時內包含指定值的節點、來源和目標。 在此範例中,搜尋值為「west」:

篩選的螢幕擷取畫面,其中顯示過去 24 小時內屬性包括「west」詞彙的節點與連接器。

移除嘈雜元件

定義篩選,藉由從對應中移除嘈雜元件來加以隱藏。 有時候,應用程式元件可以有作用中的相依節點,其會產生對對應檢視而言不重要的資料。 在此範例中,篩選會搜尋過去 24 小時內不包含指定值「retail」的節點、來源和目標

篩選的螢幕擷取畫面,其中顯示過去 24 小時內屬性不包括「retail」詞彙的節點與連接器。

尋找容易出錯的連接器

只顯示錯誤率高於特定值的連接器。 此範例中的篩選會搜尋過去 24 小時內 [錯誤率] 大於 3% 的連接器:

顯示過去 24 小時內錯誤率大於 3% 之連接器的螢幕擷取畫面。

探索智慧型檢視

應用程式對應智慧型檢視設計旨在協助進行服務健康情況調查。 其會套用機器學習,藉由篩除雜訊快速識別出問題的潛在根本原因。 機器學習模型會從應用程式對應的歷史行為中學習來識別主要模式和指出事件潛在成因的異常。

在大型分散式應用程式中,一律會有來自「良性」失敗的某種程度的雜訊,這可能會導致應用程式對應顯示許多紅色邊緣而造成嘈雜。 智慧型檢視只會顯示服務失敗的最可能原因,並在狀況良好的服務中移除節點對節點紅色邊緣 (服務對服務通訊)。 智慧型檢視會以紅色醒目提示應該調查的邊緣。 其也會針對醒目提示的邊緣提供可行的深入解析。

使用智慧型檢視有許多優點:

  • 僅醒目提示需要調查的失敗,藉以減少解決時間
  • 提供可採取動作的深入解析,了解為何已醒目提示特定紅色邊緣
  • 應用程式對應可以順暢地用於大型分散式應用程式 (藉由只專注在以紅色標示的邊緣)

智慧型檢視有一些限制:

  • 大型分散式應用程式可能需要一分鐘的時間才能載入。
  • 最多支援七天的時間範圍。

使用智慧型檢視

應用程式對應上方的切換開關可讓您啟用智慧型檢視並控制問題偵測敏感度:

顯示如何為應用程式對應啟用智慧型檢視並控制偵測敏感度的螢幕擷取畫面。

智慧型檢視會使用獲專利的 AIOps 機器學習模型來醒目提示 (以紅色標示) 應用程式對應中的重大與重要資料。 各種應用程式資料會用來判斷要在對應上醒目提示的資料,包括失敗率、要求計數、持續時間、異常與相依性類型。 為了進行比較,標準對應檢視檢視只會使用原始失敗率。

應用程式對應會根據您的敏感度設定以紅色醒目提示邊緣。 您可以調整敏感度,以達到已醒目提示之邊緣中所需的信賴等級。

敏感度 描述
會醒目提示較少的邊緣。
(預設設定) 已醒目提示數目平衡的邊緣。
會醒目提示較多的邊緣。

檢查可採取動作的深入解析

啟用智慧型檢視之後,選取對應上某個已醒目提示的邊緣 (紅色),以查看元件的「可採取動作的深入解析」。 深入解析會顯示在右側的窗格中,並說明為何邊緣會被醒目提示。

針對應用程式對應使用者介面中所選邊緣顯示可採取動作的深入解析的螢幕擷取畫面。

若要開始針對問題進行疑難排解,請選取 [調查失敗]。 您可以在 [失敗] 窗格中檢閱元件的相關資訊,以判斷偵測到的問題是否為根本原因。

智慧型檢視未醒目提示應用程式對應上的任何邊緣時,表示機器學習模型在應用程式的相依性中找不到潛在的事件。

疑難排解秘訣

如果應用程式對應無法如預期般運作,請檢閱下列各節的建議。

以下是一些一般建議:

對應上的節點太多

應用程式對應會針對要求遙測中的每個唯一雲端角色名稱新增元件節點。 該流程也會針對類型、目標與雲端角色名稱的每個唯一組合新增相依性節點。

  • 如果您的遙測中有超過 10,000 個節點,應用程式對應將無法擷取所有節點與連結。 在此案例中,您的對應結構不完整。 如果發生這種情況,則在您檢視對應時,警告訊息便會出現。

  • 應用程式對應一次可以轉譯最多 1,000 個不同的未分組節點。 應用程式對應會藉由將具有相同類型與呼叫者的相依性組成群組,以降低視覺複雜性。

  • 如果您的遙測具有太多唯一的雲端角色名稱或太多相依性類型,則分組將會不足,而且將不會轉譯對應。

若要修正此問題,您必須變更檢測,以正確設定雲端角色名稱、相依性類型與相依性目標欄位。 確認您的應用程式遵守下列準則:

  • 每個相依性目標都代表相依性的邏輯名稱。 在許多案例中,此值相當於相依性的伺服器或資源名稱。 例如,若有 HTTP 相依性,則此值為主機名稱。 此值不應該包含從某個要求切換到另一個要求時會變更的唯一識別碼或參數。

  • 每個相依性類型都代表相依性的邏輯類型。 例如,HTTP、SQL 或 Azure Blob 是典型的相依性類型。 此值不應該包含唯一識別碼。

  • 每個雲端角色名稱的用途都會套用設定或覆寫雲端角色名稱一節中的描述。

智慧型檢視:邊緣未醒目提示

智慧型檢視可能不會如預期般醒目提示邊緣,即使具有低敏感度設定也一樣。 相依性可能看似失敗,但模型未指出問題是潛在事件。 以下是可能的情況:

  • 如果相依性通常失敗,模型可能會將失敗考慮為該元件的標準狀態,而不會醒目提示邊緣。 智慧型檢視著重在即時解決問題。

  • 如果相依性對應用程式的整體效能只有些微影響,智慧型檢視可能會在機器學習模型建構期間忽略該元件。

如果您的案例是唯一的,您可以使用 [意見反應] 選項來描述您的體驗,並協助改善未來的模型版本。

智慧型檢視:邊緣已醒目提示

智慧型檢視醒目提示邊緣時,來自機器學習模型的可採取動作的深入解析應該識別導致高機率分數的重大問題。 請記住,建議並非只以失敗為基礎,也以主要流程中的其他指標為基礎,例如非預期的延遲。

智慧型檢視:未載入

如果 [智慧型檢視] 未載入,請將設定的時間範圍設定為六天以下。

智慧型檢視:載入時間過長

如果智慧型檢視載入時間超過預期,請避免選取 [更新對應元件] 選項。 僅針對單一 Application Insight 資源啟用 [智慧檢視]

  • 了解如何將 Application Insights 中的工作與遙測相互關聯 (英文) 建立關聯。

  • 探索端對端交易診斷體驗 (英文),了解其如何將跨您的所有 Application Insights 監視元件的伺服器端遙測相互關聯到單一檢視。

  • 透過追蹤自訂作業 (英文) 支援 ASP.NET Core 和 ASP.NET 中的進階相互關聯案例。