Delen via


AzureDiagnostics

Slaat resourcelogboeken op voor Azure-services die gebruikmaken van de diagnostische modus van Azure. Resourcelogboeken beschrijven de interne werking van Azure-resources.

Het resourcelogboek voor elke Azure-service heeft een unieke set kolommen. De tabel AzureDiagnostics bevat de meest voorkomende kolommen die worden gebruikt door Azure-services. Als een resourcelogboek een kolom bevat die nog niet bestaat in de tabel AzureDiagnostics, wordt die kolom toegevoegd wanneer er voor de eerste keer gegevens worden verzameld. Als het maximumaantal van 500 kolommen is bereikt, worden gegevens voor eventuele extra kolommen toegevoegd aan een dynamische kolom.

Azure-services die gebruikmaken van de resourcespecifieke modus slaan gegevens op in een tabel die specifiek is voor die service en die niet de tabel AzureDiagnostics gebruiken. Zie Azure-resourcelogboeken voor meer informatie over de verschillen. Zie Resources met behulp van azure Diagnostics-modus voor de services die gebruikmaken van Azure Diagnostics.

Notitie

De AzureDiagnostics-tabel is een aangepaste logboektabel die uitsluitend door de Azure Monitor-pijplijn wordt gemaakt wanneer een Azure-resource voor het eerst logboeken verzendt in de modus Diagnostische gegevens van Azure. In tegenstelling tot andere tabellen kan de AzureDiagnostics-tabel niet worden gemaakt via een ARM-sjabloon of tabellen-API. Daarom is het niet mogelijk om de standaardretentiewaarden van de tabel te wijzigen voordat deze wordt gemaakt.

Kolom AdditionalFields

In tegenstelling tot andere tabellen is AzureDiagnostics veel gevoeliger voor het overschrijden van de limiet van 500 kolommen voor elke tabel in een Log Analytics-werkruimte vanwege het brede assortiment Azure-resources dat gegevens naar deze tabel kan verzenden. Om ervoor te zorgen dat er geen gegevens verloren gaan als gevolg van het aantal actieve kolommen dat deze limiet van 500 kolommen overschrijdt, wordt het maken van azureDiagnostics-kolommen op een andere manier verwerkt voor andere tabellen.

De tabel AzureDiagnostics in elke werkruimte bevat minimaal dezelfde 200 kolommen. Voor werkruimten die vóór 19 januari 2021 zijn gemaakt, bevat de tabel ook kolommen die al vóór deze datum aanwezig waren. Wanneer gegevens naar een kolom worden verzonden die nog niet aanwezig zijn:

  • Als het totale aantal kolommen in AzureDiagnostics in de huidige werkruimte niet groter is dan 500, wordt er een nieuwe kolom gemaakt, net als bij een andere tabel.
  • Als het totale aantal kolommen zich op of boven de 500 bevindt, worden de overtollige gegevens toegevoegd aan een kolom met dynamische eigenschappenverzamelingen met de naam AdditionalFields als eigenschap.

Opmerking

Als u dit gedrag wilt illustreren, stelt u zich voor dat de tabel AzureDiagnostics in onze werkruimte er als volgt uitziet:

Kolom 1 Kolom 2 Kolom 3 ... Kolom 498
abc def 123 ... 456
... ... ... ... ...

Een resource die gegevens naar AzureDiagnostics verzendt, voegt vervolgens een nieuwe dimensie toe aan de gegevens die ze NewInfo1 noemen. Omdat de tabel nog steeds minder dan 500 kolommen bevat, wordt voor het eerst een gebeurtenis met gegevens voor deze nieuwe dimensie toegevoegd aan de tabel:

Kolom 1 Kolom 2 Kolom 3 ... Kolom 498 NewInfo1_s
abc def 123 ... 456 xyz
... ... ... ... ... ...

U kunt deze nieuwe gegevens retourneren in een eenvoudige query:

AzureDiagnostics | where NewInfo1_s == "xyz"

Op een latere datum verzendt een andere resource gegevens naar AzureDiagnostics waarmee nieuwe dimensies met de naam NewInfo2 en NewInfo3 worden toegevoegd. Omdat de tabel 500 kolommen in deze werkruimte heeft bereikt, worden de nieuwe gegevens in de kolom AdditionalFields geplaatst:

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

U kunt nog steeds query's uitvoeren op deze gegevens, maar u moet deze extraheren uit de eigenschappenverzameling met behulp van een van de dynamische eigenschapsoperators in KQL:

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

Tips voor het gebruik van de AdditionalFields kolom

Hoewel best practices voor query's, zoals altijd filteren op tijd als de eerste component in de query, moeten worden gevolgd, zijn er enkele andere aanbevelingen die u moet overwegen bij het werken met AdditionalFields:

  • U moet gegevens typen voordat u er verdere bewerkingen op uitvoert. Als u bijvoorbeeld een kolom hebt met de naam Perf1Sec_i en een eigenschap in AdditionalFields met de naam Perf2Sec en u het totaal perf wilt berekenen door beide waarden toe te voegen, kunt u het volgende gebruiken: AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | ....
  • Gebruik where-componenten om het gegevensvolume zo klein mogelijk te verminderen voordat u complexe logica schrijft om de prestaties aanzienlijk te verbeteren. TimeGenerated is één kolom die altijd moet worden teruggebracht tot het kleinste mogelijke venster. In het geval van AzureDiagnostics moet boven aan de query altijd een extra filter worden opgenomen rond de resourcetypen die worden opgevraagd met behulp van de kolom ResourceType .
  • Bij het uitvoeren van query's op grote hoeveelheden gegevens is het soms efficiënter om een filter uit te voeren op AdditionalFields als geheel in plaats van deze te parseren . Voor grote hoeveelheden gegevens AzureDiagnostics | where AdditionalFields has "Perf2Sec" is bijvoorbeeld vaak efficiënter dan AzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec)).

Resources met behulp van azure Diagnostics-modus

De volgende services gebruiken de diagnostische modus van Azure voor hun resourcelogboeken en verzenden gegevens naar de Azure Diagnostics-tabel. Zie Azure-resourcelogboeken voor meer informatie over deze configuratie.

Notitie

Alle andere resources verzenden gegevens naar resourcespecifieke tabellen.

Servicenaam resourceType
MicrosoftSqlAzureTelemetryv3 microsoft.sql/servers/databases
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/namespaces
AzureFrontdoor microsoft.network/frontdoors
AzureKeyVault microsoft.keyvault/vaults
AzureDataLake microsoft.datalakestore/accounts
ApiManagement microsoft.apimanagement/service
MicrosoftSqlAzureTelemetryv3 microsoft.sql/managedinstances
ASAzureRP microsoft.analysisservices/servers
MicrosoftOrcasBreadthServers microsoft.dbformysql/flexibleservers
servicebus microsoft.servicebus/namespaces
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/managedinstances/databases
PBIDedicatedRP microsoft.powerbidedicated/capaciteiten
AzureHybrid microsoft.network/vpngateways
MicrosoftDatafactory microsoft.datafactory/factory's
MicrosoftCognitiveServices microsoft.cognitiveservices/accounts
AzureRecoveryServices microsoft.recoveryservices/kluizen
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/naamruimten
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

Azure Diagnostics-modus of resourcespecifieke modus

De volgende services gebruiken de diagnostische modus van Azure of de resourcespecifieke modus voor hun resourcelogboeken, afhankelijk van de configuratie van de diagnostische instellingen. Wanneer u de resourcespecifieke modus gebruikt, verzenden deze resources geen gegevens naar de tabel AzureDiagnostics. Zie Azure-resourcelogboeken voor meer informatie over deze configuratie.

Servicenaam resourceType
API Management Services Microsoft.ApiManagement
Azure Cosmos DB Microsoft.DocumentDB/databaseAccounts
Gegevensfactory's (V2) Microsoft.DataFactory
Recovery Services-kluizen (back-up) Microsoft.RecoveryServices/vaults
Firewalls Microsoft.Network/azureFirewalls

AzureDiagnostics-tabelkolommen

Column Type Description
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
Categorie 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 en tijd
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 en tijd
EventName_s String
execution_type_d Dubbel
executionInfo_endTime_t Datum en tijd
executionInfo_exitCode_d Dubbel
executionInfo_startTime_t Datum en tijd
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
Niveau 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
Bericht 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
Bron 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 Een unieke id voor de resource waaraan de record is gekoppeld
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