Arbetsytebaserade Application Insights-resurser

Azure MonitorApplication Insights-arbetsytebaserade resurser integrerar Application Insights och Log Analytics.

Med arbetsytebaserade resurser skickar Application Insights telemetri till en gemensam Log Analytics-arbetsyta , vilket ger fullständig åtkomst till alla funktioner i Log Analytics samtidigt som dina program-, infrastruktur- och plattformsloggar hålls på en enda konsoliderad plats. Den här integreringen möjliggör gemensam rollbaserad åtkomstkontroll i Azure för dina resurser och eliminerar behovet av frågor mellan appar och arbetsytor.

Kommentar

Datainmatning och kvarhållning för arbetsytebaserade Application Insights-resurser faktureras via Log Analytics-arbetsytan där data finns. Mer information om fakturering för arbetsytebaserade Application Insights-resurser finns i prisinformation om Azure Monitor-loggar.

Nya funktioner

Arbetsytebaserade Application Insights integreras med Azure Monitor och Log Analytics för att förbättra funktionerna:

Skapa en arbetsytebaserad resurs

Logga in på Azure-portalen och skapa en Application Insights-resurs.

Skärmbild som visar en arbetsytebaserad Application Insights-resurs.

Om du inte har någon befintlig Log Analytics-arbetsyta kan du läsa dokumentationen om att skapa Log Analytics-arbetsytor.

Arbetsytebaserade resurser är för närvarande tillgängliga i alla kommersiella regioner och Azure Government. Att ha Application Insights och Log Analytics i två olika regioner kan påverka svarstiden och minska övervakningslösningens övergripande tillförlitlighet.

När du har skapat resursen visas motsvarande arbetsyteinformation i fönstret Översikt .

Skärmbild som visar ett arbetsytenamn.

Välj den blå länktexten för att gå till den associerade Log Analytics-arbetsytan där du kan dra nytta av den nya enhetliga arbetsytans frågemiljö.

Kommentar

Vi tillhandahåller fortfarande fullständig bakåtkompatibilitet för dina klassiska Application Insights-resursfrågor, arbetsböcker och loggbaserade aviseringar. Om du vill fråga eller visa den nya arbetsytebaserade tabellstrukturen eller schemat måste du först gå till Log Analytics-arbetsytan. Välj Loggar (analys) i Application Insights-fönstret för åtkomst till den klassiska Application Insights-frågeupplevelsen.

Kopiera anslutningssträngen

Den anslutningssträng identifierar den resurs som du vill associera telemetridata med. Du kan också använda den för att ändra slutpunkterna som resursen använder som mål för telemetrin. Du måste kopiera anslutningssträng och lägga till den i programmets kod eller i en miljövariabel.

Konfigurera övervakning

När du har skapat en arbetsytebaserad Application Insights-resurs konfigurerar du övervakning.

Kodbaserad programövervakning

För kodbaserad programövervakning installerar du lämplig Application Insights SDK och pekar anslutningssträng på din nyligen skapade resurs.

Information om hur du konfigurerar en Application Insights SDK för kodbaserad övervakning finns i följande dokumentation som är specifik för språket eller ramverket:

Kodlös övervakning och skapande av Visual Studio-resurser

För kodlös övervakning av tjänster som Azure Functions och Azure App Services skapar du först din arbetsytebaserade Application Insights-resurs. Sedan pekar du på den resursen när du konfigurerar övervakning.

De här tjänsterna erbjuder möjligheten att skapa en ny Application Insights-resurs i sin egen resursskapandeprocess. Men resurser som skapas via dessa gränssnittsalternativ är för närvarande begränsade till den klassiska Application Insights-upplevelsen.

Samma begränsning gäller för skapande av Application Insights-resurser i Visual Studio för ASP.NET och ASP.NET Core. Du måste välja en befintlig arbetsytebaserad resurs i Visual Studio-användargränssnittet där du aktiverar övervakning. Om du väljer Skapa ny resurs i Visual Studio kan du skapa en klassisk Application Insights-resurs.

Skapa en resurs automatiskt

Azure CLI

För att få åtkomst till förhandsversionen av Application Insights Azure CLI-kommandon måste du först köra:

 az extension add -n application-insights

Om du inte kör az extension add kommandot visas ett felmeddelande som anger az : ERROR: az monitor: 'app-insights' is not in the 'az monitor' command group. See 'az monitor --help'.

Nu kan du köra följande kod för att skapa din Application Insights-resurs:

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]

Exempel

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"

Den fullständiga Azure CLI-dokumentationen för det här kommandot finns i Azure CLI-dokumentationen.

Azure PowerShell

Skapa en ny arbetsytebaserad Application Insights-resurs.

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>]

Exempel

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

Den fullständiga PowerShell-dokumentationen för den här cmdleten och information om hur du hämtar anslutningssträng finns i Azure PowerShell-dokumentationen.

Azure Resource Manager-mallar

@description('Name of Application Insights resource.')
param name string

@description('Type of app you are deploying. This field is for legacy reasons and will not impact the type of App Insights resource you deploy.')
param type string

@description('Which Azure Region to deploy the resource to. This must be a valid Azure regionId.')
param regionId string

@description('See documentation on tags: https://learn.microsoft.com/azure/azure-resource-manager/management/tag-resources.')
param tagsArray object

@description('Source of Azure Resource Manager deployment')
param requestSource string

@description('Log Analytics workspace ID to associate with your Application Insights resource.')
param workspaceResourceId string

resource component 'Microsoft.Insights/components@2020-02-02' = {
  name: name
  location: regionId
  tags: tagsArray
  kind: 'other'
  properties: {
    Application_Type: type
    Flow_Type: 'Bluefield'
    Request_Source: requestSource
    WorkspaceResourceId: workspaceResourceId
  }
}

Parameterfil

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "name": {
      "value": "my_workspace_based_resource"
    },
    "type": {
      "value": "web"
    },
    "regionId": {
      "value": "westus2"
    },
    "tagsArray": {
      "value": {}
    },
    "requestSource": {
      "value": "CustomDeployment"
    },
    "workspaceResourceId": {
      "value": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testxxxx/providers/microsoft.operationalinsights/workspaces/testworkspace"
    }
  }
}

Ändra den associerade arbetsytan

När du har skapat en arbetsytebaserad Application Insights-resurs kan du ändra den associerade Log Analytics-arbetsytan.

I resursfönstret Application Insights väljer du Egenskaper>Ändra arbetsytelogganalysarbetsytor.>

Exportera telemetri

Den äldre funktionen för kontinuerlig export stöds inte för arbetsytebaserade resurser. Välj i stället Diagnostikinställningar>Lägg till diagnostikinställning i Application Insights-resursen. Du kan välja alla tabeller, eller en delmängd tabeller, för att arkivera till ett lagringskonto. Du kan också strömma till en Azure-händelsehubb.

Kommentar

Export av diagnostikinställningar kan öka kostnaderna. Mer information finns i Exportera telemetri från Application Insights. Prisinformation för den här funktionen finns på sidan med priser för Azure Monitor. Innan faktureringen börjar skickas meddelanden. Om du fortsätter att använda telemetriexport efter meddelandeperioden debiteras du enligt tillämpligt pris.

Hur många Application Insights-resurser ska jag distribuera?

När du utvecklar nästa version av ett webbprogram vill du inte blanda ihop Application Insights-telemetrin från den nya versionen och den redan släppta versionen.

För att undvika förvirring skickar du telemetrin från olika utvecklingssteg för att separera Application Insights-resurser med separata anslutningssträng.

Om systemet är en instans av Azure Cloud Services finns det en annan metod för att ställa in separata anslutningssträng.

Om resurser och anslutningssträng

När du konfigurerar Application Insights-övervakning för din webbapp skapar du en Application Insights-resurs i Azure. Du öppnar resursen i Azure-portalen för att se och analysera telemetrin som samlas in från din app. En anslutningssträng identifierar resursen. När du installerar Application Insights-paketet för att övervaka din app konfigurerar du det med anslutningssträng så att den vet var telemetrin ska skickas.

Varje Application Insights-resurs levereras med mått som är tillgängliga direkt. Om separata komponenter rapporterar till samma Application Insights-resurs kanske det inte är meningsfullt att avisera om dessa mått.

När du ska använda en enda Application Insights-resurs

Använd en enda Application Insights-resurs för:

  • Effektivisera DevOps/ITOps-hantering för program som distribueras tillsammans, vanligtvis utvecklade och hanterade av samma team.
  • Centralisera viktiga prestandaindikatorer, till exempel svarstider och felfrekvenser, på en instrumentpanel som standard. Segmentera efter rollnamn i metrics Explorer om det behövs.
  • När det inte finns något behov av olika rollbaserad åtkomstkontroll i Azure mellan programkomponenter.
  • När identiska måttaviseringsvillkor, kontinuerlig export och hantering av fakturering/kvoter mellan komponenter räcker.
  • När det är acceptabelt för en API-nyckel att komma åt data från alla komponenter på samma sätt och 10 API-nycklar uppfyller behoven för alla komponenter.
  • När samma inställningar för smart identifiering och arbetsobjektintegrering är lämpliga för alla roller.

Kommentar

Om du vill konsolidera flera Application Insights-resurser kan du peka dina befintliga programkomponenter på en ny konsoliderad Application Insights-resurs. Telemetrin som lagras i den gamla resursen överförs inte till den nya resursen. Ta bara bort den gamla resursen när du har tillräckligt med telemetri i den nya resursen för affärskontinuitet.

Övriga beaktanden

Om du vill aktivera portalupplevelser lägger du till anpassad kod för att tilldela meningsfulla värden till attributet Cloud_RoleName . Utan dessa värden fungerar inte portalfunktionerna.

För Azure Service Fabric-program och klassiska molntjänster konfigurerar SDK automatiskt tjänster genom att läsa från Azure-rollmiljön. För andra apptyper behöver du vanligtvis ange den explicit.

Live-mått kan inte dela upp data efter rollnamn.

Skapa fler Application Insights-resurser

Information om hur du skapar en Application Insights-resurs finns i Skapa en Application Insights-resurs.

Varning

Du kan medföra ytterligare nätverkskostnader om din Application Insights-resurs övervakar en Azure-resurs (t.ex. telemetriproducent) i en annan region. Kostnaderna varierar beroende på vilken region telemetrin kommer från och vart den är på väg. Mer information finns i Prissättning för Azure-bandbredd.

Hämta anslutningssträngen

Anslutningssträng identifierar resursen som du skapade.

Du behöver anslutningssträng för alla resurser som appen skickar data till.

Filtrera på versionsnumret

När du publicerar en ny version av appen vill du kunna separera telemetrin från olika versioner.

Du kan ange egenskapen Programversion så att du kan filtrera sök - och måttutforskarens resultat.

Det finns flera olika metoder för att ange egenskapen Programversion .

  • Ange direkt:

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

  • Omslut den linjen i en telemetriinitierare för att säkerställa att alla TelemetryClient instanser anges konsekvent.

  • ASP.NET: Ange versionen i BuildInfo.config. Webbmodulen hämtar versionen från BuildLabel noden. Inkludera den här filen i projektet och kom ihåg att ange egenskapen Kopiera alltid i Solution Explorer.

    <?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: Generera BuildInfo.config automatiskt i Microsoft Build Engine. Lägg till några rader i .csproj filen:

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

    Det här steget genererar en fil med namnet yourProjectName.BuildInfo.config. Publiceringsprocessen byter namn på den till BuildInfo.config.

    Byggetiketten innehåller en platshållare (*AutoGen_...*) när du skapar med Visual Studio. Men när den skapas med Microsoft Build Engine fylls den i med rätt versionsnummer.

    Om du vill tillåta att Microsoft Build Engine genererar versionsnummer anger du versionen som 1.0.* i AssemblyReference.cs.

Spårning av versionen och utgåva

Om du vill spåra programversionen kontrollerar du att din Microsoft Build Engine-process genererar buildinfo.config. .csproj Lägg till:

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

När Application Insights-webbmodulen har bygginformationen lägger den automatiskt till programversion som en egenskap till varje telemetriobjekt. Därför kan du filtrera efter version när du utför diagnostiska sökningar eller när du utforskar mått.

Microsoft Build Engine genererar exklusivt versionsnumret, inte utvecklarversionen från Visual Studio.

Versionsanteckningar

Om du använder Azure DevOps kan du få en anteckningsmarkör tillagd i dina diagram när du släpper en ny version.

Vanliga frågor och svar

Det här avsnittet innehåller svar på vanliga frågor.

Hur gör jag för att flytta en Application Insights-resurs till en ny region?

Överföring av befintliga Application Insights-resurser mellan regioner stöds inte och du kan inte migrera historiska data till en ny region. Lösningen omfattar:

  • Skapa en ny arbetsytebaserad Application Insights-resurs i önskad region.
  • Återskapa alla unika anpassningar från den ursprungliga resursen i den nya.
  • Uppdatera programmet med den nya regionresursens anslutningssträng.
  • Testa för att säkerställa att allt fungerar som förväntat med den nya Application Insights-resursen.
  • Bestämmer dig för att behålla eller ta bort den ursprungliga Application Insights-resursen. Att ta bort en klassisk resurs innebär att alla historiska data går förlorade. Om resursen är arbetsytebaserad finns data kvar i Log Analytics, vilket ger åtkomst till historiska data tills kvarhållningsperioden upphör att gälla.

Unika anpassningar som vanligtvis behöver återskapas eller uppdateras manuellt för resursen i den nya regionen omfattar, men som inte är begränsade till:

  • Återskapa anpassade instrumentpaneler och arbetsböcker.
  • Återskapa eller uppdatera omfånget för anpassade logg-/måttaviseringar.
  • Återskapa tillgänglighetsaviseringar.
  • Återskapa alla anpassade rollbaserade åtkomstkontrollinställningar i Azure som krävs för att användarna ska få åtkomst till den nya resursen.
  • Replikera inställningar som omfattar inmatningssampling, datakvarhållning, dagligt tak och anpassad måttaktivering. De här inställningarna styrs via fönstret Användning och uppskattade kostnader .
  • Alla integreringar som förlitar sig på API-nycklar, till exempel versionsanteckningar och live-mått, skyddar kontrollkanalen. Du måste generera nya API-nycklar och uppdatera den associerade integreringen.
  • Kontinuerlig export i klassiska resurser måste konfigureras igen.
  • Diagnostikinställningar i arbetsytebaserade resurser måste konfigureras igen.

Kommentar

Om resursen du skapar i en ny region ersätter en klassisk resurs rekommenderar vi att du utforskar fördelarna med att skapa en ny arbetsytebaserad resurs. Du kan också migrera din befintliga resurs till arbetsytan baserat.

Kan jag använda providers('Microsoft.Insights', 'components').apiVersions[0] i mina Azure Resource Manager-distributioner?

Vi rekommenderar inte att du använder den här metoden för att fylla i API-versionen. Den senaste versionen kan representera förhandsversioner, som kan innehålla icke-bakåtkompatibla ändringar. Även med nyare versioner som inte är förhandsversioner är API-versionerna inte alltid bakåtkompatibla med befintliga mallar. I vissa fall kanske API-versionen inte är tillgänglig för alla prenumerationer.

Nästa steg