Condividi tramite


AzureDiagnostics

Archivia i log delle risorse per i servizi di Azure che usano la modalità Diagnostica di Azure. I log delle risorse descrivono il funzionamento interno delle risorse di Azure.

Il log delle risorse per ogni servizio Azure presenta un set di colonne univoco. La tabella AzureDiagnostics include le colonne più comuni usate dai servizi di Azure. Se un log delle risorse include una colonna che non esiste già nella tabella AzureDiagnostics, tale colonna viene aggiunta la prima volta che vengono raccolti i dati. Se viene raggiunto il numero massimo di 500 colonne, i dati per eventuali colonne aggiuntive vengono aggiunti a una colonna dinamica.

I servizi di Azure che usano la modalità specifica della risorsa archiviano i dati in una tabella specifica del servizio e non usano la tabella AzureDiagnostics. Per informazioni dettagliate sulle differenze, vedere Log delle risorse di Azure. Consultare Risorse che usano la modalità Diagnostica di Azure per i servizi che utilizzano Diagnostica di Azure.

Nota

La tabella AzureDiagnostics è una tabella di log personalizzata creata esclusivamente dalla pipeline di Monitoraggio di Azure la prima volta che una risorsa di Azure inizia a inviare i log in modalità Diagnostica di Azure. A differenza di altre tabelle, la tabella AzureDiagnostics non può essere creata tramite un modello ARM o un'API delle tabelle. Di conseguenza, non è possibile modificare i valori di conservazione predefiniti della tabella prima della creazione.

Colonna AdditionalFields

A differenza di altre tabelle, AzureDiagnostics è molto più soggetto al superamento del limite di 500 colonne imposto per qualsiasi tabella in un'area di lavoro Log Analytics a causa dell'ampia gamma di risorse di Azure in grado di inviare dati a questa tabella. Per assicurarsi che nessun dato venga perso a causa del numero di colonne attive che superano questo limite di 500 colonne, la creazione di colonne di AzureDiagnostics viene gestita in modo diverso rispetto ad altre tabelle.

La tabella AzureDiagnostics in ogni area di lavoro contiene almeno le stesse 200 colonne. Per le aree di lavoro create prima del 19 gennaio 2021, la tabella contiene anche tutte le colonne già presenti prima di questa data. Quando i dati vengono inviati a una colonna non ancora esistente:

  • Se il numero totale di colonne in AzureDiagnostics nell'area di lavoro corrente non supera 500, viene creata una nuova colonna esattamente come con qualsiasi altra tabella.
  • Se il numero totale di colonne è pari o superiore a 500, i dati in eccesso vengono aggiunti a una colonna contenitore delle proprietà dinamica denominata AdditionalFields come proprietà.

Esempio

Per illustrare questo comportamento, si supponga che a partire dalla data di distribuzione la tabella AzureDiagnostics nell'area di lavoro sia simile alla seguente:

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

Una risorsa che invia dati ad AzureDiagnostics aggiunge quindi una nuova dimensione ai dati che chiamano NewInfo1. Poiché la tabella contiene ancora meno di 500 colonne, la prima volta che si verifica un evento che contiene dati per questa nuova dimensione aggiunge una nuova colonna alla tabella:

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

È possibile restituire questi nuovi dati in una query semplice:

AzureDiagnostics | where NewInfo1_s == "xyz"

In un secondo momento, un'altra risorsa invia dati ad AzureDiagnostics che aggiunge nuove dimensioni denominate NewInfo2 e NewInfo3. Poiché la tabella ha raggiunto 500 colonne in questa area di lavoro, i nuovi dati vengono inseriti nella colonna AdditionalFields :

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

È comunque possibile eseguire query per questi dati, ma è necessario estrarli dal contenitore delle proprietà usando uno degli operatori di proprietà dinamici in KQL:

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

Suggerimenti sull'uso della AdditionalFields colonna

Sebbene le procedure consigliate per le query (come l'applicazione costante di filtri in base al tempo come prima clausola della query) siano consigliate, è necessario considerare anche altre raccomandazioni quando si lavora con AdditionalFields:

  • È necessario digitare i dati prima di eseguire altre operazioni su di esso. Ad esempio, se si dispone di una colonna denominata Perf1Sec_i e di una proprietà in AdditionalFields denominata Perf2Sec e si desidera calcolare le prestazioni totali aggiungendo entrambi i valori, è possibile usare quanto segue: AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | .....
  • Usare le clausole where per ridurre il volume di dati al più piccolo possibile prima di scrivere una logica complessa per migliorare significativamente le prestazioni. TimeGenerated è una colonna che deve essere sempre ridotta alla finestra più piccola possibile. Nel caso di AzureDiagnostics, è necessario includere sempre un filtro aggiuntivo nella parte superiore della query sui tipi di risorse su cui viene eseguita una query usando la colonna ResourceType .
  • Quando si eseguono query su grandi volumi di dati, a volte è più efficiente eseguire un filtro su AdditionalFields nel suo complesso anziché analizzarli. Ad esempio, per grandi volumi di dati, AzureDiagnostics | where AdditionalFields has "Perf2Sec" è spesso più efficiente di AzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec)).

Risorse che usano la modalità Diagnostica di Azure

I servizi seguenti usano la modalità diagnostica di Azure per i log delle risorse e inviano dati alla tabella Diagnostica di Azure. Per informazioni dettagliate su questa configurazione, vedere Log delle risorse di Azure.

Nota

Tutte le altre risorse inviano dati a tabelle specifiche delle risorse.

Nome servizio tipo di risorsa
MicrosoftSqlAzureTelemetryv3 microsoft.sql/servers/databases
MicrosoftAzureCosmosDB microsoft.documentdb/databaseaccounts
Firewall di Azure microsoft.network/azurefirewalls
Servizio Gateway delle Applicazioni di Azure microsoft.network/applicationgateways
AKSCustomerData microsoft.containerservice/managedclusters
AzureFrontdoor (Servizio di distribuzione contenuti di Azure) microsoft.cdn/profiles
LNMAgentService microsoft.network/networksecuritygroups
MicrosoftOrcasBreadthServers microsoft.dbforpostgresql/flexibleservers
bus di servizio microsoft.eventhub/namespaces
AzureFrontdoor (Servizio di distribuzione contenuti di Azure) 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
bus di servizio microsoft.servicebus/namespaces
AzureIotHub microsoft.devices/iothubs
MicrosoftSqlAzureTelemetryv2 microsoft.dbforpostgresql/servers
MicrosoftSqlAzureTelemetryv2 microsoft.dbformariadb/servers
MicrosoftAutomation microsoft.automation/automationaccounts
Responsabile del traffico microsoft.network/trafficmanagerprofiles
MicrosoftOrcasBreadthServers microsoft.dbforpostgresql/servergroupsv2
AzureSearch microsoft.search/searchservices
AzureHybrid microsoft.network/virtualnetworkgateways
MicrosoftSqlAzureTelemetryv3 microsoft.sql/managedinstances/databases
PBIDedicatedRP microsoft.powerbidedicated/capacities
AzureHybrid microsoft.network/vpngateways
MicrosoftDatafactory microsoft.datafactory/factories
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 Indirizzo IP pubblico di Microsoft: microsoft.network/publicipaddresses
AzureDataLake microsoft.datalakeanalytics/accounts
MicrosoftStreamanalytics microsoft.streamanalytics/streamingjobs
bus di servizio microsoft.relay/namespaces
AzureIotDps microsoft.devices/provisioningservices
MicrosoftAzureCosmosDB microsoft.documentdb/cassandraclusters
MicrosoftAzureCosmosDB microsoft.documentdb/mongoclusters
AKSCustomerData microsoft.containerservice/fleets
PBIDedicatedRP microsoft.powerbi/tenants/workspaces
AzureFrontdoor (Servizio di distribuzione contenuti di Azure) microsoft.cdn/cdnwebapplicationfirewallpolicies
AzureHybrid microsoft.network/expressroutecircuits
MicrosoftAzureCosmosDB microsoft.dbforpostgresql/flexibleservers
NetMon microsoft.network/publicipprefixes
AzureCdn microsoft.cdn/profiles/endpoints

Modalità Diagnostica di Azure o modalità specifica per risorse

I servizi seguenti usano la modalità diagnostica di Azure o la modalità specifica della risorsa per i log delle risorse a seconda della configurazione delle impostazioni di diagnostica. Quando si usa la modalità specifica della risorsa, queste risorse non inviano dati alla tabella AzureDiagnostics. Per informazioni dettagliate su questa configurazione, vedere Log delle risorse di Azure.

Nome servizio tipo di risorsa
Servizi di gestione delle API Microsoft.ApiManagement
Azure Cosmos DB Microsoft.DocumentDB/databaseAccounts
Data factory (V2) Microsoft.DataFactory
Insiemi di credenziali dei servizi di ripristino (backup) Microsoft.RecoveryServices/vaults
Firewall Microsoft.Network/azureFirewalls

Colonne della tabella AzureDiagnostics

Colonna Tipo Descrizione
action_id_s Stringa
action_name_s Stringa
action_s Stringa
ActivityId_g Guid
Campi aggiuntivi
AdHocOrScheduledJob_s Stringa
application_name_s Stringa
audit_schema_version_d Double
avg_cpu_percent_s Stringa
avg_mean_time_s Stringa
backendHostname_s Stringa
Caller_s Stringa
callerId_s Stringa
CallerIPAddress Stringa
calls_s Stringa
Categoria Stringa
client_ip_s Stringa
clientInfo_s Stringa
clientIP_s Stringa
clientIp_s Stringa
clientIpAddress_s Stringa
clientPort_d Double
code_s Stringa
collectionName_s Stringa
conditions_destinationIP_s Stringa
conditions_destinationPortRange_s Stringa
conditions_None_s Stringa
conditions_protocols_s Stringa
conditions_sourceIP_s Stringa
conditions_sourcePortRange_s Stringa
IdentificatoreDiCorrelazione Stringa
count_executions_d Double
cpu_time_d Double
database_name_s Stringa
database_principal_name_s Stringa
DatabaseName_s Stringa
db_id_s Stringa
direction_s Stringa
dop_d Double
duration_d Double
duration_milliseconds_d Double
Durata in Millisecondi BigInt
ElasticPoolName_s Stringa
endTime_t Data e Ora
Environment_s Stringa
error_code_s Stringa
error_message_s Stringa
errorLevel_s Stringa
event_class_s Stringa
event_s Stringa
evento_sottoclasse_s Stringa
event_time_t Data e Ora
EventName_s Stringa
tipo_di_esecuzione_d Double
executionInfo_endTime_t Data e Ora
executionInfo_exitCode_d Double
executionInfo_startTime_t Data e Ora
host_s Stringa
httpMethod_s Stringa
httpStatus_d Double
httpStatusCode_d Double
httpStatusCode_s Stringa
httpVersion_s Stringa
id_s Stringa
identity_claim_appid_g Guid
identity_claim_ipaddr_s Stringa
instanceId_s Stringa
interval_end_time_d Double
interval_start_time_d Double
ip_s Stringa
is_column_permission_s Stringa
isAccessPolicyMatch_b Bool
JobDurationInSecs_s Stringa
JobFailureCode_s Stringa
JobId_g Guid
jobId_s Stringa
JobOperation_s Stringa
JobOperationSubType_s Stringa
JobStartDateTime_s Stringa
JobStatus_s Stringa
JobUniqueId_g Guid
Livello Stringa
log_bytes_used_d Double
logical_io_reads_d Double
logical_io_writes_d Double
LogicalServerName_s Stringa
macAddress_s Stringa
matchedConnections_d Double
max_cpu_time_d Double
max_dop_d Double
durata_massima_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
tempo_massimo_s Stringa
mean_time_s Stringa
Messaggio Stringa
min_time_s Stringa
msg_s Stringa
num_physical_io_reads_d Double
object_id_d Double
object_name_s Stringa
Nome dell'operazione Stringa
OperationVersion Stringa
partitionKey_s Stringa
physical_io_reads_d Double
plan_id_d Double
policy_s Stringa
policyMode_s Stringa
primaryIPv4Address_s Stringa
priority_d Double
properties_enabledForDeployment_b Bool
properties_enabledForDiskEncryption_b Bool
properties_enabledForTemplateDeployment_b Bool
properties_s Stringa
properties_sku_Family_s Stringa
properties_sku_Name_s Stringa
properties_tenantId_g Guid
query_hash_s Stringa
query_id_d Double
query_max_used_memory_d Double
query_plan_hash_s Stringa
query_time_d Double
querytext_s Stringa
receivedBytes_d Double
Region_s Stringa
requestCharge_s Stringa
requestQuery_s Stringa
requestResourceId_s Stringa
requestResourceType_s Stringa
requestUri_s Stringa
reserved_storage_mb_s Stringa
Risorsa Stringa
resource_actionName_s Stringa
resource_location_s Stringa
resource_originRunId_s Stringa
resource_resourceGroupName_s Stringa
resource_runId_s Stringa
resource_subscriptionId_g Guid
resource_triggerName_s Stringa
resource_workflowId_g Guid
resource_workflowName_s Stringa
ResourceGroup Stringa
_ResourceId Stringa Identificatore univoco della risorsa a cui è associato il record.
Fornitore di risorse Stringa
Fornitore di risorse Stringa
Tipo di Risorsa Stringa
Tipo di Risorsa Stringa
response_rows_d Double
resultCode_s Stringa
DescrizioneRisultato Stringa
DescrizioneRisultato Stringa
resultDescription_ChildJobs_s Stringa
resultDescription_ErrorJobs_s Stringa
resultMessage_s Stringa
ResultSignature Stringa
TipoDiRisultato Stringa
TipoDiRisultato Stringa
rootCauseAnalysis_s Stringa
routingRuleName_s Stringa
rowcount_d Double
ruleName_s Stringa
RunbookName_s Stringa
RunOn_s Stringa
schema_name_s Stringa
sentBytes_d Double
sequence_group_id_g Guid
sequence_number_d Double
server_principal_sid_s Stringa
session_id_d Double