Skip to main content
drupalreleases

Use direct release data with your AI assistant.

Learn more

Native Observability

Security covered Under active development 19 sites

Native Observability provides runtime observability for Drupal, including request tracing, performance metrics, and telemetry export directly within the application. It answers how the system behaves over time and feeds performance data into monitoring stacks like OpenTelemetry, Prometheus, and Grafana.

Native Observability records what a Drupal site does at runtime: request traces, execution spans, cache and database behaviour, metrics aggregated per route, and export to OpenTelemetry, Prometheus and Grafana. It runs inside the application, with no core patches and no external agent.

What it does

  • Traces every request with a correlation ID carried across the full hop chain.
  • Builds execution spans and draws them on a timeline in the dashboard.
  • Captures outbound HTTP through a middleware on Drupal's shared handler stack, so calls issued by libraries that wrap http_client are recorded without touching them.
  • Observes the cache: hits, misses, tag invalidations and cacheability decisions, per route and for the events that never reach a route.
  • Observes the database: query counts, timing, and slow query evidence per route and per query hash.
  • Aggregates metrics per route: request count, throughput, average, P95 and P99 latency, error rate.
  • Reconstructs a single route in the Forensic Route Analysis view, correlating its traces, spans, cache signals and outbound calls, and exports that view as a self contained HTML document.
  • Exports over OTLP to OpenTelemetry, serves a Prometheus scrape endpoint behind a bearer token, and writes a long form observability report.
  • Measures its own runtime cost on the server where it runs, in paired blocks with capture on and capture off, and reports the figure with its sample size, its noise floor and a verdict.
  • Publishes observability events to ECA for event driven automation.

Documentation

Installation, configuration, the settings reference with a screenshot of every tab, the data model and the developer surface are documented on the project site. It is built from the repository, so it describes the branch rather than the last release.

Read the documentation

Where to start

The pages an operator reaches for first.

Install

composer require drupal/native_observability, then enable the sub-modules you need. The documentation covers which sub-module does what and the order to turn them on.

Requirements

  • PHP 8.2 or newer. This is above Drupal 10's own minimum, and it is deliberate: the code uses language features that Drupal 10 does not require.
  • The zlib PHP extension. The dashboard compresses its record exports itself rather than leaving it to the web server, so the extension is a hard requirement and not an optimisation.
  • The dashboard pulls Apache ECharts through wikimedia/composer-merge-plugin, configured in the dashboard's composer.libraries.json.
  • The ECA bridge needs the ECA module, and only if you want event driven automation.
  • OTLP push needs a reachable OTLP/HTTP collector. Grafana Alloy works without extra configuration.

Full tracing adds work to every observed request. Persistence runs at kernel.terminate, after the response has been sent, so the cost lands on tail latency rather than on the response the visitor waits for. Set retention and record limits, and write exclusion rules for the paths you do not want observed, before turning full tracing on in production.

Run drush no:overhead:measure to get that cost for your own installation. A figure measured on someone else's server does not describe yours.

Status

Stable releases on the 2.1.x branch, for Drupal 10, 11 and 12. Actively maintained by Giorgio Alfredo Pagano. Articles and measurements are on the project page on giorgiopagano.org.

Drupal 10–11 PHP >=8.2

Ask your assistant about Native Observability

Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
30
Tracked since
Feb 2026
Latest release
1 week ago
Releases (12 mo)
30 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Core PHP Release date
1.0.2 Stable 10–11 Mar 21, 2026
1.0.1 Stable 10–11 Mar 21, 2026
1.0.0 Stable 10–11 Mar 8, 2026
1.0.0-alpha7 Pre-release 10–11 Mar 7, 2026
1.0.0-alpha6 Pre-release 10–11 Mar 7, 2026
1.0.0-alpha5 Pre-release 10–11 Mar 7, 2026
1.0.0-alpha4 Pre-release 10–11 Feb 16, 2026
1.0.0-alpha3 Pre-release 10–11 Feb 16, 2026
1.0.0-alpha2 Pre-release 10–11 Feb 13, 2026
1.0.0-alpha1 Pre-release 10–11 Feb 13, 2026