Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

opentelemetry

645 sites Security covered
View on drupal.org

Integration of the OpenTelemetry PHP library with Drupal. More info about OpenTelemetry »

This allows you to see not only the total execution time of the Drupal Request, but also detailed information about internal processes like time spent on preparing the Request, SQL queries, etc.

The module was presented at DrupalCon Singapore 2024 - here is the presentation recording and the slides.

Quick start

If you are new to observability, telemetry, and all that stuff - here are the easy steps to make it work directly on your localhost out of the box, using ddev:

  1. Install Drupal using DDEV
  2. Install an OpenTelemetry Receiver locally, for example from Grafana:
    ddev get MurzNN/ddev-grafana && ddev restart
  3. Install and enable the Drupal OpenTelemetry module:
    composer require drupal/opentelemetry && drush en opentelemetry
  4. Go to the /admin/config/development/opentelemetry and set the endpoint to http://opentelemetry-grafana:4318
  5. Open the Grafana Web UI on the url like https://your-project-name.ddev.site:3000/, click on the "Explore" item on the left menu, and choose the "Traces" in the dropdown.

Usage example in your custom code:

$this->openTelemetryTracer = \Drupal::service('opentelemetry.tracer');
$tracer = $this->openTelemetryTracer->getTracer();
$mainSpan = $tracer->spanBuilder('My custom operation')->startSpan();

// Make an external API call.
$apiCallSpan = $tracer->spanBuilder("Coindesk API call")->startSpan();
$data = json_decode(
  file_get_contents('https://api.coindesk.com/v1/bpi/currentprice.json')
);
$apiCallSpan->end();

// Set attributes and put an event to the main span.
$bots = 3;
$mainSpan->setAttribute('Bitcoin value', $data->bpi->USD->rate_float);
$mainSpan->addEvent('Starting bots tuning', ['bots available' => $bots]);

for ($i = 1; $i <= $bots; $i++) {
  $innerSpan = $tracer->spanBuilder("Tuning bot $i")->startSpan();
  // Do some internal business logic.
  usleep(rand(200000, 500000));
  $raised[$i] = rand(0, 100);
  $innerSpan->addEvent("Bot $i raised money!", ['amount' => $raised[$i]]);
  usleep(rand(100000, 200000));
  $innerSpan->end();
}

// Do some more stuff and finalize the main span.
usleep(rand(200000, 500000));
$mainSpan->addEvent('We got richer!', ['raised' => array_sum($raised)]);
$mainSpan->setAttribute('raised_details', $raised);
$mainSpan->end();

Activity

Total releases
4
First release
Dec 2024
Latest release
2 weeks ago
Release cadence
160 days
Stability
0% stable

Release Timeline

Releases

Version Type Release date
1.0.0-beta7 Pre-release Apr 1, 2026
1.x-dev Dev Feb 1, 2026
1.0.0-beta6 Pre-release Jan 31, 2026
1.0.0-beta5 Pre-release Dec 8, 2024