AzureDiagnostics
Speichert Ressourcenprotokolle für Azure-Dienste, die den Azure-Diagnosemodus verwenden. Ressourcenprotokolle beschreiben den internen Betrieb von Azure-Ressourcen.
Das Ressourcenprotokoll für jeden Azure-Dienst verfügt über einen eindeutigen Satz von Spalten. Die Tabelle „AzureDiagnostics“ enthält die gängigsten Spalten, die von Azure-Diensten verwendet werden. Enthält ein Ressourcenprotokoll eine Spalte, die noch nicht in der Tabelle „AzureDiagnostics“ vorhanden ist, wird diese Spalte bei der ersten Datensammlung hinzugefügt. Ist die maximale Anzahl von 500 Spalten erreicht, werden Daten für alle zusätzlichen Spalten einer dynamischen Spalte hinzugefügt.
Azure-Dienste, die den ressourcenspezifischen Modus verwenden, speichern Daten in einer für diesen Dienst spezifischen Tabelle und verwenden nicht die Tabelle AzureDiagnostics. Informationen zu den Diensten, die die einzelnen Methoden verwenden, finden Sie weiter unten unter Ressourcentypen . Ausführliche Informationen zu den Unterschieden finden Sie unter Azure-Ressourcenprotokolle .
AdditionalFields-Spalte
Im Gegensatz zu anderen Tabellen ist AzureDiagnostics aufgrund der großen Auswahl von Azure-Ressourcen, die Daten an diese Tabelle senden können, viel anfälliger für das Überschreiten des Grenzwerts von 500 Spalten, der für jede Tabelle in einem Log Analytics-Arbeitsbereich festgelegt ist. Um sicherzustellen, dass aufgrund der Anzahl aktiver Spalten, die diesen Grenzwert von 500 Spalten überschreiten, keine Daten verloren gehen, wird die Erstellung von AzureDiagnostics-Spalten auf andere Weise als andere Tabellen behandelt.
Die Tabelle AzureDiagnostics in jedem Arbeitsbereich enthält mindestens die gleichen 200 Spalten. Für Arbeitsbereiche, die vor dem 19. Januar 2021 erstellt wurden, enthält die Tabelle auch alle Spalten, die vor diesem Datum bereits vorhanden waren. Wenn Daten an eine Spalte gesendet werden, die noch nicht vorhanden ist:
- Wenn die Gesamtanzahl der Spalten in AzureDiagnostics im aktuellen Arbeitsbereich 500 nicht überschreitet, wird wie bei jeder anderen Tabelle eine neue Spalte erstellt.
- Wenn die Gesamtzahl der Spalten bei oder über 500 liegt, werden die überschüssigen Daten einer dynamischen Eigenschaftenbehälterspalte namens AdditionalFields als Eigenschaft hinzugefügt.
Beispiel
Um dieses Verhalten zu veranschaulichen, stellen Sie sich vor, dass die AzureDiagnostics-Tabelle in unserem Arbeitsfenster ab (Bereitstellungsdatum) wie folgt aussieht:
Spalte 1 | Spalte 2 | Spalte 3 | ... | Spalte 498 |
---|---|---|---|---|
abc | def | 123 | ... | 456 |
... | ... | ... | ... | ... |
Eine Ressource, die Daten an AzureDiagnostics sendet, fügt ihren Daten dann eine neue Dimension hinzu, die sie NewInfo1 nennen. Da die Tabelle immer noch weniger als 500 Spalten enthält, wird der Tabelle beim ersten Auftreten eines Ereignisses, das Daten für diese neue Dimension enthält, eine neue Spalte hinzugefügt:
Spalte 1 | Spalte 2 | Spalte 3 | ... | Spalte 498 | NewInfo1_s |
---|---|---|---|---|---|
abc | def | 123 | ... | 456 | xyz |
... | ... | ... | ... | ... | ... |
Sie können diese neuen Daten in einer einfachen Abfrage zurückgeben:
AzureDiagnostics | where NewInfo1_s == "xyz"
Zu einem späteren Zeitpunkt sendet eine andere Ressource Daten an AzureDiagnostics , die neue Dimensionen namens NewInfo2 und NewInfo3 hinzufügt. Da die Tabelle in diesem Arbeitsbereich 500 Spalten erreicht hat, werden die neuen Daten in die Spalte AdditionalFields eingefügt:
Spalte 1 | Spalte 2 | Spalte 3 | ... | Spalte 498 | NewInfo1_s | AdditionalFields |
---|---|---|---|---|---|---|
abc | def | 123 | ... | 456 | xyz | {"NewInfo2":"789","NewInfo3":"qwerty"} |
... | ... | ... | ... | ... | ... | ... |
Sie können diese Daten weiterhin abfragen, aber Sie müssen sie mithilfe eines der dynamischen Eigenschaftenoperatoren in KQL aus dem Eigenschaftenbehälter extrahieren:
AzureDiagnostics
| where AdditionalFields.NewInfo2 == "789" and AdditionalFields.NewInfo3 == "qwerty"
Tipps zur Verwendung der Spalte AdditionalFields
Während allgemeine bewährte Methoden für Abfragen, z. B. immer nach Zeit filtern, da die erste Klausel in der Abfrage befolgt werden sollte, gibt es einige andere Empfehlungen, die Sie bei der Arbeit mit AdditionalFields berücksichtigen sollten:
- Sie müssen Daten eingeben, bevor sie weitere Vorgänge ausführen. Wenn beispielsweise eine Spalte mit dem Namen Perf1Sec_i sowie eine Eigenschaft in AdditionalFields mit dem Namen Perf2Sec vorhanden ist und Sie die Gesamtperf durch Hinzufügen beider Werte berechnen möchten, verwenden Sie folgendes:
AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | ....
. - Verwenden Sie where-Klauseln, um das Datenvolumen vor dem Schreiben einer komplexen Logik so gering wie möglich zu reduzieren, um die Leistung erheblich zu verbessern. TimeGenerated ist eine Spalte, die immer auf das kleinste mögliche Fenster reduziert werden sollte. Im Fall von AzureDiagnostics sollte auch immer ein zusätzlicher Filter am Anfang der Abfrage um die Ressourcentypen enthalten sein, die mithilfe der ResourceType-Spalte abgefragt werden.
- Beim Abfragen sehr großer Datenmengen ist es manchmal effizienter, einen Filter für AdditionalFields als Ganzes auszuführen, anstatt sie zu analysieren. Beispielsweise ist für große Datenmengen
AzureDiagnostics | where AdditionalFields has "Perf2Sec"
häufig effizienter alsAzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec))
.
Modus „Azure-Diagnose“
Die folgenden Dienste verwenden den Azure Diagnose-Modus für ihre Ressourcenprotokolle und senden Daten an die Azure-Diagnose Tabelle.
- Analysis Services
- Anwendungsgateways
- Automation-Konten
- Serverkonzepte in Azure Database for MariaDB
- Azure Database for MySQL-Server
- Azure Database for PostgreSQL-Server
- Azure Database for PostgreSQL Server v2
- Batch-Konten
- CDN-Profile
- Cognitive Services
- Data Lake Analytics
- DataLake Storage Gen1
- Device Provisioning Services
- Digital Twins
- Event Grid-Themen
- Event Hubs
- ExpressRoute-Verbindungen
- Vordertüren
- Integrationskonten
- Key Vault
- Kubernetes-Dienste
- Load Balancer
- Logic Apps
- Media Services
- Netzwerkschnittstellen
- Netzwerksicherheitsgruppen
- P2S-VPN-Gateways
- Power BI Embedded
- Öffentliche IP-Adressen
- Recovery Services-Tresore(Site Recovery)
- Suchdienste
- Service Bus
- SQL-Datenbanken
- VERWALTETE SQL-Instanzen
- SQL-Server
- Stream Analytics-Aufträge
- Traffic Manager-Profile
- Virtuelle Netzwerke
- Gateways des virtuellen Netzwerks
- VPN-Gateways
Azure-Diagnose Modus oder ressourcenspezifischer Modus
Die folgenden Dienste verwenden je nach Konfiguration entweder den Azure-Diagnose-Modus oder den ressourcenspezifischen Modus für ihre Ressourcenprotokolle. Wenn sie den ressourcenspezifischen Modus verwenden, senden sie keine Daten an die AzureDiagnostics-Tabelle. Weitere Informationen zu dieser Konfiguration finden Sie unter Azure-Ressourcenprotokolle .
- API Management Services
- Azure Cosmos DB
- Data Factories (V2)
- IoT Hub
- Recovery Services-Tresore(Sicherung)
- Firewalls
Kategorien
- Azure-Ressourcen
- Sicherheit
- Netzwerk
Lösungen
- LogManagement
Ressourcentypen
- Anwendungsgateways
- CDN-Profile
- Azure Cosmos DB
- Event Grid-Themen
- Event Hubs
- Firewalls
- Schlüsseltresore
- Kubernetes-Dienste
- Recovery Services-Tresore
- Service Bus
- Azure Database for MySQL Flexible Server
- Azure Database for PostgreSQL Flexible Server
- Media Services
- Analysis Services
- Batch-Konten
- Cognitive Services
- Event Grid-Partnernamespaces
- Event Grid-Partnerthemen
- Event Grid-Systemthemen
- Kubernetes mit Azure Arc-Unterstützung
- Bereitgestellte Azure Arc-Cluster
- IoT Hub
- Logic Apps
- API Management-Dienste
- Automation-Konto
- Data Factorys
- Data Lake Storage Gen1
- Data Lake Analytics
- Power BI Embedded
- Verwaltete SQL-Instanzen
- SQL-Server
- SQL-DATENBANKEN
- Azure Database for MySQL Server
- Azure-Datenbank für PostgreSQL-Server
- Azure Database for PostgreSQL Server V2
- Azure Database for MariaDB Server
- Gerätebereitstellungsdienste
- ExpressRoute-Verbindungen
- Haustüren
- Netzwerkschnittstellen
- Netzwerksicherheitsgruppen
- Öffentliche IP-Adressen
- Traffic Manager-Profile
- Gateways für virtuelle Netzwerke
- Gateways für virtuelle private Netzwerke
- Virtuelle Netzwerke
- Suchdienste
- Stream Analytics-Aufträge
Spalten
Spalte | type | BESCHREIBUNG |
---|---|---|
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 | Double | |
avg_cpu_percent_s | String | |
avg_mean_time_s | String | |
backendHostname_s | String | |
Caller_s | String | |
callerId_s | String | |
CallerIPAddress | String | |
calls_s | String | |
Category | String | |
client_ip_s | String | |
clientInfo_s | String | |
clientIP_s | String | |
clientIp_s | String | |
clientIpAddress_s | String | |
clientPort_d | Double | |
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 | Double | |
cpu_time_d | Double | |
database_name_s | String | |
database_principal_name_s | String | |
DatabaseName_s | String | |
db_id_s | String | |
direction_s | String | |
dop_d | Double | |
duration_d | Double | |
duration_milliseconds_d | Double | |
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 | Double | |
executionInfo_endTime_t | Datetime | |
executionInfo_exitCode_d | Double | |
executionInfo_startTime_t | Datetime | |
host_s | String | |
httpMethod_s | String | |
httpStatus_d | Double | |
httpStatusCode_d | Double | |
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 | Double | |
interval_start_time_d | Double | |
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 | |
Ebene | String | |
log_bytes_used_d | Double | |
logical_io_reads_d | Double | |
logical_io_writes_d | Double | |
LogicalServerName_s | String | |
macAddress_s | String | |
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 | String | |
mean_time_s | String | |
`Message` | String | |
min_time_s | String | |
msg_s | String | |
num_physical_io_reads_d | Double | |
object_id_d | Double | |
object_name_s | String | |
Vorgangsname | String | |
OperationVersion | String | |
partitionKey_s | String | |
physical_io_reads_d | Double | |
plan_id_d | Double | |
policy_s | String | |
policyMode_s | String | |
primaryIPv4Address_s | String | |
priority_d | Double | |
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 | Double | |
query_max_used_memory_d | Double | |
query_plan_hash_s | String | |
query_time_d | Double | |
querytext_s | String | |
receivedBytes_d | Double | |
Region_s | String | |
requestCharge_s | String | |
requestQuery_s | String | |
requestResourceId_s | String | |
requestResourceType_s | String | |
requestUri_s | String | |
reserved_storage_mb_s | String | |
Resource | 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 | Ein eindeutiger Bezeichner für die Ressource, der der Datensatz zugeordnet ist. |
ResourceProvider | String | |
ResourceProvider | String | |
ResourceType | String | |
ResourceType | String | |
response_rows_d | Double | |
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 | Double | |
ruleName_s | String | |
RunbookName_s | String | |
RunOn_s | String | |
schema_name_s | String | |
sentBytes_d | Double | |
sequence_group_id_g | Guid | |
sequence_number_d | Double | |
server_principal_sid_s | String | |
session_id_d | Double |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für