dd-logs

安装量: 151
排名: #5707

安装

npx skills add https://github.com/datadog-labs/agent-skills --skill dd-logs

Datadog Logs Search, process, and archive logs with cost awareness. Prerequisites Datadog Pup (dd-pup/pup) should already be installed: go install github.com/datadog-labs/pup@latest Quick Start pup auth login Search Logs

Basic search

pup logs search --query = "status:error" --from = "1h"

With filters

pup logs search --query = "service:api status:error" --from = "1h" --limit 100

JSON output

pup logs search --query = "@http.status_code:>=500" --from = "1h" --json Search Syntax Query Meaning error Full-text search status:error Tag equals @http.status_code:500 Attribute equals @http.status_code:>=400 Numeric range service:api AND env:prod Boolean @message:timeout Wildcard Pipelines Process logs before indexing:

List pipelines

pup logs pipelines list

Create pipeline (JSON)

pup logs pipelines create --json @pipeline.json Common Processors { "name" : "API Logs" , "filter" : { "query" : "service:api" } , "processors" : [ { "type" : "grok-parser" , "name" : "Parse nginx" , "source" : "message" , "grok" : { "match_rules" : "%{IPORHOST:client_ip} %{DATA:method} %{DATA:path} %{NUMBER:status}" } } , { "type" : "status-remapper" , "name" : "Set severity" , "sources" : [ "level" , "severity" ] } , { "type" : "attribute-remapper" , "name" : "Remap user_id" , "sources" : [ "user_id" ] , "target" : "usr.id" } ] } ⚠️ Exclusion Filters (Cost Control) Index only what matters: { "name" : "Drop debug logs" , "filter" : { "query" : "status:debug" } , "is_enabled" : true } High-Volume Exclusions

Find noisiest log sources

pup logs search --query = "" --from = "1h" --json | jq 'group_by(.service) | map({service: .[0].service, count: length}) | sort_by(-.count)[:10]' Exclude Query Health checks @http.url:"/health" OR @http.url:"/ready" Debug logs status:debug Static assets @http.url:.css OR @http.url:.js Heartbeats @message:heartbeat* Archives Store logs cheaply for compliance:

List archives

pup logs archives list

Archive config (S3 example)

{ "name" : "compliance-archive" , "query" : "*" , "destination" : { "type" : "s3" , "bucket" : "my-logs-archive" , "path" : "/datadog" } , "rehydration_tags" : [ "team:platform" ] } Rehydrate (Restore)

Rehydrate archived logs

pup logs rehydrate create \ --archive-id abc123 \ --from "2024-01-01T00:00:00Z" \ --to "2024-01-02T00:00:00Z" \ --query "service:api status:error" Log-Based Metrics Create metrics from logs (cheaper than indexing):

Count errors per service

pup logs metrics create \ --name "api.errors.count" \ --query "service:api status:error" \ --group-by "endpoint" ⚠️ Cardinality warning: Group by bounded values only. Sensitive Data Scrubbing Rules { "type" : "hash-remapper" , "name" : "Hash emails" , "sources" : [ "email" , "@user.email" ] } Never Log

In your app - sanitize before sending

import re def sanitize_log ( message : str ) -

str :

Remove credit cards

message

re . sub ( r'\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b' , '[REDACTED]' , message )

Remove SSNs

message

re . sub ( r'\b\d{3}-\d{2}-\d{4}\b' , '[REDACTED]' , message ) return message Troubleshooting Problem Fix Logs not appearing Check agent, pipeline filters High costs Add exclusion filters Search slow Narrow time range, use indexes Missing attributes Check grok parser References/Documentation Log Search Syntax Pipelines Exclusion Filters Archives

返回排行榜