Dela via


Frågor för OEPDataplaneLogs-tabellen

Information om hur du använder dessa frågor i Azure Portal finns i Log Analytics-självstudien. Information om REST-API:et finns i Fråga.

Visualisering av felresponskoder

Kategorisera loggmeddelanden efter HTTP-svarskoder, filtrera bort loggar utan en svarskod och sammanfatta antalet av varje svarskod över en angiven tidsgranularitet. Sedan återger den ett stapeldiagram för visualisering.

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

Analysera användaraktivitet i lagringsloggar

Extraherar UserId-värden, filtrerar loggar för att endast inkludera de med ett UserId och som tillhör kategorin StorageLogs, samt kontrollerar för specifika HTTP-metoder. Den sammanfattar sedan antalet loggar per användare över dagliga intervall och skapar ett cirkeldiagram för visualisering.

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

Kategorisering av loggar efter OSDU-tjänst

Denna KQL-fråga sammanfattar antalet loggar per kategori under de senaste 24 timmarna och visar ett cirkeldiagram för visualisering.

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

Visualisering av användaraktivitet

Extrahera UserId-värden, filtrera bort loggar utan en UserId och sammanfatta antalet loggar per användare under de senaste 24 timmarna. Renderar ett cirkeldiagram för att visualisera användaraktivitet.

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

Visualisera nylig aktivitet

Filtrerar loggar till de senaste 30 minuterna, kategoriserar dem efter HTTP-svarsstatuskoder och räknar det totala antalet loggar och fel. Den sammanfattar sedan dessa antal i 15-sekundersintervall och återger ett tidsschema för visuell analys.

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)

Säkerställa korrelations-ID-närvaro

Säkerställer att varje logginmatning har ett CorrelationId. Om CorrelationId saknas, extraherar den värdet från fältet Message med hjälp av ett reguljärt uttryck.

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))

Utdragning och kategorisering av HTTP-svarskoder

Kategorisera loggmeddelanden baserat på HTTP-svarskoder. Den utökar loggdata med en ny kolumn som heter ResponseCode och visar endast relevanta fält.

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