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 un mode spécifique aux ressources stockent des données dans une table spécifique à ce service et n’utilisent pas la table AzureDiagnostics. Consultez Types de ressources ci-dessous pour connaître les services qui utilisent chaque méthode. Pour plus d’informations sur les différences, consultez Journaux des ressources Azure .
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 dans un espace de travail Log Analytics en raison du 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 d’une manière différente des autres tables.
La table AzureDiagnostics de chaque espace de travail contiendra au minimum les mêmes 200 colonnes. Pour les espaces de travail créés avant le 19 janvier 2021, la table contiendra également toutes les colonnes qui étaient déjà en place avant cette date. Lorsque des données sont envoyées à une colonne qui n’est pas encore 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 de notre workpsace se présente comme suit :
Colonne 1 | Colonne 2 | Colonne 3 | ... | Colonne 498 |
---|---|---|---|---|
abc | def | 123 | ... | 456 |
... | ... | ... | ... | ... |
Une 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 contenant 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 sont entrées 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 les 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 colonne AdditionalFields
Bien que les meilleures pratiques de requête générales, telles que le filtrage par heure en tant que première clause de la requête, doivent être suivies, il existe d’autres recommandations que vous devez prendre en compte lors de l’utilisation d’AdditionalFields :
- Vous devrez taper des données avant d’effectuer d’autres opérations sur ces données. Par exemple, s’il existe une colonne appelée Perf1Sec_i ainsi qu’une propriété dans AdditionalFields appelée Perf2Sec, et que vous souhaitez calculer le perf total en ajoutant les deux valeurs, utilisez quelque chose comme :
AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | ....
. - Utilisez des clauses where pour réduire le volume de données le plus petit possible avant d’écrire une logique complexe afin d’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 très 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))
.
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.
- Analysis Services
- Passerelles d’application
- Comptes Automation
- Serveurs Azure Database for MariaDB
- Serveurs Azure Database pour MySQL
- Serveurs Azure Database pour PostgreSQL
- serveurs Azure Database pour PostgreSQL v2
- Comptes Batch
- Profils CDN
- Cognitive Services
- Data Lake Analytics
- DataLake Storage Gen1
- Services d’approvisionnement d’appareils
- Digital Twins
- Rubriques Event Grid
- Event Hubs
- Circuits ExpressRoute
- Portes d’entrée
- Comptes d’intégration
- Key Vault
- Services Kubernetes
- Équilibreurs de charge
- Logic Apps
- Media Services
- Interfaces réseau
- Network Security Group
- Passerelles VPN P2S
- Power BI Embedded
- Adresses IP publiques
- Coffres Recovery Services(Site Recovery)
- Services de recherche
- Service Bus
- Bases de données SQL
- INSTANCES MANAGÉES SQL
- Serveurs SQL
- Tâches Stream Analytics
- Profils Traffic Manager
- Réseaux virtuels
- Passerelles de réseau virtuel
- Passerelles VPN
mode Diagnostics Azure ou mode spécifique à la ressource
Les services suivants utilisent le mode diagnostics Azure ou le mode spécifique à la ressource pour leurs journaux de ressources en fonction de leur configuration. Lorsqu’ils utilisent le mode spécifique à la ressource, ils n’envoient pas de données à la table AzureDiagnostics. Pour plus d’informations sur cette configuration, consultez Journaux de ressources Azure .
- Gestion des API Services
- Azure Cosmos DB
- Fabriques de données (V2)
- IoT Hub
- Coffres Recovery Services (sauvegarde)
- Pare-feux
Catégories
- Ressources Azure
- Sécurité
- Réseau
Solutions
- LogManagement
Types de ressources
- Passerelles d’application
- Profils CDN
- Azure Cosmos DB
- Rubriques Event Grid
- Event Hubs
- Pare-feux
- Key Vaults
- Services Kubernetes
- Coffres Recovery Services
- Service Bus
- Serveurs flexibles Azure Database pour MySQL
- serveurs flexibles Azure Database pour PostgreSQL
- Media Services
- Analysis Services
- Comptes Batch
- Cognitive Services
- Espaces de noms de partenaires Event Grid
- Rubriques des partenaires Event Grid
- Rubriques système Event Grid
- Kubernetes avec Azure Arc
- Clusters provisionnés Azure Arc
- IoT Hub
- Logic Apps
- Services Gestion des API
- Compte Automation
- Fabriques de données
- Data Lake Storage Gen 1
- Data Lake Analytics
- Power BI Embedded
- Instances managées SQL
- Serveurs SQL
- BASES DE DONNÉES SQL
- serveurs Azure Database pour MySQL
- Serveurs de base de données Azure pour PostgreSQL
- serveurs Azure Database pour PostgreSQL V2
- serveurs Azure Database for MariaDB
- Device Provisioning Services
- Circuits ExpressRoute
- Portes d’entrée
- Interfaces réseau
- Network Security Group
- Adresses IP publiques
- Profils Traffic Manager
- Passerelles de réseau virtuel
- Passerelles de réseau privé virtuel
- Virtual Network
- Services Recherche
- Tâches Stream Analytics
Colonnes
Colonne | 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 | 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 | |
Level | 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 | |
NomOpération | 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 | |
Ressource | 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 | Un identificateur unique de la ressource à laquelle l’enregistrement est associé |
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 |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : tout au long de 2024, nous allons éliminer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d'informations, consultez :Envoyer et afficher des commentaires pour