Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
Det finns två sätt att fråga efter data från flera arbetsytor, program och resurser:
Den här artikeln beskriver hur du använder uttrycken workspace()
, app()
och resource()
för att fråga efter data från flera Log Analytics-arbetsytor, program och resurser.
Om du hanterar prenumerationer i andra Microsoft Entra-klienter via Azure Lighthouse kan du inkludera Log Analytics-arbetsytor som skapats i dessa kundklientorganisationer i dina frågor.
Viktigt
Om du använder en arbetsytebaserad Application Insights-resurs lagras telemetri på en Log Analytics-arbetsyta med alla andra loggdata. Använd uttrycket workspace()
för att fråga efter data från program på flera arbetsytor. Du behöver ingen fråga mellan arbetsytor för att köra frågor mot data från flera program på samma arbetsyta.
Åtgärd | Behörigheter som krävs |
---|---|
Kontrollera arbetsytans tillstånd | Microsoft.OperationalInsights/workspaces/query/*/read behörigheter till de Log Analytics-arbetsytor som du frågar efter, till exempel den inbyggda rollen Log Analytics Reader. |
Spara en fråga | microsoft.operationalinsights/querypacks/queries/action behörigheter till frågepaketet där du till exempel vill spara frågan, enligt log analytics-deltagarens inbyggda roll. |
adx()
, arg()
, resource()
, workspace()
och app()
.I det här avsnittet beskrivs hur du frågar arbetsytor, program och resurser med hjälp av funktioner med och utan att använda en funktion.
Du kan köra frågor mot flera resurser från någon av dina resursinstanser. Dessa resurser kan vara arbetsytor och appar tillsammans.
Exempel på en fråga mellan tre arbetsytor:
union
Update,
workspace("00000000-0000-0000-0000-000000000001").Update,
workspace("00000000-0000-0000-0000-000000000002").Update
| where TimeGenerated >= ago(1h)
| where UpdateState == "Needed"
| summarize dcount(Computer) by Classification
Mer information om unionen, var och sammanfatta operatorer finns i fackföreningsoperatorn, var operatorn och sammanfatta operatorn.
När du använder frågor mellan resurser för att korrelera data från flera Log Analytics-arbetsytor och Application Insights-komponenter kan frågan bli komplex och svår att underhålla. Du bör använda funktioner i Azure Monitor-loggfrågor för att skilja frågelogik från omfånget för frågeresurserna. Den här metoden förenklar frågestrukturen. I följande exempel visas hur du kan övervaka flera Application Insights-komponenter och visualisera antalet misslyckade begäranden efter programnamn.
Skapa en fråga som i följande exempel som refererar till omfånget för Application Insights-komponenter. Kommandot withsource= SourceApp
lägger till en kolumn som anger programnamnet som skickade loggen. Spara frågan som en funktion med aliaset applicationsScoping
.
// crossResource function that scopes my Application Insights components
union withsource= SourceApp
app('00000000-0000-0000-0000-000000000000').requests,
app('00000000-0000-0000-0000-000000000001').requests,
app('00000000-0000-0000-0000-000000000002').requests,
app('00000000-0000-0000-0000-000000000003').requests,
app('00000000-0000-0000-0000-000000000004').requests
Du kan nu använda den här funktionen i en fråga mellan resurser som i följande exempel. Funktionsaliaset applicationsScoping
returnerar en union av begärandetabellen från alla definierade program. Frågan filtrerar sedan efter misslyckade begäranden och visualiserar trenderna per program. Operatorn parse
är valfri i det här exemplet. Den extraherar programnamnet från SourceApp
egenskapen .
applicationsScoping
| where timestamp > ago(12h)
| where success == 'False'
| parse SourceApp with * '(' applicationId ')' *
| summarize count() by applicationId, bin(timestamp, 1h)
| render timechart
Anteckning
Den här metoden kan inte användas med loggsökningsaviseringar eftersom åtkomstverifieringen av aviseringsregelresurserna, inklusive arbetsytor och program, utförs när aviseringar skapas. Det går inte att lägga till nya resurser i funktionen när aviseringen har skapats. Om du föredrar att använda en funktion för resursomfång i loggsökningsaviseringar måste du redigera aviseringsregeln i portalen eller med en Azure Resource Manager-mall för att uppdatera de begränsade resurserna. Du kan också inkludera listan över resurser i aviseringsfrågan för loggsökning.
Använd uttrycket workspace()
för att hämta data från en specifik arbetsyta i samma resursgrupp, en annan resursgrupp eller en annan prenumeration. Du kan använda det här uttrycket för att inkludera loggdata i en Application Insights-fråga och för att fråga data över flera arbetsytor i en loggfråga.
workspace(
Identifierare)
*Identifier*
: Identifierar arbetsytan med något av formaten i följande tabell.
Identifierare | beskrivning | Exempel |
---|---|---|
ID | GUID för arbetsytan | workspace("00000000-0000-0000-0000-000000000000") |
Azure Resource ID | Identifierare för Azure-resursen | workspace("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Contoso/providers/Microsoft.OperationalInsights/workspaces/contosoretail") |
workspace("00000000-0000-0000-0000-000000000000").Update | count
workspace("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Contoso/providers/Microsoft.OperationalInsights/workspaces/contosoretail").Event | count
union
( workspace("00000000-0000-0000-0000-000000000000").Heartbeat | where Computer == "myComputer"),
(app("00000000-0000-0000-0000-000000000000").requests | where cloud_RoleInstance == "myRoleInstance")
| count
union
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat), (app("00000000-0000-0000-0000-000000000000").requests) | where TimeGenerated between(todatetime("2023-03-08 15:00:00") .. todatetime("2023-04-08 15:05:00"))
Använd uttrycket app
för att hämta data från en specifik klassisk Application Insights-resurs i samma resursgrupp, en annan resursgrupp eller en annan prenumeration. Om du använder en arbetsytebaserad Application Insights-resurs lagras telemetri på en Log Analytics-arbetsyta med alla andra loggdata. Använd uttrycket workspace()
för att fråga efter data från program på flera arbetsytor. Du behöver ingen fråga mellan arbetsytor för att köra frågor mot data från flera program på samma arbetsyta.
app(
Identifierare)
*Identifier*
: Identifierar appen med något av formaten i tabellen nedan.
Identifierare | beskrivning | Exempel |
---|---|---|
ID | GUID för appen | app("00000000-0000-0000-0000-0000000000000") |
Azure Resource ID | Identifierare för Azure-resursen | app("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp") |
app("00000000-0000-0000-0000-000000000000").requests | count
app("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Fabrikam/providers/microsoft.insights/components/fabrikamapp").requests | count
union
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat | where Computer == "myComputer"),
(app("00000000-0000-0000-0000-000000000000").requests | where cloud_RoleInstance == "myColumnInstance")
| count
union
(workspace("00000000-0000-0000-0000-000000000000").Heartbeat), (app("00000000-0000-0000-0000-000000000000").requests)
| where TimeGenerated between(todatetime("2023-03-08 15:00:00") .. todatetime("2023-04-08 15:05:00"))
Uttrycket resource
används i en Azure Monitor-fråga som är begränsad till en resurs för att hämta data från andra resurser.
resource(
Identifierare)
*Identifier*
: Identifierar resursen, resursgruppen eller prenumerationen som data ska korreleras från.
Identifierare | beskrivning | Exempel |
---|---|---|
Resurs | Innehåller data för resursen. | resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcesgroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm") |
Resursgrupp eller prenumeration | Innehåller data för resursen och alla resurser som den innehåller. | resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxx/resourcesgroups/myresourcegroup) |
union (Heartbeat),(resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcesgroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm").Heartbeat) | summarize count() by _ResourceId, TenantId
union (Heartbeat),(resource("/subscriptions/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcesgroups/myresourcegroup").Heartbeat) | summarize count() by _ResourceId, TenantId
Se Analysera loggdata i Azure Monitor för en översikt över loggfrågor och hur Azure Monitor-loggdata är strukturerade.
Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuUtbildning
Utbildningsväg
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization