Udostępnij za pośrednictwem


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