RousselTMLEARNING

Observability

Advanced logs with OpenPipeline: processing, masking, buckets and retention

Manage logs in Dynatrace with OpenPipeline: ingestion, routing, DQL processing (parsing, enrichment), sensitive data masking, metric and event extraction, Grail buckets, retention and costs.

1. OpenPipeline #

Processing before storing.

Journey #

Journey of a log through OpenPipeline

OpenPipeline is the processing layer of the new platform: data (logs, events, spans, metrics depending on the version) is routed, transformed and enriched there before being stored in Grail. What is not stored is neither billed for retention nor exposed.

2. Processing #

Parse, enrich, mask.

Processors #

// Extraire les champs d'un log d'accès (processeur DQL)
parse content, "IPADDR:client.ip ' - - [' HTTPDATE:ts '] \"' LD:http.method ' ' LD:http.path ' ' LD '\" ' INT:http.status ' ' INT:bytes"
| fieldsAdd log.type = "nginx-access"

// Masquer une adresse e-mail
| fieldsAdd content = replacePattern(content, "LD '@' LD '.' ALPHA{2,}", "[email]")
StageExamples
RoutingLogs with k8s.namespace.name == "payment" to the « payment » pipeline
ProcessingParsing (DPL), adding fields, removing unneeded fields, normalizing severity
MaskingCredit cards, emails, tokens: replaced before storage
ExtractionMetric « number of 5xx errors per service »; Davis event on a critical pattern
Storagelogs_payment_365d bucket for auditing, default bucket for the rest
Common mistake: Masking in OpenPipeline happens after sending: for data that must never leave the host, also configure masking at capture in OneAgent (log masking rules).

3. Buckets and retention #

Paying for the right duration.

Rules #

  • A Grail bucket has a retention period; audit logs can be kept for a year, debug logs for a few days.
  • Permissions can apply to buckets: security logs are only visible to the security team.
  • Extracting a metric from a log and keeping the log only for a short time greatly reduces costs for long-term dashboards.
Good practice: Measure volume per source (fetch logs | summarize count(), by: {log.source}) before deciding on pipelines: a few sources often make up most of the volume.
Good to know: Dynatrace evolves very quickly (new platform, Grail, apps): check screen names and API versions in your environment's documentation.

Related articles

Accessing the Dynatrace playground and getting started

The Dynatrace playground is a demo environment full of real data: how to access it, what it allows and does n…

Grail buckets in Dynatrace: creation, routing, retention, rights and costs

Complete guide to Grail buckets: purpose, default buckets, creation in Storage management, with the API or Te…

The Dynatrace QuickStart app: getting your first data in minutes

Discover the QuickStart app: add data with Auto Discovery or a dedicated tile, read Findings, explore with da…

Keep learning

Support us

♥ SUPPORT US

Support RousselTM Learning

Courses, articles, labs and certificates stay free with no intrusive ads. A voluntary contribution, of any amount you choose, pays for hosting, lab environments and new content.

Contribute with PayPal Any amount · card or PayPal accountLearn more
QR code PayPal
Or scan this QR code with your phone

Thank you, every contribution counts!