Sdílet prostřednictvím


AzureDiagnostics

Ukládá protokoly prostředků pro služby Azure, které používají režim Diagnostiky Azure. Protokoly prostředků popisují interní provoz prostředků Azure.

Protokol prostředků pro jednotlivé služby Azure má jedinečnou sadu sloupců. Tabulka AzureDiagnostics obsahuje nejběžnější sloupce používané službami Azure. Pokud protokol prostředků obsahuje sloupec, který ještě neexistuje v tabulce AzureDiagnostics, přidá se tento sloupec při prvním shromažďování dat. Pokud je dosaženo maximálního počtu 500 sloupců, data pro všechny další sloupce se přidají do dynamického sloupce.

Služby Azure, které používají režim specifický pro prostředky, ukládají data v tabulce specifické pro danou službu a nepoužívají tabulku AzureDiagnostics. Podrobnosti o rozdílech najdete v protokolech prostředků Azure. Viz Prostředky využívající režim Diagnostiky Azure pro služby, které používají Azure Diagnostics.

Poznámka:

Tabulka AzureDiagnostics je vlastní tabulka protokolů vytvořená výhradně kanálem služby Azure Monitor při prvním zahájení odesílání protokolů v režimu diagnostiky Azure. Na rozdíl od jiných tabulek není možné tabulku AzureDiagnostics vytvořit pomocí šablony ARM nebo rozhraní API pro tabulky. V důsledku toho není možné před vytvořením upravit výchozí hodnoty uchovávání informací tabulky.

Sloupec AdditionalFields

Na rozdíl od jiných tabulek je AzureDiagnostics mnohem náchylnější k překročení limitu 500 sloupců uložených pro libovolnou tabulku v pracovním prostoru služby Log Analytics z důvodu široké škály prostředků Azure umožňujících odesílat data do této tabulky. Aby se zajistilo, že se neztratí žádná data kvůli počtu aktivních sloupců překračujících tento limit 500 sloupců, zpracovává se vytváření sloupců AzureDiagnostics jiným způsobem s jinými tabulkami.

Tabulka AzureDiagnostics v každém pracovním prostoru obsahuje minimálně stejných 200 sloupců. V případě pracovních prostorů vytvořených před 19. lednem 2021 obsahuje tabulka také všechny sloupce, které už byly zavedeny před tímto datem. Když se data odesílají do sloupce, který ještě není na místě:

  • Pokud celkový počet sloupců v AzureDiagnostics v aktuálním pracovním prostoru nepřekročí 500, vytvoří se nový sloupec stejně jako u jakékoli jiné tabulky.
  • Pokud je celkový počet sloupců vyšší nebo vyšší než 500, přidají se nadbytečná data do sloupce dynamické tašky vlastností s názvem AdditionalFields jako vlastnost.

Příklad

Pro ilustraci tohoto chování si představte, že od (data nasazení) tabulka AzureDiagnostics v našem pracovním prostoru vypadá takto:

Sloupec 1 Sloupec 2 Sloupec 3 ... Sloupec 498
abc def 123 ... 456
... ... ... ... ...

Prostředek, který odesílá data do AzureDiagnostics , pak přidá do svých dat novou dimenzi, kterou volají NewInfo1. Vzhledem k tomu, že tabulka stále obsahuje méně než 500 sloupců, při první události, která obsahuje data pro tuto novou dimenzi, přidá do tabulky nový sloupec:

Sloupec 1 Sloupec 2 Sloupec 3 ... Sloupec 498 NewInfo1_s
abc def 123 ... 456 xyz
... ... ... ... ... ...

Tato nová data můžete vrátit v jednoduchém dotazu:

AzureDiagnostics | where NewInfo1_s == "xyz"

Později odešle jiný prostředek data do AzureDiagnostics , který přidá nové dimenze s názvem NewInfo2 a NewInfo3. Protože tabulka dosáhla 500 sloupců v tomto pracovním prostoru, nová data se přejdou do sloupce AdditionalFields :

Sloupec 1 Sloupec 2 Sloupec 3 ... Sloupec 498 NewInfo1_s Další pole
abc def 123 ... 456 xyz {"NewInfo2":"789","NewInfo3":"qwerty"}
... ... ... ... ... ... ...

Stále můžete dotazovat na tato data, ale musíte je extrahovat z tašky vlastností pomocí libovolného operátoru dynamických vlastností v KQL:

AzureDiagnostics
| where AdditionalFields.NewInfo2 == "789" and AdditionalFields.NewInfo3 == "qwerty"

Tipy k používání AdditionalFields sloupce

I když by se měly dodržovat osvědčené postupy pro dotazy, jako je vždy filtrování podle času jako první klauzule v dotazu, měli byste při práci s AdditionalFields zvážit několik dalších doporučení:

  • Před provedením dalších operací s daty je nutné zadat data vysílání. Pokud máte například sloupec s názvem Perf1Sec_i a vlastnost v AdditionalFields s názvem Perf2Sec a chcete vypočítat celkový výkon přidáním obou hodnot, můžete použít následující: AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | .....
  • Klauzule where slouží ke snížení objemu dat na nejmenší možný objem dat před zápisem jakékoli složité logiky, aby se výrazně zlepšil výkon. TimeGenerated je jeden sloupec, který by se měl vždy snížit na nejmenší možné okno. V případě AzureDiagnostics by měl být v horní části dotazu vždy zahrnutý další filtr kolem typů prostředků, které se dotazují pomocí sloupce ResourceType .
  • Při dotazování velkých objemů dat je někdy efektivnější provádět filtr na AdditionalFields jako celek a ne parsovat je. Například u velkých objemů dat AzureDiagnostics | where AdditionalFields has "Perf2Sec" je často efektivnější než AzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec)).

Prostředky s využitím režimu Diagnostiky Azure

Následující služby používají pro své protokoly prostředků režim diagnostiky Azure a odesílají data do tabulky Azure Diagnostics. Podrobnosti o této konfiguraci najdete v protokolech prostředků Azure.

Poznámka:

Všechny ostatní prostředky odesílají data do tabulek specifických pro prostředky.

Service name resourceType
MicrosoftSqlAzureTelemetryv3 microsoft.sql/ servery/ databáze
MicrosoftAzureCosmosDB microsoft.documentdb/databaseaccounts
AzureFirewall microsoft.network/azurefirewalls
AzureApplicationGatewayService microsoft.network/applicationgateways
AKSCustomerData microsoft.containerservice/managedclusters
AzureFrontdoor microsoft.cdn/profiles
LNMAgentService microsoft.network/networksecuritygroups
MicrosoftOrcasBreadthServers microsoft.dbforpostgresql/flexibleservers
servicebus microsoft.eventhub/namespaces
AzureFrontdoor microsoft.network/frontdoors
AzureKeyVault microsoft.keyvault/vaults
AzureDataLake microsoft.datalakestore/accounts
ApiManagement microsoft.apimanagement/service
MicrosoftSqlAzureTelemetryv3 microsoft.sql/managedinstances
ASAzureRP microsoft.analysisservices/servers
MicrosoftOrcasBreadthServers microsoft.dbformysql/flexibleservers
servicebus microsoft.servicebus/namespaces
AzureIotHub microsoft.devices/iothubs
MicrosoftSqlAzureTelemetryv2 microsoft.dbforpostgresql/servers
MicrosoftSqlAzureTelemetryv2 microsoft.dbformariadb/servers
MicrosoftAutomation microsoft.automation/automationaccounts
TrafficManager microsoft.network/trafficmanagerprofiles
MicrosoftOrcasBreadthServers microsoft.dbforpostgresql/servergroupsv2
AzureSearch microsoft.search/searchservices
AzureHybrid microsoft.network/virtualnetworkgateways
MicrosoftSqlAzureTelemetryv3 microsoft.sql/managedinstances/databases
PBIDedicatedRP microsoft.powerbidedicated/capacities
AzureHybrid microsoft.network/vpngateways
MicrosoftDatafactory microsoft.datafactory/factory
MicrosoftCognitiveServices microsoft.cognitiveservices/accounts
AzureRecoveryServices microsoft.recoveryservices/vaults
AzureBatch microsoft.batch/batchaccounts
AzureHybrid microsoft.network/p2svpngateways
MicrosoftSqlAzureTelemetryv2 microsoft.dbformysql/servers
AzureKeyVault microsoft.keyvault/managedhsms
NetMon microsoft.network/publicipaddresses
AzureDataLake microsoft.datalakeanalytics/accounts
MicrosoftStreamanalytics microsoft.streamanalytics/streamingjobs
servicebus microsoft.relay/namespaces
AzureIotDps microsoft.devices/provisioningservices
MicrosoftAzureCosmosDB microsoft.documentdb/cassandraclusters
MicrosoftAzureCosmosDB microsoft.documentdb/mongoclusters
AKSCustomerData microsoft.containerservice/fleets
PBIDedicatedRP microsoft.powerbi/tenants/workspaces
AzureFrontdoor microsoft.cdn/cdnwebapplicationfirewallpolicies
AzureHybrid microsoft.network/expressroutecircuits
MicrosoftAzureCosmosDB microsoft.dbforpostgresql/flexibleservers
NetMon microsoft.network/publicipprefixes
AzureCdn microsoft.cdn/profiles/endpoints

Režim diagnostiky Azure nebo režim specifický pro prostředky

Následující služby používají pro své protokoly prostředků režim diagnostiky Azure nebo režim specifický pro prostředky v závislosti na konfiguraci nastavení diagnostiky. Při použití režimu specifického pro prostředky tyto prostředky neodesílají data do tabulky AzureDiagnostics. Podrobnosti o této konfiguraci najdete v protokolech prostředků Azure.

Service name resourceType
Služby API Management Microsoft.ApiManagement
Azure Cosmos DB Microsoft.DocumentDB/databaseAccounts
Datové továrny (V2) Microsoft.DataFactory
Trezory služby Recovery Services (Zálohování) Microsoft.RecoveryServices/vaults
Brány firewall Microsoft.Network/azureFirewalls

Sloupce tabulky AzureDiagnostics

Column Type Popis
action_id_s String
action_name_s String
action_s String
ActivityId_g Guid
Další pole
AdHocOrScheduledJob_s String
application_name_s String
audit_schema_version_d Hodnota s dvojitou přesností
avg_cpu_percent_s String
avg_mean_time_s String
backendHostname_s String
Caller_s String
callerId_s String
CallerIPAddress String
calls_s String
Kategorie String
client_ip_s String
clientInfo_s String
clientIP_s String
clientIp_s String
clientIpAddress_s String
clientPort_d Hodnota s dvojitou přesností
code_s String
collectionName_s String
conditions_destinationIP_s String
conditions_destinationPortRange_s String
conditions_None_s String
conditions_protocols_s String
conditions_sourceIP_s String
conditions_sourcePortRange_s String
CorrelationId String
count_executions_d Hodnota s dvojitou přesností
cpu_time_d Hodnota s dvojitou přesností
database_name_s String
database_principal_name_s String
DatabaseName_s String
db_id_s String
direction_s String
dop_d Hodnota s dvojitou přesností
duration_d Hodnota s dvojitou přesností
duration_milliseconds_d Hodnota s dvojitou přesností
DurationMs BigInt
ElasticPoolName_s String
endTime_t DateTime
Environment_s String
error_code_s String
error_message_s String
errorLevel_s String
event_class_s String
event_s String
event_subclass_s String
event_time_t DateTime
EventName_s String
execution_type_d Hodnota s dvojitou přesností
executionInfo_endTime_t DateTime
executionInfo_exitCode_d Hodnota s dvojitou přesností
executionInfo_startTime_t DateTime
host_s String
httpMethod_s String
httpStatus_d Hodnota s dvojitou přesností
httpStatusCode_d Hodnota s dvojitou přesností
httpStatusCode_s String
httpVersion_s String
id_s String
identity_claim_appid_g Guid
identity_claim_ipaddr_s String
instanceId_s String
interval_end_time_d Hodnota s dvojitou přesností
interval_start_time_d Hodnota s dvojitou přesností
ip_s String
is_column_permission_s String
isAccessPolicyMatch_b Bool
JobDurationInSecs_s String
JobFailureCode_s String
JobId_g Guid
jobId_s String
JobOperation_s String
JobOperationSubType_s String
JobStartDateTime_s String
JobStatus_s String
JobUniqueId_g Guid
Level String
log_bytes_used_d Hodnota s dvojitou přesností
logical_io_reads_d Hodnota s dvojitou přesností
logical_io_writes_d Hodnota s dvojitou přesností
LogicalServerName_s String
macAddress_s String
matchedConnections_d Hodnota s dvojitou přesností
max_cpu_time_d Hodnota s dvojitou přesností
max_dop_d Hodnota s dvojitou přesností
max_duration_d Hodnota s dvojitou přesností
max_log_bytes_used_d Hodnota s dvojitou přesností
max_logical_io_reads_d Hodnota s dvojitou přesností
max_logical_io_writes_d Hodnota s dvojitou přesností
max_num_physical_io_reads_d Hodnota s dvojitou přesností
max_physical_io_reads_d Hodnota s dvojitou přesností
max_query_max_used_memory_d Hodnota s dvojitou přesností
max_rowcount_d Hodnota s dvojitou přesností
max_time_s String
mean_time_s String
Message String
min_time_s String
msg_s String
num_physical_io_reads_d Hodnota s dvojitou přesností
object_id_d Hodnota s dvojitou přesností
object_name_s String
OperationName String
OperationVersion String
partitionKey_s String
physical_io_reads_d Hodnota s dvojitou přesností
plan_id_d Hodnota s dvojitou přesností
policy_s String
policyMode_s String
primaryIPv4Address_s String
priority_d Hodnota s dvojitou přesností
properties_enabledForDeployment_b Bool
properties_enabledForDiskEncryption_b Bool
properties_enabledForTemplateDeployment_b Bool
properties_s String
properties_sku_Family_s String
properties_sku_Name_s String
properties_tenantId_g Guid
query_hash_s String
query_id_d Hodnota s dvojitou přesností
query_max_used_memory_d Hodnota s dvojitou přesností
query_plan_hash_s String
query_time_d Hodnota s dvojitou přesností
querytext_s String
receivedBytes_d Hodnota s dvojitou přesností
Region_s String
requestCharge_s String
requestQuery_s String
requestResourceId_s String
requestResourceType_s String
requestUri_s String
reserved_storage_mb_s String
Prostředek String
resource_actionName_s String
resource_location_s String
resource_originRunId_s String
resource_resourceGroupName_s String
resource_runId_s String
resource_subscriptionId_g Guid
resource_triggerName_s String
resource_workflowId_g Guid
resource_workflowName_s String
ResourceGroup String
_ResourceId String Jedinečný identifikátor prostředku, ke kterému je záznam přidružený
ResourceProvider String
ResourceProvider String
ResourceType String
ResourceType String
response_rows_d Hodnota s dvojitou přesností
resultCode_s String
ResultDescription String
ResultDescription String
resultDescription_ChildJobs_s String
resultDescription_ErrorJobs_s String
resultMessage_s String
ResultSignature String
ResultType String
ResultType String
rootCauseAnalysis_s String
routingRuleName_s String
rowcount_d Hodnota s dvojitou přesností
ruleName_s String
RunbookName_s String
RunOn_s String
schema_name_s String
sentBytes_d Hodnota s dvojitou přesností
sequence_group_id_g Guid
sequence_number_d Hodnota s dvojitou přesností
server_principal_sid_s String
session_id_d Hodnota s dvojitou přesností