Search by

bedita / instrumentation

le0md.didomenico

OpenTelemetry instrumentation plugin for BEdita

Package info

github.com/bedita/instrumentation

Type:cakephp-plugin

pkg:composer/bedita/instrumentation

Statistics

Installs: 2 413

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

v3.0.0 2026-10-06 12:21 UTC

This package is auto-updated.

Last update: 2026-10-06 12:22:35 UTC


README

Github Actions image

This library provides auto-instrumentation for BEdita applications, according to OpenTelemetry specifications.

Requirements

This library requires PHP 8.1+ and the OpenTelemetry PHP extension.

Other optional requirements:

  • ext-grpc required to use gRPC as transport for the OTLP exporter
  • ext-protobuf significant performance improvement for otlp+protobuf exporting
  • ext-zlib if you want to compress exported data
  • open-telemetry/opentelemetry-auto-psr15 auto-instrumentation for CakePHP middlewares (PSR-15)

Installation

composer require bedita/instrumentation

Note that installing this library by itself does not generate traces. You need to install and configure the OpenTelemetry SDK and at least an exporter:

composer require open-telemetry/sdk open-telemetry/exporter-otlp

Configuration

OpenTelemetry's auto-instrumentation is completely configurable through environment variables. See the SDK configuration documentation and the PHP-specific documentation.

This library provides the following instrumentations, which can be enabled or disabled individually using their respective names:

  • bedita main instrumentation (currently does nothing by itself)
  • bedita.client CakePHP HTTP client (requires bedita)
  • bedita.server CakePHP HTTP server (requires bedita)
  • bedita.psr3 exports logs from loggers compliant with PSR-3 standard (requires bedita)
  • pdo PHP PDO (project)
  • psr16 cache engines compliant with PSR-16 standard (project)

Example configuration

This configuration enables auto-instrumentation and the export of traces and logs using the otlp+protobuf protocol to a local backend:

# PHP injection
export OTEL_PHP_AUTOLOAD_ENABLED=true

# Export
export OTEL_LOG_LEVEL="info"
export OTEL_EXPORTER_OTLP_PROTOCOL="http/protobuf"
export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4318/"

# Tracing
# export OTEL_TRACES_SAMPLER="parentbased_traceidratio"
# export OTEL_TRACES_SAMPLER_ARG="0.1"
export OTEL_PHP_DETECTORS="env,host,os,sdk"
export OTEL_RESOURCE_ATTRIBUTES="service.namespace=my-namespace"
export OTEL_SERVICE_NAME="my-service"

# Propagation
export OTEL_PROPAGATORS="tracecontext,baggage"

# Instrumentation
export OTEL_PHP_EXCLUDED_URLS="/status"
# export OTEL_PHP_DISABLED_INSTRUMENTATIONS="pdo"