AzureDiagnostics
Lagrar resursloggar för Azure-tjänster som använder Azure Diagnostics-läge. Resursloggar beskriver den interna driften av Azure-resurser.
Resursloggen för varje enskild Azure-tjänst har en unik uppsättning kolumner. Tabellen AzureDiagnostics innehåller de vanligaste kolumnerna som används av Azure-tjänster. Om en resurslogg innehåller en kolumn som inte redan finns i tabellen AzureDiagnostics läggs den kolumnen till första gången data samlas in. Om det maximala antalet på 500 kolumner uppnås läggs data för ytterligare kolumner till i en dynamisk kolumn.
Azure-tjänster som använder resursspecifikt läge lagrar data i en tabell som är specifik för tjänsten och som inte använder tabellen AzureDiagnostics. Mer information om skillnaderna finns i Azure-resursloggar. Se Resurser som använder Azure Diagnostics-läge för de tjänster som använder Azure Diagnostics.
Kommentar
Tabellen AzureDiagnostics är en anpassad loggtabell som skapats exklusivt av Azure Monitor-pipelinen första gången en Azure-resurs börjar skicka loggar i Azure Diagnostics-läge. Till skillnad från andra tabeller kan inte AzureDiagnostics-tabellen skapas via en ARM-mall eller ett API för tabeller. Därför går det inte att ändra tabellens standardvärden för kvarhållning innan den skapas.
Kolumnen AdditionalFields
Till skillnad från andra tabeller är AzureDiagnostics mycket mer känsligt för att överskrida den 500 kolumngräns som införts för en tabell på en Log Analytics-arbetsyta på grund av det breda utbudet av Azure-resurser som kan skicka data till den här tabellen. För att säkerställa att inga data går förlorade på grund av att antalet aktiva kolumner överskrider den här kolumngränsen på 500 hanteras skapande av AzureDiagnostics-kolumner på ett annat sätt än andra tabeller.
AzureDiagnostics-tabellen på varje arbetsyta innehåller minst samma 200 kolumner. För arbetsytor som skapades före den 19 januari 2021 innehåller tabellen även alla kolumner som redan fanns före detta datum. När data skickas till en kolumn som inte redan finns:
- Om det totala antalet kolumner i AzureDiagnostics på den aktuella arbetsytan inte överstiger 500 skapas en ny kolumn precis som med andra tabeller.
- Om det totala antalet kolumner är på eller över 500 läggs överskottsdata till i en dynamisk egenskapsuppsättningskolumn med namnet AdditionalFields som egenskap.
Exempel
För att illustrera det här beteendet kan du tänka dig att från och med (distributionsdatum) ser AzureDiagnostics-tabellen på vår arbetsyta ut så här:
Kolumn 1 | Kolumn 2 | Kolumn 3 | ... | Kolumn 498 |
---|---|---|---|---|
abc | def | 123 | ... | 456 |
... | ... | ... | ... | ... |
En resurs som skickar data till AzureDiagnostics lägger sedan till en ny dimension till sina data som de kallar NewInfo1. Eftersom tabellen fortfarande har färre än 500 kolumner läggs en ny kolumn till i tabellen första gången en händelse inträffar som innehåller data för den här nya dimensionen:
Kolumn 1 | Kolumn 2 | Kolumn 3 | ... | Kolumn 498 | NewInfo1_s |
---|---|---|---|---|---|
abc | def | 123 | ... | 456 | xyz |
... | ... | ... | ... | ... | ... |
Du kan returnera dessa nya data i en enkel fråga:
AzureDiagnostics | where NewInfo1_s == "xyz"
Vid ett senare tillfälle skickar en annan resurs data till AzureDiagnostics som lägger till nya dimensioner som kallas NewInfo2 och NewInfo3. Eftersom tabellen har nått 500 kolumner på den här arbetsytan hamnar de nya data i kolumnen AdditionalFields :
Kolumn 1 | Kolumn 2 | Kolumn 3 | ... | Kolumn 498 | NewInfo1_s | AdditionalFields |
---|---|---|---|---|---|---|
abc | def | 123 | ... | 456 | xyz | {"NewInfo2":"789","NewInfo3":"qwerty"} |
... | ... | ... | ... | ... | ... | ... |
Du kan fortfarande fråga efter dessa data, men du måste extrahera dem från egenskapsväskan med någon av de dynamiska egenskapsoperatorerna i KQL:
AzureDiagnostics
| where AdditionalFields.NewInfo2 == "789" and AdditionalFields.NewInfo3 == "qwerty"
Tips om hur du AdditionalFields
använder kolumnen
Även om bästa praxis för frågor, till exempel att alltid filtrera efter tid som den första satsen i frågan, bör följas, finns det några andra rekommendationer som du bör överväga när du arbetar med AdditionalFields:
- Du måste typecast-data innan du utför ytterligare åtgärder på den. Om du till exempel har en kolumn med namnet Perf1Sec_i och en egenskap i AdditionalFields med namnet Perf2Sec, och du vill beräkna total perf genom att lägga till båda värdena, kan du använda följande:
AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | ....
. - Använd where-satser för att minska datavolymen så mycket som möjligt innan du skriver någon komplex logik för att avsevärt förbättra prestandan. TimeGenerated är en kolumn som alltid bör reduceras till minsta möjliga fönster. När det gäller AzureDiagnostics bör ett ytterligare filter alltid inkluderas överst i frågan kring de resurstyper som efterfrågas med hjälp av kolumnen ResourceType .
- När du kör frågor mot stora mängder data är det ibland mer effektivt att göra ett filter på AdditionalFields som helhet i stället för att parsa dem. För stora datavolymer
AzureDiagnostics | where AdditionalFields has "Perf2Sec"
är det till exempel ofta effektivare änAzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec))
.
Resurser som använder Azure Diagnostics-läge
Följande tjänster använder Azure-diagnostikläge för sina resursloggar och skickar data till Azure Diagnostics-tabellen. Mer information om den här konfigurationen finns i Azure-resursloggar.
Kommentar
Alla andra resurser skickar data till resursspecifika tabeller.
Servicenamn | resourceType |
---|---|
MicrosoftSqlAzureTelemetryv3 | microsoft.sql/servrar/databaser |
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/databaser |
PBIDedicatedRP | microsoft.powerbidedicated/capacities |
AzureHybrid | microsoft.network/vpngateways |
MicrosoftDatafactory | microsoft.datafactory/factories |
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 |
Azure Diagnostics-läge eller resursspecifikt läge
Följande tjänster använder antingen Azure-diagnostikläge eller resursspecifikt läge för sina resursloggar beroende på konfigurationen för diagnostikinställningar. När du använder resursspecifikt läge skickar dessa resurser inte data till AzureDiagnostics-tabellen. Mer information om den här konfigurationen finns i Azure-resursloggar.
Servicenamn | resourceType |
---|---|
API Management Services | Microsoft.ApiManagement |
Azure Cosmos DB | Microsoft.DocumentDB/databaseAccounts |
Datafabriker (V2) | Microsoft.DataFactory |
Recovery Services-valv(säkerhetskopiering) | Microsoft.RecoveryServices/valv |
Brandväggar | Microsoft.Network/azureFirewalls |
AzureDiagnostics-tabellkolumner
Column | Type | Beskrivning |
---|---|---|
action_id_s | String | |
action_name_s | String | |
action_s | String | |
ActivityId_g | GUID | |
AdditionalFields | ||
AdHocOrScheduledJob_s | String | |
application_name_s | String | |
audit_schema_version_d | Dubbel | |
avg_cpu_percent_s | String | |
avg_mean_time_s | String | |
backendHostname_s | String | |
Caller_s | String | |
callerId_s | String | |
CallerIPAddress | String | |
calls_s | String | |
Kategori | String | |
client_ip_s | String | |
clientInfo_s | String | |
clientIP_s | String | |
clientIp_s | String | |
clientIpAddress_s | String | |
clientPort_d | Dubbel | |
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 | Dubbel | |
cpu_time_d | Dubbel | |
database_name_s | String | |
database_principal_name_s | String | |
DatabaseName_s | String | |
db_id_s | String | |
direction_s | String | |
dop_d | Dubbel | |
duration_d | Dubbel | |
duration_milliseconds_d | Dubbel | |
DurationMs | BigInt | |
ElasticPoolName_s | String | |
endTime_t | Datum/tid | |
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 | Datum/tid | |
EventName_s | String | |
execution_type_d | Dubbel | |
executionInfo_endTime_t | Datum/tid | |
executionInfo_exitCode_d | Dubbel | |
executionInfo_startTime_t | Datum/tid | |
host_s | String | |
httpMethod_s | String | |
httpStatus_d | Dubbel | |
httpStatusCode_d | Dubbel | |
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 | Dubbel | |
interval_start_time_d | Dubbel | |
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 | |
Nivå | String | |
log_bytes_used_d | Dubbel | |
logical_io_reads_d | Dubbel | |
logical_io_writes_d | Dubbel | |
LogicalServerName_s | String | |
macAddress_s | String | |
matchedConnections_d | Dubbel | |
max_cpu_time_d | Dubbel | |
max_dop_d | Dubbel | |
max_duration_d | Dubbel | |
max_log_bytes_used_d | Dubbel | |
max_logical_io_reads_d | Dubbel | |
max_logical_io_writes_d | Dubbel | |
max_num_physical_io_reads_d | Dubbel | |
max_physical_io_reads_d | Dubbel | |
max_query_max_used_memory_d | Dubbel | |
max_rowcount_d | Dubbel | |
max_time_s | String | |
mean_time_s | String | |
Meddelande | String | |
min_time_s | String | |
msg_s | String | |
num_physical_io_reads_d | Dubbel | |
object_id_d | Dubbel | |
object_name_s | String | |
OperationName | String | |
OperationVersion | String | |
partitionKey_s | String | |
physical_io_reads_d | Dubbel | |
plan_id_d | Dubbel | |
policy_s | String | |
policyMode_s | String | |
primaryIPv4Address_s | String | |
priority_d | Dubbel | |
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 | Dubbel | |
query_max_used_memory_d | Dubbel | |
query_plan_hash_s | String | |
query_time_d | Dubbel | |
querytext_s | String | |
receivedBytes_d | Dubbel | |
Region_s | String | |
requestCharge_s | String | |
requestQuery_s | String | |
requestResourceId_s | String | |
requestResourceType_s | String | |
requestUri_s | String | |
reserved_storage_mb_s | String | |
Resurs | 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 | En unik identifierare för resursen som posten är associerad med |
ResourceProvider | String | |
ResourceProvider | String | |
ResourceType | String | |
ResourceType | String | |
response_rows_d | Dubbel | |
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 | Dubbel | |
ruleName_s | String | |
RunbookName_s | String | |
RunOn_s | String | |
schema_name_s | String | |
sentBytes_d | Dubbel | |
sequence_group_id_g | GUID | |
sequence_number_d | Dubbel | |
server_principal_sid_s | String | |
session_id_d | Dubbel |