Utföra kors resurs logg frågor i Azure MonitorPerform cross-resource log queries in Azure Monitor

Tidigare med Azure Monitor kunde du bara analysera data från den aktuella arbets ytan och den begränsade möjligheten att fråga över flera arbets ytor som definierats i din prenumeration.Previously with Azure Monitor, you could only analyze data from within the current workspace, and it limited your ability to query across multiple workspaces defined in your subscription. Dessutom kan du bara söka efter telemetri som samlats in från ditt webbaserade program med Application Insights direkt i Application Insights eller från Visual Studio.Additionally, you could only search telemetry items collected from your web-based application with Application Insights directly in Application Insights or from Visual Studio. Detta gjorde också det en utmaning att internt analysera drift-och program data tillsammans.This also made it a challenge to natively analyze operational and application data together.

Nu kan du fråga inte bara över flera Log Analytics arbets ytor, utan även data från en speciell Application Insights app i samma resurs grupp, en annan resurs grupp eller en annan prenumeration.Now you can query not only across multiple Log Analytics workspaces, but also data from a specific Application Insights app in the same resource group, another resource group, or another subscription. Detta ger dig en systemomfattande vy över dina data.This provides you with a system-wide view of your data. Du kan bara utföra dessa typer av frågor i Log Analytics.You can only perform these types of queries in Log Analytics.

Begränsningar för kors resurs frågorCross-resource query limits

  • Antalet Application Insights-resurser och Log Analytics arbets ytor som du kan ta med i en enskild fråga är begränsade till 100.The number of Application Insights resources and Log Analytics workspaces that you can include in a single query is limited to 100.
  • Frågan över resurser stöds inte i View Designer.Cross-resource query is not supported in View Designer. Du kan redigera en fråga i Log Analytics och fästa den på Azure-instrumentpanelen för att visualisera en logg fråga.You can Author a query in Log Analytics and pin it to Azure dashboard to visualize a log query.
  • Frågan över resurser i logg aviseringar stöds i det nya scheduledQueryRules-API: et.Cross-resource query in log alerts is supported in the new scheduledQueryRules API. Som standard använder Azure Monitor den äldre Log Analytics varnings-API: n för att skapa nya logg aviserings regler från Azure Portal, såvida du inte växlar från äldre API för logg aviseringar.By default, Azure Monitor uses the legacy Log Analytics Alert API for creating new log alert rules from Azure portal, unless you switch from legacy Log Alerts API. Efter växeln blir det nya API: t standardvärdet för nya varnings regler i Azure Portal och du kan skapa frågor om aviserings regler för kors resurs.After the switch, the new API becomes the default for new alert rules in Azure portal and it lets you create cross-resource query log alerts rules. Du kan skapa frågor om kors resurs frågor om loggen utan att göra växeln med hjälp av Azure Resource Manager mall för scheduledQueryRules-API – men den här varnings regeln kan hanteras trots scheduledQueryRules-API: et och inte från Azure Portal .You can create cross-resource query log alert rules without making the switch by using the Azure Resource Manager template for scheduledQueryRules API – but this alert rule is manageable though scheduledQueryRules API and not from Azure portal.

Fråga i Log Analytics arbets ytor och från Application InsightsQuerying across Log Analytics workspaces and from Application Insights

Om du vill referera till en annan arbets yta i din fråga använder du ID för arbets ytan och för en app från Application Insights använder du app -ID: t.To reference another workspace in your query, use the workspace identifier, and for an app from Application Insights, use the app identifier.

Identifiera arbets ytans resurserIdentifying workspace resources

Följande exempel visar frågor i Log Analytics arbets ytor för att returnera sammanfattade antal loggar från uppdaterings tabellen på en arbets yta med namnet ContosoRetail.The following examples demonstrate queries across Log Analytics workspaces to return summarized counts of logs from the Update table on a workspace named contosoretail-it.

Att identifiera en arbets yta kan utföras på flera sätt:Identifying a workspace can be accomplished one of several ways:

  • Resurs namn – är ett läsbart namn på arbets ytan, ibland kallat komponent namn.Resource name - is a human-readable name of the workspace, sometimes referred to as component name.

    workspace("contosoretail-it").Update | count

  • Kvalificerat namn – är det fullständiga namnet på arbets ytan, som består av prenumerations namnet, resurs gruppen och komponent namnet i följande format: subscriptionName/resourceGroup/componentName.Qualified name - is the “full name” of the workspace, composed of the subscription name, resource group, and component name in this format: subscriptionName/resourceGroup/componentName.

    workspace('contoso/contosoretail/contosoretail-it').Update | count

    Anteckning

    Eftersom Azures prenumerations namn inte är unika kan den här identifieraren vara tvetydig.Because Azure subscription names are not unique, this identifier might be ambiguous.

  • Arbetsyte-ID – ett arbetsyte-ID är den unika, oföränderliga, identifierare som tilldelats varje arbets yta som representerar en globalt unik identifierare (GUID).Workspace ID - A workspace ID is the unique, immutable, identifier assigned to each workspace represented as a globally unique identifier (GUID).

    workspace("b459b4u5-912x-46d5-9cb1-p43069212nb4").Update | count

  • Azure-resurs-ID – den Azure-definierade unika identiteten för arbets ytan.Azure Resource ID – the Azure-defined unique identity of the workspace. Du använder resurs-ID: t när resurs namnet är tvetydigt.You use the Resource ID when the resource name is ambiguous. För arbets ytor är formatet: /Subscriptions/subscriptionId/ResourceGroups/resourceGroup/providers/Microsoft. OperationalInsights/arbets ytor/componentName.For workspaces, the format is: /subscriptions/subscriptionId/resourcegroups/resourceGroup/providers/microsoft.OperationalInsights/workspaces/componentName.

    Exempel:For example:

    workspace("/subscriptions/e427519-5645-8x4e-1v67-3b84b59a1985/resourcegroups/ContosoAzureHQ/providers/Microsoft.OperationalInsights/workspaces/contosoretail-it").Update | count
    

Identifiera ett programIdentifying an application

I följande exempel returneras ett sammanfattat antal begär Anden som gjorts mot en app med namnet fabrikamapp i Application Insights.The following examples return a summarized count of requests made against an app named fabrikamapp in Application Insights.

Att identifiera ett program i Application Insights kan utföras med ett app-uttryck (Identifier) .Identifying an application in Application Insights can be accomplished with the app(Identifier) expression. Argumentet Identifier anger appen med något av följande:The Identifier argument specifies the app using one of the following:

  • Resurs namn – är ett läsligt namn på appen, som ibland kallas för komponent namn.Resource name - is a human readable name of the app, sometimes referred to as the component name.

    app("fabrikamapp")

    Anteckning

    Att identifiera ett program efter namn förutsätter att det är unikt för alla tillgängliga prenumerationer.Identifying an application by name assumes uniqueness across all accessible subscriptions. Om du har flera program med det angivna namnet, Miss lyckas frågan på grund av tvetydigheten.If you have multiple applications with the specified name, the query fails because of the ambiguity. I så fall måste du använda någon av de andra identifierarna.In this case, you must use one of the other identifiers.

  • Kvalificerat namn – är det fullständiga namnet på appen, som består av prenumerations namnet, resurs gruppen och komponent namnet i följande format: subscriptionName/resourceGroup/componentName.Qualified name - is the “full name” of the app, composed of the subscription name, resource group, and component name in this format: subscriptionName/resourceGroup/componentName.

    app("AI-Prototype/Fabrikam/fabrikamapp").requests | count

    Anteckning

    Eftersom Azures prenumerations namn inte är unika kan den här identifieraren vara tvetydig.Because Azure subscription names are not unique, this identifier might be ambiguous.

  • ID – programmets GUID för programmet.ID - the app GUID of the application.

    app("b459b4f6-912x-46d5-9cb1-b43069212ab4").requests | count

  • Azure-resurs-ID – den Azure-definierade unika identiteten för appen.Azure Resource ID - the Azure-defined unique identity of the app. Du använder resurs-ID: t när resurs namnet är tvetydigt.You use the Resource ID when the resource name is ambiguous. Formatet är: /Subscriptions/subscriptionId/ResourceGroups/resourceGroup/providers/Microsoft. OperationalInsights/Components/componentName.The format is: /subscriptions/subscriptionId/resourcegroups/resourceGroup/providers/microsoft.OperationalInsights/components/componentName.

    Exempel:For example:

    app("/subscriptions/b459b4f6-912x-46d5-9cb1-b43069212ab4/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp").requests | count
    

Utföra en fråga över flera resurserPerforming a query across multiple resources

Du kan fråga flera resurser från någon av dina resurs instanser, och dessa kan vara arbets ytor och appar kombinerade.You can query multiple resources from any of your resource instances, these can be workspaces and apps combined.

Exempel för fråga över två arbets ytor:Example for query across two workspaces:

union Update, workspace("contosoretail-it").Update, workspace("b459b4u5-912x-46d5-9cb1-p43069212nb4").Update
| where TimeGenerated >= ago(1h)
| where UpdateState == "Needed"
| summarize dcount(Computer) by Classification

Använda frågor över flera resurser för flera resurserUsing cross-resource query for multiple resources

När du använder frågor över flera resurser för att korrelera data från flera arbets ytor Log Analytics och Application Insights resurser, kan frågan bli komplex och svår att underhålla.When using cross-resource queries to correlate data from multiple Log Analytics workspaces and Application Insights resources, the query can become complex and difficult to maintain. Du bör använda funktioner i Azure Monitor logg frågor för att avgränsa fråge logiken från omfånget för frågans resurser, vilket fören klar fråge strukturen.You should leverage functions in Azure Monitor log queries to separate the query logic from the scoping of the query resources, which simplifies the query structure. I följande exempel visas hur du kan övervaka flera Application Insights resurser och visualisera antalet misslyckade förfrågningar efter program namn.The following example demonstrates how you can monitor multiple Application Insights resources and visualize the count of failed requests by application name.

Skapa en fråga som refererar till omfånget för Application Insights resurser.Create a query like the following that references the scope of Application Insights resources. Kommandot withsource= SourceApp lägger till en kolumn som anger det program namn som skickade loggen.The withsource= SourceApp command adds a column that designates the application name that sent the log. Spara frågan som funktion med aliaset applicationsScoping.Save the query as function with the alias applicationsScoping.

// crossResource function that scopes my Application Insights resources
union withsource= SourceApp
app('Contoso-app1').requests, 
app('Contoso-app2').requests,
app('Contoso-app3').requests,
app('Contoso-app4').requests,
app('Contoso-app5').requests

Du kan nu använda den här funktionen i en kors resurs fråga som liknar följande.You can now use this function in a cross-resource query like the following. Funktions Ali Aset applicationsScoping returnerar unionen av begär ande tabellen från alla definierade program.The function alias applicationsScoping returns the union of the requests table from all the defined applications. Frågan filtrerar sedan efter misslyckade förfrågningar och visualiserar trender efter program.The query then filters for failed requests and visualizes the trends by application. Operatorn parse är valfri i det här exemplet.The parse operator is optional in this example. Den extraherar program namnet från egenskapen SourceApp .It extracts the application name from SourceApp property.

applicationsScoping 
| where timestamp > ago(12h)
| where success == 'False'
| parse SourceApp with * '(' applicationName ')' * 
| summarize count() by applicationName, bin(timestamp, 1h) 
| render timechart

Anteckning

Den här metoden kan inte användas med logg aviseringar eftersom åtkomst verifieringen av aviserings regel resurserna, inklusive arbets ytor och program, utförs när aviseringen skapas.This method can’t be used with log alerts because the access validation of the alert rule resources, including workspaces and applications, is performed at alert creation time. Det går inte att lägga till nya resurser till funktionen när aviseringen har skapats.Adding new resources to the function after the alert creation isn’t supported. Om du föredrar att använda funktionen för resurs omfång i logg aviseringar måste du redigera aviserings regeln i portalen eller med en Resource Manager-mall för att uppdatera de omfångs resurserna.If you prefer to use function for resource scoping in log alerts, you need to edit the alert rule in the portal or with a Resource Manager template to update the scoped resources. Du kan också inkludera listan över resurser i logg aviserings frågan.Alternatively, you can include the list of resources in the log alert query.

Timechart

Nästa stegNext steps