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
- Přečtěte si další informace o ukládání dat protokolu služby Azure Monitor.
- Získejte lekci o psaní dotazů protokolu.
- Získejte lekci o spojování tabulek v dotazech protokolu.