Partager via


Requêtes pour la table OEPDataplaneLogs

Pour plus d’informations sur l’utilisation de ces requêtes dans le Portail Azure, consultez le didacticiel Log Analytics. Pour l’API REST, consultez Requête.

Visualisation des codes de réponse d’erreur

Classez les messages de journal par codes de réponse HTTP, filtrez les journaux sans code de réponse et résume le nombre de chaque code de réponse sur une granularité de temps spécifiée. Il affiche ensuite un histogramme pour la visualisation.

OEPDataplaneLogs
// Categorize messages based on HTTP response codes
| extend ResponseCode = case(
    Message has_any ("Status=500", "Internal Server Error"), "500",
    Message has_any ("Status=401", "Unauthorized"), "401",
    Message has_any ("Status=403", "Forbidden"), "403",
    Message has_any ("Status=429", "RequestBodyTooLarge"), "429",
    ""
)
// Filter out logs without a response code
| where ResponseCode != ""
// Summarize the count of each response code over a specified time range
| summarize Count = count() by bin(TimeGenerated, 5m), ResponseCode
// Render a column chart for visualization
| render columnchart

Analyse de l’activité utilisateur dans les journaux de stockage

Extrayez les valeurs UserId, filtrez les journaux d’activité pour inclure uniquement ceux avec un UserId et appartenant à la catégorie StorageLogs, et recherche des méthodes HTTP spécifiques. Il récapitule ensuite le nombre de journaux par utilisateur sur des intervalles quotidiens et affiche un graphique en secteurs pour la visualisation.

OEPDataplaneLogs
// Extract UserId from the Message field using a regular expression
| extend UserId = extract(@"user-id=([a-zA-Z0-9_-@.]+)", 1, Message)
// Filter out logs without a UserId
| where UserId != ""
// Filter logs to include only those in the "StorageLogs" category
| where Category == "StorageLogs"
// Filter logs to include only those with specific HTTP methods
| where Message has_any (  
  "GET",
  "POST",
  "PUT",
  "DELETE",
  "PATCH",
  "HEAD",
  "OPTIONS" 
)
// Summarize the count of logs per user over daily intervals
| summarize Count = count() by bin(TimeGenerated, 1d), UserId
// Render a pie chart for visualization
| render piechart

Catégorisation des journaux par le service OSDU

Cette requête KQL récapitule le nombre de journaux par catégorie au cours des 24 dernières heures et affiche un graphique en secteurs à des fins de visualisation.

OEPDataplaneLogs
// Summarize the count of logs by category over the last day
| summarize Count = count() by bin(TimeGenerated, 1d), Category
// Render a pie chart for visualization
| render piechart

Visualisation de l’activité utilisateur

Extrait les valeurs UserId, filtre les journaux sans UserId et récapitule le nombre de journaux par utilisateur au cours des dernières 24 heures. Affiche un graphique en secteurs pour visualiser l’activité utilisateur.

OEPDataplaneLogs
// Extract UserId from the Message field using a regular expression
| extend UserId = extract(@"user-id=([a-zA-Z0-9_-@.]+)", 1, Message)
// Filter out logs without a UserId
| where UserId != ""
// Summarize the count of logs per user over the last day
| summarize Count = count() by bin(TimeGenerated, 1d), UserId
// Render a pie chart to visualize user activity
| render piechart

Visualisation de l’activité récente

Filtre les journaux des 30 dernières minutes, les répartit selon les codes de réponse HTTP et compte le nombre total de journaux et d’erreurs. Il récapitule ensuite ces nombres dans des intervalles de 15 secondes et affiche un organigramme pour l’analyse visuelle.

OEPDataplaneLogs
// Filter logs to the last 30 minutes
| where TimeGenerated >= ago(30m)
// | extend UserId = extract(@"user-id=([a-zA-Z0-9_-@.]+)", 1, Message) // Uncomment if you want to only display user actions
// | where notempty(UserId) //// Uncomment if you want to only display user actions
// Categorize messages based on HTTP response codes
| extend ResponseCode = case(
    Message has_any ("Status=500", "Internal Server Error"), "500",
    Message has_any ("Status=401", "Unauthorized"), "401",
    Message has_any ("Status=403", "Forbidden"), "403",
    Message has_any ("Status=429", "RequestBodyTooLarge"), "429",
    ""
)
// Mark entries as errors if they match specific response codes
| extend ErrorCount = ResponseCode has_any ("500", "401", "403", "429")
// Summarize total logs and errors in 15-second intervals
| summarize Total = count(), Errors = count(ErrorCount) by bin(TimeGenerated, 15s)
// Render a timechart for visual analysis
| render timechart with (ysplit=axes)

Garantir la présence de l’ID de corrélation

Garantit que chaque entrée de journal a un CorrelationId. Si l’ID de corrélation est manquant, il extrait la valeur du champ Message à l’aide d’une expression régulière.

OEPDataplaneLogs
// Ensure each log entry has a CorrelationId by using the existing one or extracting it from the Message field
| extend CorrelationId = iff(notempty(CorrelationId), CorrelationId, extract(@"correlation-id=([a-zA-Z0-9_-]+)", 1, Message))

Extraction et catégorisation des codes de réponse HTTP

Classez les messages de journal en fonction des codes de réponse HTTP. Il étend les données de journal avec une nouvelle colonne appelée ResponseCode et affiche uniquement les champs pertinents.

OEPDataplaneLogs
// Define ResponseCodes based on Message content and extends into a separate column.
| extend ResponseCode = case(
    Message has_any ("Status=500", "Internal Server Error"), "500",  // Internal Server Error
    Message has_any ("Status=401", "Unauthorized"), "401",           // Unauthorized Access
    Message has_any ("Status=403", "Forbidden"), "403",              // Forbidden Access
    Message has_any ("Status=429", "RequestBodyTooLarge"), "429",    // Request Body Too Large
    Message has_any ("Status=200", "200 OK"), "200",                 // Successful Request
    Message has "Status=201", "201",                                 // Resource Created
    ""                                                               // Default case if no match
)
//
// Displays only relevant columns
//
| project TimeGenerated, Category, Message, LogLevel, CorrelationId, ResponseCode