AzureDiagnostics
Przechowuje dzienniki zasobów dla usług platformy Azure korzystających z trybu Diagnostyka Azure. Dzienniki zasobów opisują wewnętrzną operację zasobów platformy Azure.
Dziennik zasobów dla każdej usługi platformy Azure zawiera unikatowy zestaw kolumn. Tabela AzureDiagnostics zawiera najbardziej typowe kolumny używane przez usługi platformy Azure. Jeśli dziennik zasobów zawiera kolumnę, która jeszcze nie istnieje w tabeli AzureDiagnostics, ta kolumna zostanie dodana przy pierwszym zbieraniu danych. Jeśli zostanie osiągnięta maksymalna liczba 500 kolumn, dane dla wszelkich dodatkowych kolumn zostaną dodane do kolumny dynamicznej.
Usługi platformy Azure korzystające z trybu specyficznego dla zasobów przechowują dane w tabeli specyficznej dla tej usługi i nie korzystają z tabeli AzureDiagnostics. Aby uzyskać szczegółowe informacje na temat różnic, zobacz Dzienniki zasobów platformy Azure. Zobacz Zasoby korzystające z trybu Diagnostyka Azure dla usług korzystających z Diagnostyka Azure.
Uwaga
Tabela AzureDiagnostics to niestandardowa tabela dzienników utworzona wyłącznie przez potok usługi Azure Monitor przy pierwszym rozpoczęciu wysyłania dzienników w trybie Diagnostyka Azure. W przeciwieństwie do innych tabel nie można utworzyć tabeli AzureDiagnostics za pośrednictwem interfejsu API szablonu usługi ARM ani tabel. W związku z tym nie można zmodyfikować domyślnych wartości przechowywania tabeli przed jej utworzeniem.
Kolumna AdditionalFields
W przeciwieństwie do innych tabel usługa AzureDiagnostics jest o wiele bardziej podatna na przekroczenie limitu 500 kolumn nałożonego dla dowolnej tabeli w obszarze roboczym usługi Log Analytics ze względu na szeroki asortyment zasobów platformy Azure, który może wysyłać dane do tej tabeli. Aby upewnić się, że żadne dane nie zostaną utracone z powodu liczby aktywnych kolumn przekraczających ten limit 500 kolumn, tworzenie kolumn AzureDiagnostics jest obsługiwane w inny sposób dla innych tabel.
Tabela AzureDiagnostics w każdym obszarze roboczym zawiera co najmniej te same 200 kolumn. W przypadku obszarów roboczych utworzonych przed 19 stycznia 2021 r. tabela zawiera również wszystkie kolumny, które zostały już wprowadzone przed tą datą. Gdy dane są wysyłane do kolumny, która nie jest jeszcze w miejscu:
- Jeśli łączna liczba kolumn w usłudze AzureDiagnostics w bieżącym obszarze roboczym nie przekracza 500, zostanie utworzona nowa kolumna tak samo jak w przypadku każdej innej tabeli.
- Jeśli łączna liczba kolumn wynosi lub 500, nadmiar danych jest dodawany do kolumny torby właściwości dynamicznej o nazwie AdditionalFields jako właściwości.
Przykład
Aby zilustrować to zachowanie, wyobraź sobie, że zgodnie z (datą wdrożenia) tabela AzureDiagnostics w naszym obszarze roboczym wygląda następująco:
Kolumna 1 | Kolumna 2 | Kolumna 3 | ... | Kolumna 498 |
---|---|---|---|---|
abc | DEF | 123 | ... | 456 |
... | ... | ... | ... | ... |
Zasób, który wysyła dane do usługi AzureDiagnostics , dodaje nowy wymiar do danych, które nazywają NewInfo1. Ponieważ tabela nadal zawiera mniej niż 500 kolumn, przy pierwszym wystąpieniu zdarzenia zawierającego dane dla tego nowego wymiaru dodaje nową kolumnę do tabeli:
Kolumna 1 | Kolumna 2 | Kolumna 3 | ... | Kolumna 498 | NewInfo1_s |
---|---|---|---|---|---|
abc | DEF | 123 | ... | 456 | xyz |
... | ... | ... | ... | ... | ... |
Te nowe dane można zwrócić w prostym zapytaniu:
AzureDiagnostics | where NewInfo1_s == "xyz"
W późniejszym terminie inny zasób wysyła dane do usługi AzureDiagnostics , która dodaje nowe wymiary o nazwie NewInfo2 i NewInfo3. Ponieważ tabela osiągnęła 500 kolumn w tym obszarze roboczym, nowe dane przechodzą do kolumny AdditionalFields :
Kolumna 1 | Kolumna 2 | Kolumna 3 | ... | Kolumna 498 | NewInfo1_s | Dodatkowe pola |
---|---|---|---|---|---|---|
abc | DEF | 123 | ... | 456 | xyz | {"NewInfo2":"789","NewInfo3":"qwerty"} |
... | ... | ... | ... | ... | ... | ... |
Nadal można wykonywać zapytania dotyczące tych danych, ale należy wyodrębnić je z torby właściwości przy użyciu dowolnych operatorów właściwości dynamicznych w języku KQL:
AzureDiagnostics
| where AdditionalFields.NewInfo2 == "789" and AdditionalFields.NewInfo3 == "qwerty"
Porady dotyczące korzystania z kolumny AdditionalFields
Chociaż należy przestrzegać najlepszych rozwiązań dotyczących zapytań, takich jak zawsze filtrowanie według czasu jako pierwsza klauzula w zapytaniu, istnieją inne zalecenia, które należy wziąć pod uwagę podczas pracy z dodatkowymi polami:
- Przed wykonaniem dalszych operacji na nim należy wpisać dane emisji. Jeśli na przykład masz kolumnę o nazwie Perf1Sec_i i właściwość w polach dodatkowych o nazwie Perf2Sec i chcesz obliczyć łączną wartość wydajności, dodając obie wartości, możesz użyć następującej wartości:
AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | ....
. - Użyj klauzul where , aby zmniejszyć ilość danych do najmniejszych możliwych przed napisaniem dowolnej złożonej logiki w celu znacznego zwiększenia wydajności. TimeGenerated to jedna kolumna, która powinna być zawsze zmniejszana do najmniejszego możliwego okna. W przypadku usługi AzureDiagnostics należy zawsze uwzględnić dodatkowy filtr w górnej części zapytania wokół typów zasobów, których dotyczy zapytanie przy użyciu kolumny ResourceType .
- Podczas wykonywania zapytań dotyczących dużych ilości danych czasami bardziej wydajne jest wykonywanie filtru na polach dodatkowych jako całości, a nie analizowanie ich. Na przykład w przypadku dużych ilości danych
AzureDiagnostics | where AdditionalFields has "Perf2Sec"
jest często wydajniejszy niżAzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec))
.
Zasoby korzystające z trybu Diagnostyka Azure
Poniższe usługi używają trybu diagnostyki platformy Azure dla dzienników zasobów i wysyłania danych do tabeli Diagnostyka Azure. Aby uzyskać szczegółowe informacje na temat tej konfiguracji, zobacz Dzienniki zasobów platformy Azure.
Uwaga
Wszystkie inne zasoby wysyłają dane do tabel specyficznych dla zasobów.
Service name | resourceType |
---|---|
MicrosoftSqlAzureTelemetryv3 | microsoft.sql/serwery/bazy danych |
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/przestrzenie nazw |
AzureFrontdoor | microsoft.network/frontdoors |
AzureKeyVault | microsoft.keyvault/vaults |
AzureDataLake | microsoft.datalakestore/accounts |
ApiManagement | microsoft.apimanagement/service |
MicrosoftSqlAzureTelemetryv3 | microsoft.sql/wystąpienia zarządzane |
ASAzureRP | microsoft.analysisservices/servers |
MicrosoftOrcasBreadthServers | microsoft.dbformysql/flexibleservers |
servicebus | microsoft.servicebus/przestrzenie nazw |
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/wystąpienia zarządzane/bazy danych |
PBIDedicatedRP | microsoft.powerbidedicated/pojemności |
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/przestrzenie nazw |
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 |
tryb Diagnostyka Azure lub tryb specyficzny dla zasobu
Następujące usługi używają trybu diagnostyki platformy Azure lub trybu specyficznego dla zasobów dla dzienników zasobów w zależności od konfiguracji ustawień diagnostycznych. W przypadku korzystania z trybu specyficznego dla zasobów te zasoby nie wysyłają danych do tabeli AzureDiagnostics. Aby uzyskać szczegółowe informacje na temat tej konfiguracji, zobacz Dzienniki zasobów platformy Azure.
Service name | resourceType |
---|---|
Usługi API Management | Microsoft.ApiManagement |
Azure Cosmos DB | Microsoft.DocumentDB/databaseAccounts |
Fabryki danych (wersja 2) | Microsoft.DataFactory |
Magazyny usługi Recovery Services (kopia zapasowa) | Microsoft.RecoveryServices/vaults |
Zapory | Microsoft.Network/azureFirewalls |
Kolumny tabeli AzureDiagnostics
Kolumna | Type | Opis |
---|---|---|
action_id_s | String | |
action_name_s | String | |
action_s | String | |
ActivityId_g | Identyfikator GUID | |
Dodatkowe pola | ||
AdHocOrScheduledJob_s | String | |
application_name_s | String | |
audit_schema_version_d | Liczba rzeczywista | |
avg_cpu_percent_s | String | |
avg_mean_time_s | String | |
backendHostname_s | String | |
Caller_s | String | |
callerId_s | String | |
CallerIPAddress | String | |
calls_s | String | |
Kategoria | String | |
client_ip_s | String | |
clientInfo_s | String | |
clientIP_s | String | |
clientIp_s | String | |
clientIpAddress_s | String | |
clientPort_d | Liczba rzeczywista | |
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 | Liczba rzeczywista | |
cpu_time_d | Liczba rzeczywista | |
database_name_s | String | |
database_principal_name_s | String | |
DatabaseName_s | String | |
db_id_s | String | |
direction_s | String | |
dop_d | Liczba rzeczywista | |
duration_d | Liczba rzeczywista | |
duration_milliseconds_d | Liczba rzeczywista | |
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 | Liczba rzeczywista | |
executionInfo_endTime_t | DateTime | |
executionInfo_exitCode_d | Liczba rzeczywista | |
executionInfo_startTime_t | DateTime | |
host_s | String | |
httpMethod_s | String | |
httpStatus_d | Liczba rzeczywista | |
httpStatusCode_d | Liczba rzeczywista | |
httpStatusCode_s | String | |
httpVersion_s | String | |
id_s | String | |
identity_claim_appid_g | Identyfikator GUID | |
identity_claim_ipaddr_s | String | |
instanceId_s | String | |
interval_end_time_d | Liczba rzeczywista | |
interval_start_time_d | Liczba rzeczywista | |
ip_s | String | |
is_column_permission_s | String | |
isAccessPolicyMatch_b | Bool | |
JobDurationInSecs_s | String | |
JobFailureCode_s | String | |
JobId_g | Identyfikator GUID | |
jobId_s | String | |
JobOperation_s | String | |
JobOperationSubType_s | String | |
JobStartDateTime_s | String | |
JobStatus_s | String | |
JobUniqueId_g | Identyfikator GUID | |
Poziom | String | |
log_bytes_used_d | Liczba rzeczywista | |
logical_io_reads_d | Liczba rzeczywista | |
logical_io_writes_d | Liczba rzeczywista | |
LogicalServerName_s | String | |
macAddress_s | String | |
matchedConnections_d | Liczba rzeczywista | |
max_cpu_time_d | Liczba rzeczywista | |
max_dop_d | Liczba rzeczywista | |
max_duration_d | Liczba rzeczywista | |
max_log_bytes_used_d | Liczba rzeczywista | |
max_logical_io_reads_d | Liczba rzeczywista | |
max_logical_io_writes_d | Liczba rzeczywista | |
max_num_physical_io_reads_d | Liczba rzeczywista | |
max_physical_io_reads_d | Liczba rzeczywista | |
max_query_max_used_memory_d | Liczba rzeczywista | |
max_rowcount_d | Liczba rzeczywista | |
max_time_s | String | |
mean_time_s | String | |
Wiadomość | String | |
min_time_s | String | |
msg_s | String | |
num_physical_io_reads_d | Liczba rzeczywista | |
object_id_d | Liczba rzeczywista | |
object_name_s | String | |
OperationName | String | |
OperationVersion | String | |
partitionKey_s | String | |
physical_io_reads_d | Liczba rzeczywista | |
plan_id_d | Liczba rzeczywista | |
policy_s | String | |
policyMode_s | String | |
primaryIPv4Address_s | String | |
priority_d | Liczba rzeczywista | |
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 | Identyfikator GUID | |
query_hash_s | String | |
query_id_d | Liczba rzeczywista | |
query_max_used_memory_d | Liczba rzeczywista | |
query_plan_hash_s | String | |
query_time_d | Liczba rzeczywista | |
querytext_s | String | |
receivedBytes_d | Liczba rzeczywista | |
Region_s | String | |
requestCharge_s | String | |
requestQuery_s | String | |
requestResourceId_s | String | |
requestResourceType_s | String | |
requestUri_s | String | |
reserved_storage_mb_s | String | |
Zasób | String | |
resource_actionName_s | String | |
resource_location_s | String | |
resource_originRunId_s | String | |
resource_resourceGroupName_s | String | |
resource_runId_s | String | |
resource_subscriptionId_g | Identyfikator GUID | |
resource_triggerName_s | String | |
resource_workflowId_g | Identyfikator GUID | |
resource_workflowName_s | String | |
ResourceGroup | String | |
_ResourceId | String | Unikatowy identyfikator zasobu skojarzonego z rekordem |
ResourceProvider | String | |
ResourceProvider | String | |
ResourceType | String | |
ResourceType | String | |
response_rows_d | Liczba rzeczywista | |
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 | Liczba rzeczywista | |
ruleName_s | String | |
RunbookName_s | String | |
RunOn_s | String | |
schema_name_s | String | |
sentBytes_d | Liczba rzeczywista | |
sequence_group_id_g | Identyfikator GUID | |
sequence_number_d | Liczba rzeczywista | |
server_principal_sid_s | String | |
session_id_d | Liczba rzeczywista |