Native Observability records what a Drupal site does at runtime: request traces, execution spans, cache and database behavior, 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

Connect an AI agent (MCP)

The native_observability_mcp submodule, new in 2.2.0, lets an AI agent read this data and answer why a page is slow. The agent gets no database or admin access.

It needs Drupal 11, PHP 8.3 and the MCP Server, Tool API and Simple OAuth modules.


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

Full tracing adds work to every observed request, and most of it is paid before the response is sent. Only the flush of span, cache and database rows is deferred to kernel.terminate. In the run documented under Measuring the overhead, that flush was 6.1% of the module's cost, and the visitor waited for the other 93.9%. 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

2.2.x is the current branch and 2.1.x is still supported. Older branches are not. The dashboard, the exporters and the report are covered by the test module testing_native_observability, which drives the pipeline end to end. The MCP submodule is experimental.