AzureDiagnostics
Stocke les journaux de ressources pour les services Azure qui utilisent le mode Azure Diagnostics. Les journaux de ressources décrivent le fonctionnement interne des ressources Azure.
Le journal des ressources de chaque service Azure possède un ensemble unique de colonnes. La table AzureDiagnostics comprend les colonnes les plus courantes utilisées par les services Azure. Si un journal des ressources contient une colonne qui n’existe pas encore dans la table AzureDiagnostics, cette colonne est ajoutée la première fois que les données sont collectées. Si le nombre maximal de 500 colonnes est atteint, les données des colonnes supplémentaires sont ajoutées à une colonne dynamique.
Les services Azure qui utilisent le mode spécifique aux ressources stockent des données dans une table spécifique à ce service et n’utilisent pas la table AzureDiagnostics. Pour plus d’informations sur les différences, consultez les journaux des ressources Azure. Consultez ressources en mode Diagnostics Azure pour les services qui utilisent Diagnostics Azure.
Remarque
La table AzureDiagnostics est une table de journaux personnalisée créée exclusivement par le pipeline Azure Monitor la première fois qu’une ressource Azure commence à envoyer des journaux en mode Diagnostics Azure. Contrairement à d’autres tables, la table AzureDiagnostics ne peut pas être créée via un modèle ARM ou une API de tables. Par conséquent, il n’est pas possible de modifier les valeurs de rétention par défaut de la table avant sa création.
Colonne AdditionalFields
Contrairement à d’autres tables, AzureDiagnostics est beaucoup plus susceptible de dépasser la limite de 500 colonnes imposée pour n’importe quelle table d’un espace de travail Log Analytics en raison d’un large éventail de ressources Azure capables d’envoyer des données à cette table. Pour vous assurer qu’aucune donnée n’est perdue en raison du nombre de colonnes actives dépassant cette limite de 500 colonnes, la création de colonnes AzureDiagnostics est gérée de différentes manières par d’autres tables.
La table AzureDiagnostics de chaque espace de travail contient au minimum 200 colonnes. Pour les espaces de travail créés avant le 19 janvier 2021, la table contient également toutes les colonnes déjà en place avant cette date. Lorsque les données sont envoyées à une colonne qui n’est pas déjà en place :
- Si le nombre total de colonnes dans AzureDiagnostics dans l’espace de travail actuel ne dépasse pas 500, une nouvelle colonne est créée comme avec n’importe quelle autre table.
- Si le nombre total de colonnes est supérieur ou égal à 500, les données excédentaires sont ajoutées à une colonne de conteneur de propriétés dynamique appelée AdditionalFields en tant que propriété.
Exemple
Pour illustrer ce comportement, imaginez qu’à partir de (date de déploiement) la table AzureDiagnostics dans notre espace de travail se présente comme suit :
Colonne 1 | Colonne 2 | Colonne 3 | ... | Colonne 498 |
---|---|---|---|---|
abc | def | 123 | ... | 456 |
... | ... | ... | ... | ... |
Ressource qui envoie des données à AzureDiagnostics puis ajoute une nouvelle dimension à ses données qu’ils appellent NewInfo1. Étant donné que la table comporte toujours moins de 500 colonnes, la première fois qu’un événement se produit qui contient des données pour cette nouvelle dimension ajoute une nouvelle colonne à la table :
Colonne 1 | Colonne 2 | Colonne 3 | ... | Colonne 498 | NewInfo1_s |
---|---|---|---|---|---|
abc | def | 123 | ... | 456 | xyz |
... | ... | ... | ... | ... | ... |
Vous pouvez retourner ces nouvelles données dans une requête simple :
AzureDiagnostics | where NewInfo1_s == "xyz"
À une date ultérieure, une autre ressource envoie des données à AzureDiagnostics qui ajoute de nouvelles dimensions appelées NewInfo2 et NewInfo3. Étant donné que la table a atteint 500 colonnes dans cet espace de travail, les nouvelles données entrent dans la colonne AdditionalFields :
Colonne 1 | Colonne 2 | Colonne 3 | ... | Colonne 498 | NewInfo1_s | AdditionalFields |
---|---|---|---|---|---|---|
abc | def | 123 | ... | 456 | xyz | {"NewInfo2 » :"789 »,"NewInfo3 » :"qwerty"} |
... | ... | ... | ... | ... | ... | ... |
Vous pouvez toujours interroger ces données, mais vous devez l’extraire du conteneur de propriétés à l’aide de l’un des opérateurs de propriétés dynamiques dans KQL :
AzureDiagnostics
| where AdditionalFields.NewInfo2 == "789" and AdditionalFields.NewInfo3 == "qwerty"
Conseils sur l’utilisation de la AdditionalFields
colonne
Bien que les meilleures pratiques de requête telles que le filtrage toujours par heure comme la première clause de la requête soient suivies, il existe d’autres recommandations que vous devez prendre en compte lors de l’utilisation de AdditionalFields :
- Vous devez taper des données decast avant d’effectuer d’autres opérations sur celle-ci. Par exemple, si vous avez une colonne appelée Perf1Sec_i et une propriété dans AdditionalFields appelée Perf2Sec et que vous souhaitez calculer le nombre total de perf en ajoutant les deux valeurs, vous pouvez utiliser ce qui suit :
AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | ....
- Utilisez where clauses pour réduire le volume de données au plus petit possible avant d’écrire une logique complexe pour améliorer considérablement les performances. TimeGenerated est une colonne qui doit toujours être réduite à la plus petite fenêtre possible. Dans le cas d’AzureDiagnostics , un filtre supplémentaire doit toujours être inclus en haut de la requête autour des types de ressources interrogés à l’aide de la colonne ResourceType .
- Lors de l’interrogation de grands volumes de données, il est parfois plus efficace d’effectuer un filtre sur AdditionalFields dans son ensemble plutôt que de l’analyser. Par exemple, pour de grands volumes de données,
AzureDiagnostics | where AdditionalFields has "Perf2Sec"
est souvent plus efficace queAzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec))
.
Ressources utilisant le mode Diagnostics Azure
Les services suivants utilisent le mode diagnostics Azure pour leurs journaux de ressources et envoient des données à la table Diagnostics Azure. Pour plus d’informations sur cette configuration, consultez les journaux des ressources Azure.
Remarque
Toutes les autres ressources envoient des données à des tables spécifiques aux ressources.
Nom du service | 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 |
mode Diagnostics Azure ou mode spécifique aux ressources
Les services suivants utilisent le mode diagnostics Azure ou le mode spécifique aux ressources pour leurs journaux de ressources en fonction de la configuration des paramètres de diagnostic. Lorsque vous utilisez un mode spécifique aux ressources, ces ressources n’envoient pas de données à la table AzureDiagnostics. Pour plus d’informations sur cette configuration, consultez les journaux des ressources Azure.
Nom du service | resourceType |
---|---|
services Gestion des API | Microsoft.ApiManagement |
Azure Cosmos DB | Microsoft.DocumentDB/databaseAccounts |
Fabriques de données (V2) | Microsoft.DataFactory |
Coffres Recovery Services (sauvegarde) | Microsoft.RecoveryServices/vaults |
Pare-feux | Microsoft.Network/azureFirewalls |
Colonnes de table AzureDiagnostics
Colonne | Type | Description |
---|---|---|
action_id_s | Chaîne | |
action_name_s | Chaîne | |
action_s | Chaîne | |
ActivityId_g | Guid | |
AdditionalFields | ||
AdHocOrScheduledJob_s | Chaîne | |
application_name_s | Chaîne | |
audit_schema_version_d | Double | |
avg_cpu_percent_s | Chaîne | |
avg_mean_time_s | Chaîne | |
backendHostname_s | Chaîne | |
Caller_s | Chaîne | |
callerId_s | Chaîne | |
CallerIPAddress | Chaîne | |
calls_s | Chaîne | |
Category | Chaîne | |
client_ip_s | Chaîne | |
clientInfo_s | Chaîne | |
clientIP_s | Chaîne | |
clientIp_s | Chaîne | |
clientIpAddress_s | Chaîne | |
clientPort_d | Double | |
code_s | Chaîne | |
collectionName_s | Chaîne | |
conditions_destinationIP_s | Chaîne | |
conditions_destinationPortRange_s | Chaîne | |
conditions_None_s | Chaîne | |
conditions_protocols_s | Chaîne | |
conditions_sourceIP_s | Chaîne | |
conditions_sourcePortRange_s | Chaîne | |
CorrelationId | Chaîne | |
count_executions_d | Double | |
cpu_time_d | Double | |
database_name_s | Chaîne | |
database_principal_name_s | Chaîne | |
DatabaseName_s | Chaîne | |
db_id_s | Chaîne | |
direction_s | Chaîne | |
dop_d | Double | |
duration_d | Double | |
duration_milliseconds_d | Double | |
DurationMs | BigInt | |
ElasticPoolName_s | Chaîne | |
endTime_t | Date/Heure | |
Environment_s | Chaîne | |
error_code_s | Chaîne | |
error_message_s | Chaîne | |
errorLevel_s | Chaîne | |
event_class_s | Chaîne | |
event_s | Chaîne | |
event_subclass_s | Chaîne | |
event_time_t | Date/Heure | |
EventName_s | Chaîne | |
execution_type_d | Double | |
executionInfo_endTime_t | Date/Heure | |
executionInfo_exitCode_d | Double | |
executionInfo_startTime_t | Date/Heure | |
host_s | Chaîne | |
httpMethod_s | Chaîne | |
httpStatus_d | Double | |
httpStatusCode_d | Double | |
httpStatusCode_s | Chaîne | |
httpVersion_s | Chaîne | |
id_s | Chaîne | |
identity_claim_appid_g | Guid | |
identity_claim_ipaddr_s | Chaîne | |
instanceId_s | Chaîne | |
interval_end_time_d | Double | |
interval_start_time_d | Double | |
ip_s | Chaîne | |
is_column_permission_s | Chaîne | |
isAccessPolicyMatch_b | Bool | |
JobDurationInSecs_s | Chaîne | |
JobFailureCode_s | Chaîne | |
JobId_g | Guid | |
jobId_s | Chaîne | |
JobOperation_s | Chaîne | |
JobOperationSubType_s | Chaîne | |
JobStartDateTime_s | Chaîne | |
JobStatus_s | Chaîne | |
JobUniqueId_g | Guid | |
Niveau | Chaîne | |
log_bytes_used_d | Double | |
logical_io_reads_d | Double | |
logical_io_writes_d | Double | |
LogicalServerName_s | Chaîne | |
macAddress_s | Chaîne | |
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 | Chaîne | |
mean_time_s | Chaîne | |
Message | Chaîne | |
min_time_s | Chaîne | |
msg_s | Chaîne | |
num_physical_io_reads_d | Double | |
object_id_d | Double | |
object_name_s | Chaîne | |
NomOpération | Chaîne | |
OperationVersion | Chaîne | |
partitionKey_s | Chaîne | |
physical_io_reads_d | Double | |
plan_id_d | Double | |
policy_s | Chaîne | |
policyMode_s | Chaîne | |
primaryIPv4Address_s | Chaîne | |
priority_d | Double | |
properties_enabledForDeployment_b | Bool | |
properties_enabledForDiskEncryption_b | Bool | |
properties_enabledForTemplateDeployment_b | Bool | |
properties_s | Chaîne | |
properties_sku_Family_s | Chaîne | |
properties_sku_Name_s | Chaîne | |
properties_tenantId_g | Guid | |
query_hash_s | Chaîne | |
query_id_d | Double | |
query_max_used_memory_d | Double | |
query_plan_hash_s | Chaîne | |
query_time_d | Double | |
querytext_s | Chaîne | |
receivedBytes_d | Double | |
Région_s | Chaîne | |
requestCharge_s | Chaîne | |
requestQuery_s | Chaîne | |
requestResourceId_s | Chaîne | |
requestResourceType_s | Chaîne | |
requestUri_s | Chaîne | |
reserved_storage_mb_s | Chaîne | |
Ressource | Chaîne | |
resource_actionName_s | Chaîne | |
resource_location_s | Chaîne | |
resource_originRunId_s | Chaîne | |
resource_resourceGroupName_s | Chaîne | |
resource_runId_s | Chaîne | |
resource_subscriptionId_g | Guid | |
resource_triggerName_s | Chaîne | |
resource_workflowId_g | Guid | |
resource_workflowName_s | Chaîne | |
ResourceGroup | Chaîne | |
_ResourceId | Chaîne | Un identificateur unique de la ressource à laquelle l’enregistrement est associé |
ResourceProvider | Chaîne | |
ResourceProvider | Chaîne | |
ResourceType | Chaîne | |
ResourceType | Chaîne | |
response_rows_d | Double | |
resultCode_s | Chaîne | |
ResultDescription | Chaîne | |
ResultDescription | Chaîne | |
resultDescription_ChildJobs_s | Chaîne | |
resultDescription_ErrorJobs_s | Chaîne | |
resultMessage_s | Chaîne | |
ResultSignature | Chaîne | |
ResultType | Chaîne | |
ResultType | Chaîne | |
rootCauseAnalysis_s | Chaîne | |
routingRuleName_s | Chaîne | |
rowcount_d | Double | |
ruleName_s | Chaîne | |
RunbookName_s | Chaîne | |
RunOn_s | Chaîne | |
schema_name_s | Chaîne | |
sentBytes_d | Double | |
sequence_group_id_g | Guid | |
sequence_number_d | Double | |
server_principal_sid_s | Chaîne | |
session_id_d | Double |