Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Data i Azure Monitor-loggar lagras som en uppsättning poster i antingen en Log Analytics-arbetsyta eller en Application Insights-app. Varje datatyp har en unik uppsättning kolumner. Många datatyper har standardkolumner som är gemensamma för flera typer. Den här artikeln beskriver dessa kolumner och innehåller exempel på hur du använder dem i frågor.
Arbetsytebaserade program i Application Insights lagrar sina data på en Log Analytics-arbetsyta och använder samma standardkolumner som andra tabeller på arbetsytan. Klassiska program lagrar sina data separat och har olika standardkolumner enligt beskrivningen i den här artikeln.
I följande tabell sammanfattas standardkolumnerna. Klassiska Application Insights-tabeller använder olika kolumnnamn där de anges.
| Column | Description | Gäller för |
|---|---|---|
TenantId |
Arbetsyte-ID för Log Analytics arbetsyta. | Workspace |
TimeGenerated |
Datum och tid då posten skapades av datakällan. Klassiska Application Insights-tabeller använder Timestamp. |
Arbetsyta och klassisk Application Insights |
_TimeReceived |
Datum och tid då posten togs emot av Azure Monitors inmatningspunkt. | Workspace |
Type |
Namnet på tabellen som posten hämtades från. Klassiska Application Insights-tabeller använder itemType. |
Arbetsyta och klassiska Application Insights |
_ItemId |
Unik identifierare för posten. | Workspace |
_ResourceId |
Unik identifierare för den resurs som posten är kopplad till. | Workspace |
_SubscriptionId |
Prenumerations-ID för resursen som posten är associerad med. | Workspace |
_IsBillable |
Om inmatade data är fakturerbara. | Workspace |
_BilledSize |
Storlek i byte för fakturerade data. | Workspace |
Kommentar
Vissa av standardkolumnerna visas inte i schemavyn eller IntelliSense i Log Analytics. De visas inte i frågeresultat om du inte uttryckligen anger kolumnen i utdata.
TenantId-kolumnen
Kolumnen TenantId innehåller arbetsyte-ID:t för Log Analytics-arbetsytan.
TimeGenerated-kolumnen
Kolumnen TimeGenerated innehåller datum och tid när datakällan skapade posten. Mer information finns i Inmatningstid för loggdata i Azure Monitor.
TimeGenerated innehåller en gemensam kolumn som du kan använda för att filtrera eller sammanfatta efter tid. När du väljer ett tidsintervall för en vy eller instrumentpanel i Azure Portal används TimeGenerated för att filtrera resultatet.
Tabeller som stöder klassiska Application Insights-resurser använder kolumnen Tidsstämpel i stället för kolumnen TimeGenerated . Värdet TimeGenerated får inte vara äldre än två dagar före den mottagna tiden eller mer än en dag i framtiden. Om värdet ligger utanför intervallet ersätter Azure Monitor det med den faktiska mottagna tiden.
Exempel
Följande fråga returnerar antalet felhändelser som skapats för varje dag föregående vecka.
Event
| where EventLevelName == "Error"
| where TimeGenerated between(startofweek(ago(7days))..endofweek(ago(7days)))
| summarize count() by bin(TimeGenerated, 1day)
| sort by TimeGenerated asc
_TimeReceived-kolumnen
Kolumnen _TimeReceived innehåller datum och tid då posten togs emot av Azure Monitor-inmatningspunkten i Azure-molnet. Detta kan vara användbart för att identifiera problem med svarstid mellan datakällan och molnet. Ett exempel är ett nätverksproblem som orsakar en fördröjning när data skickas från en agent. Mer information finns i Loggdatainmatningstid i Azure Monitor .
Kommentar
Kolumnen _TimeReceived beräknas varje gång den används. Den här processen är resursintensiv. Avstå från att använda den för att filtrera ett stort antal poster. Om du använder den här funktionen återkommande kan det leda till en ökad exekveringstid för frågor.
Följande fråga ger den genomsnittliga svarstiden per timme för händelseposter från en agent. Detta inkluderar tiden från agenten till molnet och den totala tiden för posten att vara tillgänglig för loggfrågor.
Event
| where TimeGenerated > ago(1d)
| project TimeGenerated, TimeReceived = _TimeReceived, IngestionTime = ingestion_time()
| extend AgentLatency = toreal(datetime_diff('Millisecond',TimeReceived,TimeGenerated)) / 1000
| extend TotalLatency = toreal(datetime_diff('Millisecond',IngestionTime,TimeGenerated)) / 1000
| summarize avg(AgentLatency), avg(TotalLatency) by bin(TimeGenerated,1hr)
Skriv kolumn
Kolumnen Typ innehåller namnet på den tabell som posten hämtades från, vilket också kan betraktas som postens typ. Den här kolumnen är användbar i frågor som kombinerar poster från flera tabeller, till exempel de som använder operatorn search , för att skilja mellan poster av olika typer.
$table kan användas i stället för Typ i vissa frågor.
Kommentar
Tabeller som stöder klassiska Application Insights-resurser använder kolumnen itemType i stället för kolumnen Typ .
Exempel
Följande fråga returnerar antalet poster efter typ som samlats in under den senaste timmen.
search *
| where TimeGenerated > ago(1h)
| summarize count() by Type
_ItemId-kolumnen
Kolumnen _ItemId innehåller en unik identifierare för posten.
_ResourceId-kolumnen
Kolumnen _ResourceId innehåller en unik identifierare för resursen som posten är associerad med. Detta ger dig en standardkolumn som du kan använda för att begränsa frågan till endast poster från en viss resurs eller för att koppla relaterade data mellan flera tabeller.
För Azure-resurser är värdet på _ResourceId den Azure-resurs-ID-URL. Kolumnen är begränsad till Azure-resurser, inklusive Azure Arc-resurser , eller anpassade loggar som angav resurs-ID under inmatning.
Kommentar
Vissa datatyper har redan fält som innehåller Azure-resurs-ID eller åtminstone delar av det som prenumerations-ID. Även om dessa fält sparas för bakåtkompatibilitet rekommenderar vi att du använder _ResourceId för att utföra korskorrelation eftersom det är mer konsekvent.
Exempel
Följande fråga kopplar prestanda- och händelsedata för varje dator. Den visar alla händelser med ett ID på 101 och processoranvändning över 50 %.
Perf
| where CounterName == "% User Time" and CounterValue > 50 and _ResourceId != ""
| join kind=inner (
Event
| where EventID == 101
) on _ResourceId
Följande fråga kopplar AzureActivity-poster till SecurityEvent-poster. Den visar alla aktivitetsåtgärder med användare som har loggat in på dessa datorer.
AzureActivity
| where
OperationName in ("Restart Virtual Machine", "Create or Update Virtual Machine", "Delete Virtual Machine")
and ActivityStatus == "Succeeded"
| join kind= leftouter (
SecurityEvent
| where EventID == 4624
| summarize LoggedOnAccounts = makeset(Account) by _ResourceId
) on _ResourceId
Följande fråga parsar _ResourceId och aggregerar fakturerade datavolymer per Azure-resursgrupp.
union withsource = tt *
| where _IsBillable == true
| parse tolower(_ResourceId) with "/subscriptions/" subscriptionId "/resourcegroups/"
resourceGroup "/providers/" provider "/" resourceType "/" resourceName
| summarize Bytes=sum(_BilledSize) by resourceGroup | sort by Bytes nulls last
Använd dessa union withsource=tt * frågor sparsamt eftersom genomsökningar mellan datatyper är dyra att köra.
Det är alltid effektivare att använda kolumnen _SubscriptionId än att extrahera den genom att parsa kolumnen _ResourceId.
_SubscriptionId-kolumnen
Kolumnen _SubscriptionId innehåller prenumerations-ID för resursen som posten är associerad med. Detta ger dig en standardkolumn som du kan använda för att begränsa frågan till endast poster från en viss prenumeration eller för att jämföra olika prenumerationer.
För Azure-resurser är värdet för _SubscriptionId den prenumerationsdel av Azure-resurs-ID-URL:en. Den här kolumnen är begränsad till Azure resurser, inklusive Azure Arc resurser, eller anpassade loggar som anger prenumerations-ID under inmatning.
Kommentar
Vissa datatyper har redan fält som innehåller Azure-prenumerations-ID . Även om dessa fält sparas för bakåtkompatibilitet rekommenderar vi att du använder kolumnen _SubscriptionId för att utföra korskorrelation eftersom den är mer konsekvent.
Exempel
Följande fråga undersöker prestandadata för datorer i en specifik prenumeration.
Perf
| where TimeGenerated > ago(24h) and CounterName == "memoryAllocatableBytes"
| where _SubscriptionId == "ebb79bc0-aa86-44a7-8111-cabbe0c43993"
| summarize avgMemoryAllocatableBytes = avg(CounterValue) by Computer
Följande fråga parsar _ResourceId och aggregerar fakturerade datavolymer per Azure-prenumeration.
union withsource = tt *
| where _IsBillable == true
| summarize Bytes=sum(_BilledSize) by _SubscriptionId | sort by Bytes nulls last
Som anges för kolumnen _ResourceId använder du union withsource = tt * frågor sparsamt eftersom genomsökningar mellan datatyper är dyra att köra.
_IsBillable kolumn
Kolumnen _IsBillable anger om inmatade data anses vara fakturerbara. Data med _IsBillable lika med false medför inte datainmatning, kvarhållning, replikering av arbetsytor eller arkivavgifter.
Exempel
Om du vill hämta en lista över datorer som skickar fakturerade datatyper använder du följande fråga. Som anges för kolumnen _ResourceId använder du union withsource = tt * frågor sparsamt eftersom genomsökningar mellan datatyper är dyra att köra.
union withsource = tt *
| where _IsBillable == true
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize TotalVolumeBytes=sum(_BilledSize) by computerName
Detta kan utökas för att returnera antalet datorer per timme som skickar fakturerade datatyper:
union withsource = tt *
| where _IsBillable == true
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize dcount(computerName) by bin(TimeGenerated, 1h) | sort by TimeGenerated asc
_BilledSize-kolumn
Kolumnen _BilledSize anger storleken i byte av data som faktureras till ditt Azure-konto om _IsBillable är sant. Mer information om hur den fakturerade storleken beräknas finns i Beräkning av datastorlek.
Exempel
Om du vill se storleken på fakturerbara händelser som matas in per dator använder du _BilledSize kolumnen som ger storleken i byte:
union withsource = tt *
| where _IsBillable == true
| summarize Bytes=sum(_BilledSize) by Computer | sort by Bytes nulls last
Om du vill se storleken på fakturerbara händelser som matas in per prenumeration använder du följande fråga:
union withsource = tt *
| where _IsBillable == true
| summarize Bytes=sum(_BilledSize) by _SubscriptionId | sort by Bytes nulls last
Om du vill se storleken på fakturerbara händelser som matas in per resursgrupp använder du följande fråga:
union withsource = tt *
| where _IsBillable == true
| parse _ResourceId with "/subscriptions/" SubscriptionId "/resourcegroups/" ResourceGroupName "/" *
| summarize Bytes=sum(_BilledSize) by _SubscriptionId, ResourceGroupName | sort by Bytes nulls last
Om du vill se antalet händelser som matas in per dator använder du följande fråga:
union withsource = tt *
| summarize count() by Computer | sort by count_ nulls last
Om du vill se antalet fakturerbara händelser som matas in per dator använder du följande fråga:
union withsource = tt *
| where _IsBillable == true
| summarize count() by Computer | sort by count_ nulls last
Om du vill se antalet fakturerbara datatyper från en viss dator använder du följande fråga:
union withsource = tt *
| where Computer == "computer name"
| where _IsBillable == true
| summarize count() by tt | sort by count_ nulls last
Nästa steg
- Läs mer om hur Azure Monitor-loggdata lagras.
- Få en lektion om hur du skriver loggfrågor.
- Få en lektion om hur du ansluter tabeller i loggfrågor.