RousselTMLEARNING

Observabilité

Grail et DQL avancés : jointures, lookup, séries temporelles et optimisation

Aller plus loin avec DQL : join et lookup, makeTimeseries et timeseries, parse avec DPL, entités et topologie, requêtes de corrélation entre logs, traces et métriques, et optimisation du coût des requêtes.

1. Écrire des requêtes efficaces #

Le coût dépend des données lues.

Ordre #

Ordre recommandé d'une requête DQL
Bonne Pratique : Une requête DQL est facturée sur les données parcourues : la fenêtre de temps et le premier filter comptent plus que tout le reste.

2. Jointures et enrichissement #

Croiser les données.

Exemples #

// lookup : enrichir des logs avec un référentiel
fetch logs, from: -1h
| filter loglevel == "ERROR"
| lookup [ fetch bizevents | filter event.type == "customer.tier" | fields customer.id, tier ],
         sourceField: customer.id, lookupField: customer.id
| summarize errors = count(), by: { lookup.tier }

// join : relier logs et spans par trace_id
fetch spans, from: -30m
| filter http.response.status_code >= 500
| join [ fetch logs, from: -30m | filter isNotNull(trace_id) ], on: { left[trace_id] == right[trace_id] }, fields: { content }

3. Séries temporelles #

Des courbes à partir de tout.

Timeseries #

// Métrique existante
timeseries avg(dt.host.cpu.usage), by: { host.name }, from: -24h

// Série construite à partir de logs
fetch logs, from: -24h
| filter contains(content, "payment failed")
| makeTimeseries failures = count(), interval: 5m, by: { service.name }
À savoir : La topologie (Smartscape) s'interroge aussi en DQL sur la nouvelle plateforme ; les commandes disponibles évoluent : consultez la référence DQL de votre environnement. Dynatrace évolue très vite (nouvelle plateforme, Grail, applications) : vérifiez les noms d'écrans et les versions d'API dans la documentation de votre environnement.

Articles liés

ActiveGate et network zones : architecture, routage et haute disponibilité

Comprendre et déployer ActiveGate dans Dynatrace : rôles (routage, API, intégrations cloud, extensions, empla…

Dynatrace Operator sur Kubernetes : DynaKube, modes de supervision et dépannage

Superviser Kubernetes avec le Dynatrace Operator : installation Helm, ressource DynaKube, modes cloudNativeFu…

OpenTelemetry et Dynatrace : OTLP, collecteur et instrumentation

Intégrer OpenTelemetry à Dynatrace : endpoint OTLP et jetons, Dynatrace OTel Collector, traces, métriques (te…

Pour aller plus loin