AzureDiagnostics

Przechowuje dzienniki zasobów dla usług platformy Azure, które Diagnostyka Azure trybie. Dzienniki zasobów opisują wewnętrzne działanie zasobów platformy Azure.

Dziennik zasobów dla każdej usługi platformy Azure ma 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 jest dodawana przy pierwszym zbieraniu danych. Jeśli zostanie osiągnięta maksymalna liczba 500 kolumn, dane dla dodatkowych kolumn zostaną dodane do kolumny dynamicznej.

Usługi platformy Azure, które korzystają z trybu specyficznego dla zasobów, przechowują dane w tabeli specyficznej dla tej usługi i nie używają tabeli AzureDiagnostics. Zobacz Typy zasobów poniżej, aby uzyskać informacje o usługach, które używają każdej metody. Aby uzyskać szczegółowe informacje na temat różnic, zobacz Dzienniki zasobów platformy Azure.

Kolumna AdditionalFields

W przeciwieństwie do innych tabel usługa AzureDiagnostics jest znacznie bardziej podatna na przekroczenie limitu 500 kolumn narzuconego dla dowolnej tabeli w obszarze roboczym usługi Log Analytics ze względu na szeroki wybór zasobów platformy Azure, które mogą wysyłać dane do tej tabeli. Aby upewnić się, że żadne dane nie są utracone z powodu liczby aktywnych kolumn przekraczających ten limit 500 kolumn, tworzenie kolumn usługi AzureDiagnostics jest obsługiwane w inny sposób niż inne tabele.

Tabela AzureDiagnostics w każdym obszarze roboczym będzie zawierać co najmniej te same 200 kolumn. W przypadku obszarów roboczych utworzonych przed 19 stycznia 2021 r. tabela będzie również zawierać wszystkie kolumny, które były już utworzone przed tą datą. Gdy dane są wysyłane do kolumny, która nie jest jeszcze na miejscu:

  • Jeśli łączna liczba kolumn w usłudze AzureDiagnostics w bieżącym obszarze roboczym nie przekracza 500, zostanie utworzona nowa kolumna, podobnie jak w przypadku każdej innej tabeli.
  • Jeśli łączna liczba kolumn jest co najmniej 500, nadmiarowe dane są dodawane do kolumny dynamicznego worka właściwości o nazwie AdditionalFields jako właściwości.

Przykład

Aby zilustrować to zachowanie, załóżmy, że od (daty wdrożenia) tabela AzureDiagnostics w naszym workpsace 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 swoich danych, które wywołują NewInfo1. Ponieważ tabela nadal zawiera mniej niż 500 kolumn, przy pierwszym zdarzeniu zawierającym dane dla tego nowego wymiaru zostanie do niej dodano nową kolumnę:

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"

Później inny zasób wysyła dane do usługi AzureDiagnostics, która dodaje nowe wymiary o nazwach NewInfo2 i NewInfo3. Ponieważ tabela osiągnęła 500 kolumn w tym obszarze roboczym, nowe dane zostaną trafić do kolumny AdditionalFields:

Kolumna 1 Kolumna 2 Kolumna 3 ... Kolumna 498 NewInfo1_s Pola dodatkowe
abc def 123 ... 456 xyz {"NewInfo2":"789","NewInfo3":"qwerty"}
... ... ... ... ... ... ...

Nadal możesz wykonać zapytanie o te dane, ale musisz wyodrębnić je z worka właściwości przy użyciu dowolnego operatora właściwości dynamicznej w KQL:

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

Wskazówki przy użyciu kolumny AdditionalFields

Chociaż należy stosować ogólne najlepsze rozwiązania dotyczące zapytań, takie jak zawsze filtrowanie według czasu, ponieważ należy przestrzegać pierwszej klauzuli w zapytaniu, istnieją inne zalecenia, które należy wziąć pod uwagę podczas pracy z elementem AdditionalFields:

  • Przed wykonaniem dalszych operacji na tych danych będzie konieczne wpisanie danych emisji. Jeśli na przykład istnieje kolumna o nazwie Perf1Sec_i oraz właściwość w polach AdditionalFields o nazwie Perf2Sec i chcesz obliczyć łączny koszt przez dodanie obu wartości, użyj wartości podobnej do: AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | .... .
  • Użyj klauzul where, aby zmniejszyć ilość danych do najmniejszego możliwego przed napisaniem dowolnej złożonej logiki w celu znacznego zwiększenia wydajności. TimeGenerated to jedna kolumna, która zawsze powinna zostać zredukowana do najmniejszego możliwego okna. W przypadku usługi AzureDiagnostics dodatkowy filtr powinien być również zawsze uwzględniany w górnej części zapytania wokół typów zasobów, dla których jest wykonywanych zapytanie przy użyciu kolumny ResourceType.
  • Podczas wykonywania zapytań dotyczących bardzo dużych ilości danych czasami bardziej efektywne jest filtrowanie pola Dodatkowe jako całości, zamiast ich analizowania. Na przykład w przypadku dużych ilości danych jest AzureDiagnostics | where AdditionalFields has "Perf2Sec" często bardziej wydajne niż AzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec)) .

Kategorie

  • Zasoby platformy Azure
  • Zabezpieczenia
  • Sieć

Rozwiązania

  • LogManagement

Typy zasobów

Diagnostyka Azure trybu

Poniższe usługi używają trybu diagnostyki platformy Azure na potrzeby dzienników zasobów i wysyłają dane do Diagnostyka Azure danych.

  • Analysis Services
  • Bramy aplikacji
  • Konta usługi Automation
  • Serwery usługi Azure Database for MariaDB
  • Serwery usługi Azure Database for MySQL
  • Serwery usługi Azure Database for PostgreSQL
  • Azure Database for PostgreSQL w wersji 2
  • Konta usługi Batch
  • Profile CDN
  • Cognitive Services
  • Data Lake Analytics
  • DataLake Storage Gen1
  • Device Provisioning Services
  • Digital Twins
  • Tematy usługi Event Grid
  • Event Hubs
  • Obwody usługi ExpressRoute
  • Zapory
  • Front Doors
  • Konta integracji
  • Key Vault
  • Usługi Kubernetes
  • Moduły równoważenia obciążenia
  • Logic Apps
  • Media Services
  • Interfejsy sieciowe
  • Grupy zabezpieczeń sieci
  • Bramy sieci VPN typu P2S
  • Power BI Embedded
  • Publiczne adresy IP
  • Magazyny usługi Recovery Services (Site Recovery)
  • Usługi wyszukiwania
  • Service Bus
  • Bazy danych SQL
  • SQL wystąpienia zarządzane
  • Serwery SQL
  • Stream Analytics zadań
  • Profile usługi Traffic Manager
  • Sieci wirtualne
  • Bramy sieci wirtualnej
  • Bramy sieci VPN

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 swoich dzienników zasobów w zależności od konfiguracji. Gdy korzystają z trybu specyficznego dla zasobów, nie wysyłają danych do tabeli AzureDiagnostics. Aby uzyskać szczegółowe informacje na temat tej konfiguracji, zobacz Dzienniki zasobów platformy Azure.

  • API Management usług
  • Cosmos DB
  • Fabryki danych (wersja 2)
  • Usługa IoT Hub
  • Magazyny usługi Recovery Services (kopia zapasowa)

Kolumny

Kolumna Typ Opis
action_id_s Ciąg
action_name_s Ciąg
action_s Ciąg
ActivityId_g Guid (identyfikator GUID)
Pola dodatkowe
AdHocOrScheduledJob_s Ciąg
application_name_s Ciąg
audit_schema_version_d Double
avg_cpu_percent_s Ciąg
avg_mean_time_s Ciąg
backendHostname_s Ciąg
Caller_s Ciąg
callerId_s Ciąg
CallerIPAddress (CallerIPAddress) Ciąg
calls_s Ciąg
Kategoria Ciąg
client_ip_s Ciąg
clientInfo_s Ciąg
clientIP_s Ciąg
clientIp_s Ciąg
clientIpAddress_s Ciąg
clientPort_d Double
code_s Ciąg
collectionName_s Ciąg
conditions_destinationIP_s Ciąg
conditions_destinationPortRange_s Ciąg
conditions_None_s Ciąg
conditions_protocols_s Ciąg
conditions_sourceIP_s Ciąg
conditions_sourcePortRange_s Ciąg
CorrelationId Ciąg
count_executions_d Double
cpu_time_d Double
database_name_s Ciąg
database_principal_name_s Ciąg
DatabaseName_s Ciąg
db_id_s Ciąg
direction_s Ciąg
dop_d Double
duration_d Double
duration_milliseconds_d Double
DurationMs Bigint
ElasticPoolName_s Ciąg
endTime_t DateTime
Environment_s Ciąg
error_code_s Ciąg
error_message_s Ciąg
errorLevel_s Ciąg
event_class_s Ciąg
event_s Ciąg
event_subclass_s Ciąg
event_time_t DateTime
EventName_s Ciąg
execution_type_d Double
executionInfo_endTime_t DateTime
executionInfo_exitCode_d Double
executionInfo_startTime_t DateTime
host_s Ciąg
httpMethod_s Ciąg
httpStatus_d Double
httpStatusCode_d Double
httpStatusCode_s Ciąg
httpVersion_s Ciąg
id_s Ciąg
identity_claim_appid_g Guid (identyfikator GUID)
identity_claim_ipaddr_s Ciąg
instanceId_s Ciąg
interval_end_time_d Double
interval_start_time_d Double
ip_s Ciąg
is_column_permission_s Ciąg
isAccessPolicyMatch_b Wartość logiczna
JobDurationInSecs_s Ciąg
JobFailureCode_s Ciąg
JobId_g Guid (identyfikator GUID)
jobId_s Ciąg
JobOperation_s Ciąg
JobOperationSubType_s Ciąg
JobStartDateTime_s Ciąg
JobStatus_s Ciąg
JobUniqueId_g Guid (identyfikator GUID)
Poziom Ciąg
log_bytes_used_d Double
logical_io_reads_d Double
logical_io_writes_d Double
LogicalServerName_s Ciąg
macAddress_s Ciąg
matchedConnections_d Double
max_cpu_time_d Double
max_dop_d Double
max_duration_d Double
max_log_bytes_used_d Double
max_logical_io_reads_d Double
max_logical_io_writes_d Double
max_num_physical_io_reads_d Double
max_physical_io_reads_d Double
max_query_max_used_memory_d Double
max_rowcount_d Double
max_time_s Ciąg
mean_time_s Ciąg
Komunikat Ciąg
min_time_s Ciąg
msg_s Ciąg
num_physical_io_reads_d Double
object_id_d Double
object_name_s Ciąg
OperationName Ciąg
OperationVersion Ciąg
partitionKey_s Ciąg
physical_io_reads_d Double
plan_id_d Double
policy_s Ciąg
policyMode_s Ciąg
primaryIPv4Address_s Ciąg
priority_d Double
properties_enabledForDeployment_b Wartość logiczna
properties_enabledForDiskEncryption_b Wartość logiczna
properties_enabledForTemplateDeployment_b Wartość logiczna
properties_s Ciąg
properties_sku_Family_s Ciąg
properties_sku_Name_s Ciąg
properties_tenantId_g Guid (identyfikator GUID)
query_hash_s Ciąg
query_id_d Double
query_max_used_memory_d Double
query_plan_hash_s Ciąg
query_time_d Double
querytext_s Ciąg
receivedBytes_d Double
Region_s Ciąg
requestCharge_s Ciąg
requestQuery_s Ciąg
requestResourceId_s Ciąg
requestResourceType_s Ciąg
requestUri_s Ciąg
reserved_storage_mb_s Ciąg
Zasób Ciąg
resource_actionName_s Ciąg
resource_location_s Ciąg
resource_originRunId_s Ciąg
resource_resourceGroupName_s Ciąg
resource_runId_s Ciąg
resource_subscriptionId_g Guid (identyfikator GUID)
resource_triggerName_s Ciąg
resource_workflowId_g Guid (identyfikator GUID)
resource_workflowName_s Ciąg
ResourceGroup Ciąg
_ResourceId Ciąg Unikatowy identyfikator zasobu, z który jest skojarzony rekord
ResourceProvider Ciąg
ResourceProvider Ciąg
ResourceType Ciąg
ResourceType Ciąg
response_rows_d Double
resultCode_s Ciąg
ResultDescription Ciąg
ResultDescription Ciąg
resultDescription_ChildJobs_s Ciąg
resultDescription_ErrorJobs_s Ciąg
resultMessage_s Ciąg
ResultSignature Ciąg
ResultType Ciąg
ResultType Ciąg
rootCauseAnalysis_s Ciąg
routingRuleName_s Ciąg
rowcount_d Double
ruleName_s Ciąg
RunbookName_s Ciąg
RunOn_s Ciąg
schema_name_s Ciąg
sentBytes_d Double
sequence_group_id_g Guid (identyfikator GUID)
sequence_number_d Double
server_principal_sid_s Ciąg
session_id_d Double