Compartir a través de


AzureDiagnostics

Almacena los registros de recursos de los servicios de Azure que usan el modo de Azure Diagnostics. Los registros de recursos describen el funcionamiento interno de los recursos de Azure.

El registro de recursos de cada servicio de Azure tiene un conjunto único de columnas. La tabla AzureDiagnostics incluye las columnas más comunes que usan los servicios de Azure. Si un registro de recursos incluye una columna que aún no existe en la tabla AzureDiagnostics, esa columna se agrega la primera vez que se recopilan los datos. Si se alcanza el número máximo de 500 columnas, los datos de las columnas adicionales se agregan a una columna dinámica.

Los servicios de Azure que usan el modo específico del recurso almacenan datos en una tabla específica de ese servicio y no usan la tabla AzureDiagnostics. Consulte Registros de recursos de Azure para más información sobre las diferencias. Consulte Recursos mediante el modo azure Diagnostics para los servicios que usan Azure Diagnostics.

Nota:

La tabla AzureDiagnostics es una tabla de registro personalizada creada exclusivamente por la canalización de Azure Monitor la primera vez que un recurso de Azure comienza a enviar registros en modo azure Diagnostics. A diferencia de otras tablas, la tabla AzureDiagnostics no se puede crear a través de una API de tablas o plantillas de ARM. Por lo tanto, no es posible modificar los valores de retención predeterminados de la tabla antes de su creación.

Columna AdditionalFields

A diferencia de otras tablas, AzureDiagnostics es mucho más susceptible a superar el límite de 500 columnas impuesto para cualquier tabla de un área de trabajo de Log Analytics debido a la amplia variedad de recursos de Azure capaces de enviar datos a esta tabla. Para asegurarse de que no se pierde ningún dato debido al número de columnas activas que superen este límite de 500 columnas, la creación de columnas de AzureDiagnostics se controla de forma diferente a otras tablas.

La tabla AzureDiagnostics de cada área de trabajo contiene como mínimo las mismas 200 columnas. En el caso de las áreas de trabajo creadas antes del 19 de enero de 2021, la tabla también contiene las columnas que ya estaban en vigor antes de esta fecha. Cuando los datos se envían a una columna que aún no están en su lugar:

  • Si el número total de columnas de AzureDiagnostics en el área de trabajo actual no supera los 500, se crea una nueva columna igual que con cualquier otra tabla.
  • Si el número total de columnas es igual o superior a 500, el exceso de datos se agrega a una columna de contenedor de propiedades dinámica denominada AdditionalFields como propiedad.

Ejemplo

Para ilustrar este comportamiento, imagine que a partir de (fecha de implementación) la tabla AzureDiagnostics de nuestro área de trabajo tiene el siguiente aspecto:

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

Un recurso que envía datos a AzureDiagnostics agrega una nueva dimensión a sus datos que llaman a NewInfo1. Puesto que la tabla todavía tiene menos de 500 columnas, la primera vez que se produce un evento que contiene datos para esta nueva dimensión agrega una nueva columna a la tabla:

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

Puede devolver estos nuevos datos en una consulta sencilla:

AzureDiagnostics | where NewInfo1_s == "xyz"

En una fecha posterior, otro recurso envía datos a AzureDiagnostics que agrega nuevas dimensiones denominadas NewInfo2 y NewInfo3. Dado que la tabla ha alcanzado 500 columnas en esta área de trabajo, los nuevos datos entran en la columna AdditionalFields :

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

Todavía puede consultar estos datos, pero debe extraerlos del contenedor de propiedades mediante cualquiera de los operadores de propiedades dinámicas de KQL:

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

Sugerencias sobre el uso de la AdditionalFields columna

Aunque se deben seguir procedimientos recomendados de consulta, como filtrar siempre por tiempo, como la primera cláusula de la consulta, hay otras recomendaciones que debe tener en cuenta al trabajar con AdditionalFields:

  • Debe escribir los datos antes de realizar más operaciones en él. Por ejemplo, si tiene una columna denominada Perf1Sec_i y una propiedad en AdditionalFields denominada Perf2Sec, y desea calcular el rendimiento total agregando ambos valores, puede usar lo siguiente: AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | .....
  • Use cláusulas where para reducir el volumen de datos al menor posible antes de escribir cualquier lógica compleja para mejorar significativamente el rendimiento. TimeGenerated es una columna que siempre debe reducirse a la ventana más pequeña posible. En el caso de AzureDiagnostics, siempre se debe incluir un filtro adicional en la parte superior de la consulta en torno a los tipos de recursos que se consultan mediante la columna ResourceType .
  • Al consultar grandes volúmenes de datos, a veces es más eficaz realizar un filtro en AdditionalFields como un todo en lugar de analizarlos. Por ejemplo, para grandes volúmenes de datos, AzureDiagnostics | where AdditionalFields has "Perf2Sec" a menudo es más eficaz que AzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec)).

Recursos mediante el modo de diagnóstico de Azure

Los siguientes servicios usan el modo de diagnóstico de Azure para sus registros de recursos y envían datos a la tabla azure Diagnostics. Consulte Registros de recursos de Azure para más información sobre esta configuración.

Nota:

Todos los demás recursos envían datos a tablas específicas de recursos.

Nombre del servicio 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/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 microsoft.network/publicipaddresses
AzureDataLake microsoft.datalakeanalytics/accounts
MicrosoftStreamanalytics microsoft.streamanalytics/streamingjobs
servicebus 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 microsoft.cdn/cdnwebapplicationfirewallpolicies
AzureHybrid microsoft.network/expressroutecircuits
MicrosoftAzureCosmosDB microsoft.dbforpostgresql/flexibleservers
NetMon microsoft.network/publicipprefixes
AzureCdn microsoft.cdn/profiles/endpoints

Modo de diagnóstico de Azure o modo específico de recursos

Los siguientes servicios usan el modo de diagnóstico de Azure o el modo específico del recurso para sus registros de recursos en función de la configuración de configuración de diagnóstico. Al usar el modo específico del recurso, estos recursos no envían datos a la tabla AzureDiagnostics. Consulte Registros de recursos de Azure para más información sobre esta configuración.

Nombre del servicio resourceType
API Management Services Microsoft.ApiManagement
Azure Cosmos DB Microsoft.DocumentDB/databaseAccounts
Factorías de datos (V2) Microsoft.DataFactory
Almacenes de Recovery Services(Copia de seguridad) Microsoft.RecoveryServices/vaults
Firewalls Microsoft.Network/azureFirewalls

Columnas de la tabla AzureDiagnostics

Columna Type Descripción
action_id_s Cadena
action_name_s Cadena
action_s Cadena
ActivityId_g GUID
AdditionalFields
AdHocOrScheduledJob_s Cadena
application_name_s Cadena
audit_schema_version_d Double
avg_cpu_percent_s Cadena
avg_mean_time_s Cadena
backendHostname_s Cadena
Caller_s Cadena
callerId_s Cadena
CallerIPAddress Cadena
calls_s Cadena
Category Cadena
client_ip_s Cadena
clientInfo_s Cadena
clientIP_s Cadena
clientIp_s Cadena
clientIpAddress_s Cadena
clientPort_d Double
code_s Cadena
collectionName_s Cadena
conditions_destinationIP_s Cadena
conditions_destinationPortRange_s Cadena
conditions_None_s Cadena
conditions_protocols_s Cadena
conditions_sourceIP_s Cadena
conditions_sourcePortRange_s Cadena
CorrelationId Cadena
count_executions_d Double
cpu_time_d Double
database_name_s Cadena
database_principal_name_s Cadena
DatabaseName_s Cadena
db_id_s Cadena
direction_s Cadena
dop_d Double
duration_d Double
duration_milliseconds_d Double
DurationMs BigInt
ElasticPoolName_s Cadena
endTime_t DateTime
Environment_s Cadena
error_code_s Cadena
error_message_s Cadena
errorLevel_s Cadena
event_class_s Cadena
event_s Cadena
event_subclass_s Cadena
event_time_t DateTime
EventName_s Cadena
execution_type_d Double
executionInfo_endTime_t DateTime
executionInfo_exitCode_d Double
executionInfo_startTime_t DateTime
host_s Cadena
httpMethod_s Cadena
httpStatus_d Double
httpStatusCode_d Double
httpStatusCode_s Cadena
httpVersion_s Cadena
id_s Cadena
identity_claim_appid_g GUID
identity_claim_ipaddr_s Cadena
instanceId_s Cadena
interval_end_time_d Double
interval_start_time_d Double
ip_s Cadena
is_column_permission_s Cadena
isAccessPolicyMatch_b Booleano
JobDurationInSecs_s Cadena
JobFailureCode_s Cadena
JobId_g GUID
jobId_s Cadena
JobOperation_s Cadena
JobOperationSubType_s Cadena
JobStartDateTime_s Cadena
JobStatus_s Cadena
JobUniqueId_g GUID
Nivel Cadena
log_bytes_used_d Double
logical_io_reads_d Double
logical_io_writes_d Double
LogicalServerName_s Cadena
macAddress_s Cadena
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 Cadena
mean_time_s Cadena
Message String
min_time_s Cadena
msg_s Cadena
num_physical_io_reads_d Double
object_id_d Double
object_name_s Cadena
OperationName Cadena
OperationVersion Cadena
partitionKey_s Cadena
physical_io_reads_d Double
plan_id_d Double
policy_s Cadena
policyMode_s Cadena
primaryIPv4Address_s Cadena
priority_d Double
properties_enabledForDeployment_b Booleano
properties_enabledForDiskEncryption_b Booleano
properties_enabledForTemplateDeployment_b Booleano
properties_s Cadena
properties_sku_Family_s Cadena
properties_sku_Name_s Cadena
properties_tenantId_g GUID
query_hash_s Cadena
query_id_d Double
query_max_used_memory_d Double
query_plan_hash_s Cadena
query_time_d Double
querytext_s Cadena
receivedBytes_d Double
Region_s Cadena
requestCharge_s Cadena
requestQuery_s Cadena
requestResourceId_s Cadena
requestResourceType_s Cadena
requestUri_s Cadena
reserved_storage_mb_s Cadena
Resource Cadena
resource_actionName_s Cadena
resource_location_s Cadena
resource_originRunId_s Cadena
resource_resourceGroupName_s Cadena
resource_runId_s Cadena
resource_subscriptionId_g GUID
resource_triggerName_s Cadena
resource_workflowId_g GUID
resource_workflowName_s Cadena
ResourceGroup Cadena
_ResourceId Cadena Identificador único del recurso al que está asociado el registro.
ResourceProvider Cadena
ResourceProvider Cadena
ResourceType Cadena
ResourceType Cadena
response_rows_d Double
resultCode_s Cadena
ResultDescription Cadena
ResultDescription Cadena
resultDescription_ChildJobs_s Cadena
resultDescription_ErrorJobs_s Cadena
resultMessage_s Cadena
ResultSignature Cadena
ResultType Cadena
ResultType Cadena
rootCauseAnalysis_s Cadena
routingRuleName_s Cadena
rowcount_d Double
ruleName_s Cadena
RunbookName_s Cadena
RunOn_s Cadena
schema_name_s Cadena
sentBytes_d Double
sequence_group_id_g GUID
sequence_number_d Double
server_principal_sid_s Cadena
session_id_d Double