工作區型 Application Insights 資源

Azure 監視器 Application Insights 工作區型資源會整合 Application Insights Log Analytics

使用工作區型資源, Application Insights 會將遙測傳送至一般 Log Analytics 工作區,提供 Log Analytics 所有功能 的完整存取權,同時將應用程式、基礎結構和平臺記錄保留在單一合併位置。 此整合可讓您跨資源進行一般 Azure 角色型存取控制 ,並不需要跨應用程式/工作區查詢。

注意

工作區型 Application Insights 資源的資料擷取和保留會透過資料所在的 Log Analytics 工作區計費。 若要深入瞭解工作區型 Application Insights 資源的計費方式,請參閱 Azure 監視器記錄定價詳細資料

新功能

使用工作區型 Application Insights,您可以利用 Azure 監視器和 Log Analytics 的最新功能。 例如:

建立工作區型資源

登入 Azure 入口網站 ,並建立 Application Insights 資源。

Screenshot that shows a workspace-based Application Insights resource.

如果您沒有現有的 Log Analytics 工作區,請參閱 Log Analytics 工作區建立檔

工作區型資源目前適用于所有商業區域和 Azure Government。 在兩個不同的區域中擁有 Application Insights 和 Log Analytics 可能會影響延遲,並減少監視解決方案的整體可靠性。

建立資源之後,您會在 [ 概觀] 窗格中看到對應的工作區資訊。

Screenshot that shows a workspace name.

選取藍色連結文字以移至相關聯的 Log Analytics 工作區,您可以在其中利用新的統一工作區查詢環境。

注意

我們仍然為您的 Application Insights 傳統資源查詢、活頁簿和記錄型警示提供完整的回溯相容性。 若要查詢或檢視 以工作區為基礎的新資料表結構或架構 ,您必須先移至 Log Analytics 工作區。 在 [Application Insights ] 窗格中選取 [記錄][分析] ,以存取傳統 Application Insights 查詢體驗。

複製連接字串

連接字串 會識別您想要與遙測資料建立關聯的資源。 您也可以使用它來修改資源用來作為遙測目的地的端點。 您必須複製連接字串,並將其新增至應用程式的程式碼或環境變數。

設定監視

建立工作區型 Application Insights 資源之後,您可以設定監視。

程式碼型應用程式監視

針對程式碼型應用程式監視,您可以安裝適當的 Application Insights SDK,並將連接字串指向新建立的資源。

如需如何設定 Application Insights SDK 以進行程式碼型監視的資訊,請參閱語言或架構專屬的下列檔:

無程式碼監視和 Visual Studio 資源建立

針對 Azure Functions 和 Azure App 服務 等服務的無程式碼監視,您必須先建立以工作區為基礎的 Application Insights 資源。 然後在設定監視時指向該資源。

這些服務提供在自己的資源建立程式中建立新 Application Insights 資源的選項。 但是透過這些 UI 選項建立的資源目前僅限於傳統 Application Insights 體驗。

相同的限制適用于 Visual Studio 中適用于 ASP.NET 和 ASP.NET Core 的 Application Insights 資源建立體驗。 您必須在啟用監視的 Visual Studio UI 中選取現有的工作區型資源。 在 Visual Studio 中選取 [建立新資源 ] 會限制您建立傳統 Application Insights 資源。

自動建立資源

Azure CLI

若要存取預覽 Application Insights Azure CLI 命令,您必須先執行:

 az extension add -n application-insights

如果您未執行 az extension add 命令,您會看到指出 的錯誤訊息 az : ERROR: az monitor: 'app-insights' is not in the 'az monitor' command group. See 'az monitor --help'

現在您可以執行下列程式碼來建立 Application Insights 資源:

az monitor app-insights component create --app
                                         --location
                                         --resource-group
                                         [--application-type]
                                         [--ingestion-access {Disabled, Enabled}]
                                         [--kind]
                                         [--only-show-errors]
                                         [--query-access {Disabled, Enabled}]
                                         [--tags]
                                         [--workspace]

範例

az monitor app-insights component create --app demoApp --location eastus --kind web -g my_resource_group --workspace "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"

如需此命令的完整 Azure CLI 檔,請參閱 Azure CLI 檔

Azure PowerShell

建立以工作區為基礎的 Application Insights 資源。

New-AzApplicationInsights -Name <String> -ResourceGroupName <String> -Location <String> -WorkspaceResourceId <String>
   [-SubscriptionId <String>]
   [-ApplicationType <ApplicationType>]
   [-DisableIPMasking]
   [-DisableLocalAuth]
   [-Etag <String>]
   [-FlowType <FlowType>]
   [-ForceCustomerStorageForProfiler]
   [-HockeyAppId <String>]
   [-ImmediatePurgeDataOn30Day]
   [-IngestionMode <IngestionMode>]
   [-Kind <String>]
   [-PublicNetworkAccessForIngestion <PublicNetworkAccessType>]
   [-PublicNetworkAccessForQuery <PublicNetworkAccessType>]
   [-RequestSource <RequestSource>]
   [-RetentionInDays <Int32>]
   [-SamplingPercentage <Double>]
   [-Tag <Hashtable>]
   [-DefaultProfile <PSObject>]
   [-Confirm]
   [-WhatIf]
   [<CommonParameters>]

範例

New-AzApplicationInsights -Kind java -ResourceGroupName testgroup -Name test1027 -location eastus -WorkspaceResourceId "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"

如需此 Cmdlet 的完整 PowerShell 檔,以及瞭解如何擷取連接字串,請參閱 Azure PowerShell 檔

Azure Resource Manager 範本

若要建立以工作區為基礎的資源,請使用下列 Azure Resource Manager 範本,並使用 PowerShell 加以部署。

範本檔案

{
    "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "name": {
            "type": "string"
        },
        "type": {
            "type": "string"
        },
        "regionId": {
            "type": "string"
        },
        "tagsArray": {
            "type": "object"
        },
        "requestSource": {
            "type": "string"
        },
        "workspaceResourceId": {
            "type": "string"
        }
    },
    "resources": [
        {
            "name": "[parameters('name')]",
            "type": "microsoft.insights/components",
            "location": "[parameters('regionId')]",
            "tags": "[parameters('tagsArray')]",
            "apiVersion": "2020-02-02-preview",
            "properties": {
                "ApplicationId": "[parameters('name')]",
                "Application_Type": "[parameters('type')]",
                "Flow_Type": "Bluefield",
                "Request_Source": "[parameters('requestSource')]",
                "WorkspaceResourceId": "[parameters('workspaceResourceId')]"
            }
        }
    ]
}

注意

如需資源屬性的詳細資訊,請參閱 屬性值 Flow_TypeRequest_Source和 未使用,但包含在此範例中,以取得完整性。

參數檔案

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "type": {
            "value": "web"
        },
        "name": {
            "value": "customresourcename"
        },
        "regionId": {
            "value": "eastus"
        },
        "tagsArray": {
            "value": {}
        },
        "requestSource": {
            "value": "Custom"
        },
        "workspaceResourceId": {
            "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my_resource_group/providers/microsoft.operationalinsights/workspaces/myworkspacename"
        }
    }
}

修改相關聯的工作區

建立工作區型 Application Insights 資源之後,您可以修改相關聯的 Log Analytics 工作區。

在 [Application Insights] 資源窗格中,選取 [ 屬性 > 變更工作區 > Log Analytics 工作區]。

匯出遙測

工作區型資源不支援舊版的持續匯出功能。 請改為選取 [診斷設定 > ],在 Application Insights 資源中新增診斷設定。 您可以選取所有資料表或資料表的子集,以封存到儲存體帳戶。 您也可以串流至 Azure 事件中樞。

注意

診斷設定匯出可能會增加成本。 如需詳細資訊,請參閱 從 Application Insights 匯出遙測。 如需這項功能的定價資訊,請參閱 Azure 監視器定價頁面 。 開始計費之前,將會傳送通知。 如果您在通知期間之後繼續使用遙測匯出,則會以適用的費率計費。

我應該部署多少 Application Insights 資源?

當您開發下一個版本的 Web 應用程式時,您不想混合 來自新版本和已發行版本本的 Application Insights 遙測。

為了避免混淆,請將不同開發階段的遙測傳送至具有個別連接字串的 Application Insights 資源。

如果您的系統是 Azure 雲端服務的實例,則有 另一個方法可以設定個別連接字串

關於資源和連接字串

當您為 Web 應用程式設定 Application Insights 監視時,您會在 Azure 中建立 Application Insights 資源。 您可以在Azure 入口網站中開啟此資源,以查看和分析從您的應用程式收集的遙測。 資源是由連接字串所識別。 當您安裝 Application Insights 套件來監視應用程式時,您可以使用 連接字串 進行設定,讓它知道要傳送遙測的位置。

每個 Application Insights 資源都隨附現現可用的計量。 如果個別元件向相同的 Application Insights 資源報告,則警示這些計量可能沒有意義。

使用單一 Application Insights 資源的時機

使用單一 Application Insights 資源:

  • 針對一起部署的應用程式元件。 這些應用程式通常是由單一小組開發,並由同一組 DevOps/ITOps 使用者管理。
  • 如果匯總關鍵效能指標,例如儀表板中的回應持續時間或失敗率,預設會跨所有指標進行匯總。 您可以選擇在計量總管中依角色名稱區隔。
  • 如果不需要在應用程式元件之間以不同的方式管理 Azure 角色型存取控制。
  • 如果您不需要元件之間不同計量警示準則。
  • 如果您不需要以不同的方式管理元件之間的連續匯出。
  • 如果您不需要在元件之間以不同的方式管理計費/配額。
  • 如果 API 金鑰可以存取來自所有元件的資料,則沒關係。 10 個 API 金鑰足以滿足所有 API 金鑰的需求。
  • 如果可以跨所有角色使用相同的智慧偵測和工作專案整合設定。

注意

如果您想要合併多個 Application Insights 資源,您可以將現有的應用程式元件指向新的合併 Application Insights 資源。 儲存在您舊資源中的遙測不會傳送到新的資源。 只有在您在新的資源中有足夠的遙測資料來保持商務持續性時,才刪除舊資源。

其他考量

請注意:

  • 您可能需要新增自訂程式碼,以確保有意義的值已設定至 Cloud_RoleName 屬性。 若沒有針對此屬性設定有意義的值,入口網站體驗都不會運作。
  • 針對 Azure Service Fabric 應用程式和傳統雲端服務,SDK 會自動從 Azure 角色環境讀取並設定這些服務。 針對所有其他類型的應用程式,您可能需要明確地設定此專案。
  • 即時計量不支援依角色名稱分割。

建立更多 Application Insights 資源

若要建立 Applications Insights 資源,請參閱 建立 Application Insights 資源

警告

如果您的 Application Insights 資源正在監視不同區域中的 Azure 資源(亦即遙測產生者),您可能會產生額外的網路成本。 成本會根據遙測的來源區域和進行位置而有所不同。 如需詳細資訊, 請參閱 Azure 頻寬定價

取得連接字串

連接字串會識別您所建立的資源。

您需要應用程式將傳送資料的所有資源連接字串。

篩選組建編號

當您發佈新版本的應用程式時,您會想要能夠將遙測與不同的組建區隔開。

您可以設定 [應用程式版本] 屬性,以便篩選 搜尋 計量總管 結果。

設定應用程式版本 屬性的方法有很多種

  • 直接設定:

    telemetryClient.Context.Component.Version = typeof(MyProject.MyClass).Assembly.GetName().Version;

  • 將該行包裝在遙測初始化運算式 ,以確保所有 TelemetryClient 實例都一致地設定。

  • ASP.NET:在 中 BuildInfo.config 設定版本。 Web 模組會從 BuildLabel 節點挑選版本。 在您的專案中包含此檔案,並記得在 方案總管 中設定 Copy Always 屬性。

    <?xml version="1.0" encoding="utf-8"?>
    <DeploymentEvent xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/DeploymentEvent/2013/06">
      <ProjectName>AppVersionExpt</ProjectName>
      <Build type="MSBuild">
        <MSBuild>
          <BuildLabel kind="label">1.0.0.2</BuildLabel>
        </MSBuild>
      </Build>
    </DeploymentEvent>
    
    
  • ASP.NET:在 Microsoft Build Engine 中自動產生 BuildInfo.config 。 將幾行新增至您的 .csproj 檔案:

    <PropertyGroup>
      <GenerateBuildInfoConfigFile>true</GenerateBuildInfoConfigFile>    <IncludeServerNameInBuildInfo>true</IncludeServerNameInBuildInfo>
    </PropertyGroup>
    

    此步驟會產生名為 yourProjectName .BuildInfo.config 的檔案。 發行程式會將它重新命名為 BuildInfo.config

    當您使用 Visual Studio 建置時,組建標籤會包含預留位置( AutoGen_... )。 但是,使用 Microsoft Build Engine 建置時,會填入正確的版本號碼。

    若要允許 Microsoft Build Engine 產生版本號碼,請在 中設定類似 1.0.* 的版本 AssemblyReference.cs

版本和發行追蹤

若要追蹤應用程式版本,請確定您的 Microsoft Build Engine 程式會產生 buildinfo.config 。 在您的 .csproj 檔案中,新增:

<PropertyGroup>
  <GenerateBuildInfoConfigFile>true</GenerateBuildInfoConfigFile>
  <IncludeServerNameInBuildInfo>true</IncludeServerNameInBuildInfo>
</PropertyGroup>

當 Application Insights Web 模組具有建置資訊時,會自動將應用程式版本 當做屬性新增 至每個遙測專案。 基於這個理由,您可以在執行 診斷搜尋 探索計量 時依版本進行篩選。

組建版本號碼只會由 Microsoft Build Engine 產生,而不是由 Visual Studio 的開發人員組建所產生。

版本註釋

如果您使用 Azure DevOps,每當發行新版本時,就可以 取得新增至圖表的註解標記

常見問題集

本節提供常見問題的解答。

如何?將 Application Insights 資源移至新區域?

目前不支援 將現有的 Application Insights 資源從某個區域移至另一個 區域。 您收集 的歷程記錄資料無法移轉至 新的區域。 唯一的部分因應措施是:

  1. 在新區域中建立以工作區為基礎的 Application Insights 資源。
  2. 重新建立新資源中原始資源專屬的所有唯一自訂專案。
  3. 修改您的應用程式以使用新區域資源的 連接字串
  4. 測試以確認所有專案都如預期般運作,並搭配新的 Application Insights 資源運作。
  5. 此時,您可以保留或刪除原始的 Application Insights 資源。 如果您刪除傳統 Application Insights 資源, 則會遺失 所有歷程記錄資料。 如果原始資源是以工作區為基礎,則其資料會保留在 Log Analytics 中。 保留原始 Application Insights 資源可讓您存取其歷程記錄資料,直到其資料保留設定用完為止。

通常必須針對新區域中的資源手動重新建立或更新的唯一自訂,但不限於:

  • 重新建立自訂儀表板和活頁簿。
  • 重新建立或更新任何自訂記錄/計量警示的範圍。
  • 重新建立可用性警示。
  • 重新建立使用者存取新資源所需的任何自訂 Azure 角色型存取控制設定。
  • 複寫涉及擷取取樣、資料保留、每日上限和自訂計量啟用的設定。 這些設定是透過 [ 使用量和估計成本 ] 窗格來控制。
  • 依賴 API 金鑰的任何整合,例如 發行批註 即時計量安全控制通道 。 您必須產生新的 API 金鑰,並更新相關聯的整合。
  • 必須再次設定傳統資源中的連續匯出。
  • 必須再次設定工作區型資源的診斷設定。

注意

如果您要在新區域中建立的資源取代傳統資源,建議您探索建立以工作區為基礎的新資源 的優點 。 或者, 將現有的資源移轉至以工作區為基礎的 資源。

下一步