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 inte använder Tabellen AzureDiagnostics. Se Resurstyper nedan för de tjänster som använder varje metod. Mer information om skillnaderna finns i Azure-resursloggar.
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 i vårt workpsace ut på följande sätt:
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ägger första gången en händelse inträffar som innehåller data för den nya dimensionen till en ny kolumn i tabellen:
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 egenskapsuppsättningen 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 allmänna metodtips 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 det till exempel finns en kolumn med namnet Perf1Sec_i samt en egenskap i AdditionalFields med namnet Perf2Sec, och du vill beräkna total perf genom att lägga till båda värdena, använder du något som:
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 ytterligare ett 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 mycket stora datavolymer ä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))
.
Azure Diagnostics-läge
Följande tjänster använder Azure-diagnostikläge för sina resursloggar och skickar data till Azure Diagnostics-tabellen.
- Analysis Services
- Programgateways
- Automation-konton
- Azure Database for MariaDB-servrar
- Azure Database for MySQL-servrar
- Azure Database for PostgreSQL-servrar
- Azure Database for PostgreSQL-servrar v2
- Batch-konton
- CDN-profiler
- Cognitive Services
- Data Lake Analytics
- DataLake Storage Gen1
- Enhetsetableringstjänster
- Digital Twins
- Event Grid-ämnen
- Event Hubs
- ExpressRoute-kretsar
- Ytterdörrar
- Integrationskonton
- Key Vault
- Kubernetes-tjänster
- lastbalanserare
- Logic Apps
- Media Services
- Nätverksgränssnitt
- Nätverkssäkerhetsgrupper
- P2S VPN-gatewayer
- Power BI Embedded
- Offentliga IP-adresser
- Recovery Services-valv (Site Recovery)
- Söktjänster
- Service Bus
- SQL-databaser
- SQL-hanterade instanser
- SQL-servrar
- Stream Analytics-jobb
- Traffic Manager-profiler
- Virtuella nätverk
- Virtuella nätverksgatewayer
- VPN-gatewayer
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å deras konfiguration. När de använder resursspecifikt läge skickar de inte data till AzureDiagnostics-tabellen. Mer information om den här konfigurationen finns i Azure-resursloggar.
- API Management Services
- Azure Cosmos DB
- Datafabriker (V2)
- IoT Hub
- Recovery Services-valv(säkerhetskopiering)
- Brandväggar
Kategorier
- Azure-resurser
- Säkerhet
- Nätverk
Lösningar
- LogManagement
Resurstyper
- Programgateways
- CDN-profiler
- Azure Cosmos DB
- Event Grid-ämnen
- Event Hubs
- Brandväggar
- Nyckelvalv
- Kubernetes-tjänster
- Recovery Services-valv
- Service Bus
- Azure Database for MySQL – flexibla servrar
- Flexibla Azure Database for PostgreSQL-servrar
- Media Services
- Analysis Services
- Batch-konton
- Cognitive Services
- Event Grid-partnernamnområden
- Event Grid-partnerämnen
- Avsnitt om Event Grid-system
- Azure Arc-aktiverade Kubernetes
- Azure Arc-etablerade kluster
- IoT Hub
- Logic Apps
- API Management-tjänster
- Automation-konto
- Datafabriker
- Data Lake Storage Gen1
- Data Lake Analytics
- Power BI Embedded
- SQL-hanterade instanser
- SQL-servrar
- SQL-databaser
- Azure Database for MySQL-servrar
- Azure Database for PostgreSQL-servrar
- Azure Database for PostgreSQL-servrar V2
- Azure Database for MariaDB-servrar
- Enhetsetableringstjänster
- ExpressRoute-kretsar
- Ytterdörrar
- Nätverksgränssnitt
- Nätverkssäkerhetsgrupper
- Offentliga IP-adresser
- Traffic Manager-profiler
- Virtuella nätverksgatewayer
- Virtuella privata nätverksgatewayer
- Virtuella nätverk
- Söktjänster
- Stream Analytics-jobb
Kolumner
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 |