Standardní sloupce v protokolech služby Azure Monitor

Data v protokolech služby Azure Monitor se ukládají jako sada záznamů v pracovním prostoru služby Log Analytics nebo v aplikaci Application Insights, přičemž každý z nich má konkrétní datový typ, který má jedinečnou sadu sloupců. Mnoho datových typů bude mít standardní sloupce, které jsou společné pro více typů. Tento článek popisuje tyto sloupce a poskytuje příklady jejich použití v dotazech.

Aplikace založené na pracovních prostorech v Application Insights ukládají svá data do pracovního prostoru služby Log Analytics a používají stejné standardní sloupce jako ostatní tabulky v pracovním prostoru. Klasické aplikace ukládají svá data samostatně a mají různé standardní sloupce, jak je uvedeno v tomto článku.

Poznámka:

Některé ze standardních sloupců se v zobrazení schématu ani v IntelliSense v Log Analytics nezobrazí a nezobrazí se ve výsledcích dotazu, pokud explicitně nezadáte sloupec ve výstupu.

TenantId

Sloupec TenantId obsahuje ID pracovního prostoru pro pracovní prostor služby Log Analytics.

TimeGenerated

Sloupec TimeGenerated obsahuje datum a čas vytvoření záznamu zdrojem dat. Další podrobnosti najdete v tématu Čas příjmu dat protokolů ve službě Azure Monitor .

TimeGenerated poskytuje společný sloupec, který se používá k filtrování nebo sumarizaci podle času. Když vyberete časový rozsah zobrazení nebo řídicího panelu na webu Azure Portal, použije k filtrování výsledků TimeGenerated .

Poznámka:

Tabulky podporující klasické prostředky Application Insights používají místo sloupce TimeGenerated sloupec Časové razítko.

Poznámka:

Hodnota TimeGenerated nemůže být starší než 2 dny před přijatým časem nebo více než den v budoucnu. Pokud je v nějaké situaci hodnota starší než 2 dny nebo více než den v budoucnu, bude nahrazena skutečným časem přijetí.

Příklady

Následující dotaz vrátí počet chybových událostí vytvořených pro každý den v předchozím týdnu.

Event
| where EventLevelName == "Error" 
| where TimeGenerated between(startofweek(ago(7days))..endofweek(ago(7days))) 
| summarize count() by bin(TimeGenerated, 1day) 
| sort by TimeGenerated asc 

_TimeReceived

Sloupec _TimeReceived obsahuje datum a čas přijetí záznamu bodem příjmu služby Azure Monitor v cloudu Azure. To může být užitečné pro identifikaci problémů s latencí mezi zdrojem dat a cloudem. Příkladem může být problém se sítí, který způsobuje zpoždění při odesílání dat z agenta. Další podrobnosti najdete v tématu Čas příjmu dat protokolů ve službě Azure Monitor .

Poznámka:

Sloupec _TimeReceived se vypočítá při každém použití. Tento proces je náročný na prostředky. Nepoužívejte ho k filtrování velkého počtu záznamů. Opakované použití této funkce může vést ke zvýšení doby trvání provádění dotazů.

Následující dotaz poskytuje průměrnou latenci po hodinách pro záznamy událostí z agenta. To zahrnuje čas od agenta do cloudu a celkovou dobu, po které má záznam být dostupný pro dotazy protokolu.

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)

Typ

Sloupec Typ obsahuje název tabulky, ze které byl záznam načten, ze kterého lze také považovat za typ záznamu. Tento sloupec je užitečný v dotazech, které kombinují záznamy z více tabulek, například těch, které používají search operátor, k rozlišení záznamů různých typů. $table lze v některých dotazech použít místo typu.

Poznámka:

Tabulky podporující klasické prostředky Application Insights místo sloupce Typ používají sloupec itemType.

Příklady

Následující dotaz vrátí počet záznamů podle typu shromažďovaného za poslední hodinu.

search * 
| where TimeGenerated > ago(1h)
| summarize count() by Type

_ItemId

Sloupec _ItemId obsahuje jedinečný identifikátor záznamu.

_ResourceId

Sloupec _ResourceId obsahuje jedinečný identifikátor prostředku, ke kterému je záznam přidružený. Tím získáte standardní sloupec, který můžete použít k určení rozsahu dotazu jenom na záznamy z konkrétního prostředku nebo ke spojení souvisejících dat mezi více tabulkami.

U prostředků Azure je hodnota _ResourceId adresa URL ID prostředku Azure. Sloupec je omezený na prostředky Azure, včetně prostředků Azure Arc , nebo na vlastní protokoly, které během příjmu dat označily ID prostředku.

Poznámka:

Některé datové typy už obsahují pole, která obsahují ID prostředku Azure nebo alespoň jeho části, jako je ID předplatného. I když jsou tato pole udržována kvůli zpětné kompatibilitě, doporučujeme použít _ResourceId k provádění křížové korelace, protože bude konzistentnější.

Příklady

Následující dotaz spojuje údaje o výkonu a událostech pro každý počítač. Zobrazuje všechny události s ID 101 a využitím procesoru nad 50 %.

Perf 
| where CounterName == "% User Time" and CounterValue  > 50 and _ResourceId != "" 
| join kind=inner (     
    Event 
    | where EventID == 101 
) on _ResourceId

Následující dotaz spojí záznamy AzureActivity s záznamy SecurityEvent . Zobrazuje všechny operace aktivit s uživateli, kteří byli přihlášeni k těmto počítačům.

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  

Následující dotaz analyzuje _ResourceId a agreguje fakturované datové svazky na skupinu prostředků Azure.

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 

Tyto union withsource = tt * dotazy používejte střídmě, protože provádění kontrol napříč datovými typy je nákladné.

Vždy je efektivnější použít sloupec _SubscriptionId, než ho extrahovat parsováním sloupce _ResourceId.

_SubscriptionId

Sloupec _SubscriptionId obsahuje ID předplatného prostředku, ke kterému je záznam přidružený. Tím získáte standardní sloupec, který můžete použít k určení rozsahu dotazu jenom na záznamy z konkrétního předplatného nebo porovnat různá předplatná.

U prostředků Azure je hodnota __SubscriptionId součástí předplatného adresy URL ID prostředku Azure. Sloupec je omezený na prostředky Azure, včetně prostředků Azure Arc , nebo na vlastní protokoly, které během příjmu dat označily ID předplatného.

Poznámka:

Některé datové typy již mají pole, která obsahují ID předplatného Azure . I když jsou tato pole udržována kvůli zpětné kompatibilitě, doporučujeme použít sloupec _SubscriptionId k provádění křížové korelace, protože bude konzistentnější.

Příklady

Následující dotaz zkoumá údaje o výkonu pro počítače konkrétního předplatného.

Perf 
| where TimeGenerated > ago(24h) and CounterName == "memoryAllocatableBytes"
| where _SubscriptionId == "ebb79bc0-aa86-44a7-8111-cabbe0c43993"
| summarize avgMemoryAllocatableBytes = avg(CounterValue) by Computer

Následující dotaz analyzuje _ResourceId a agreguje fakturované datové svazky na předplatné Azure.

union withsource = tt * 
| where _IsBillable == true 
| summarize Bytes=sum(_BilledSize) by _SubscriptionId | sort by Bytes nulls last 

Tyto union withsource = tt * dotazy používejte střídmě, protože provádění kontrol napříč datovými typy je nákladné.

_IsBillable

Sloupec _IsBillable určuje, jestli se ingestovaná data považují za fakturovatelná. U dat s _IsBillable , která false se rovnají, se neúčtují poplatky za příjem dat, uchovávání nebo archivaci.

Příklady

Pokud chcete získat seznam počítačů odesílaných fakturovanými datovými typy, použijte následující dotaz:

Poznámka:

Použití dotazů s union withsource = tt * střídmým způsobem jako prohledávání napříč datovými typy je nákladné provést.

union withsource = tt * 
| where _IsBillable == true 
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize TotalVolumeBytes=sum(_BilledSize) by computerName

Můžete ho rozšířit, aby se vrátil počet počítačů za hodinu, které odesílají fakturované datové typy:

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

Sloupec _BilledSize určuje velikost v bajtech dat, která se budou účtovat vašemu účtu Azure, pokud _IsBillable je pravdivá. Další informace o způsobu výpočtu fakturované velikosti najdete v výpočtu velikosti dat.

Příklady

Pokud chcete zobrazit velikost fakturovatelných událostí přijatých na počítač, použijte _BilledSize sloupec, který poskytuje velikost v bajtech:

union withsource = tt * 
| where _IsBillable == true 
| summarize Bytes=sum(_BilledSize) by  Computer | sort by Bytes nulls last 

Pokud chcete zobrazit velikost fakturovatelných událostí přijatých na předplatné, použijte následující dotaz:

union withsource=table * 
| where _IsBillable == true 
| summarize Bytes=sum(_BilledSize) by  _SubscriptionId | sort by Bytes nulls last 

Pokud chcete zobrazit velikost fakturovatelných událostí přijatých pro každou skupinu prostředků, použijte následující dotaz:

union withsource=table * 
| where _IsBillable == true 
| parse _ResourceId with "/subscriptions/" SubscriptionId "/resourcegroups/" ResourceGroupName "/" *
| summarize Bytes=sum(_BilledSize) by  _SubscriptionId, ResourceGroupName | sort by Bytes nulls last 

Pokud chcete zobrazit počet přijatých událostí na počítač, použijte následující dotaz:

union withsource = tt *
| summarize count() by Computer | sort by count_ nulls last

Pokud chcete zobrazit počet fakturovatelných událostí přijatých na počítač, použijte následující dotaz:

union withsource = tt * 
| where _IsBillable == true 
| summarize count() by Computer  | sort by count_ nulls last

Pokud chcete zobrazit počet fakturovatelných datových typů z konkrétního počítače, použijte následující dotaz:

union withsource = tt *
| where Computer == "computer name"
| where _IsBillable == true 
| summarize count() by tt | sort by count_ nulls last 

Další kroky