PHPackages                             sjs/flow-opentelemetry - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. sjs/flow-opentelemetry

ActiveNeos-package[Logging &amp; Monitoring](/categories/logging)

sjs/flow-opentelemetry
======================

00PHP

Since Mar 16Pushed 3mo agoCompare

[ Source](https://github.com/sjsone/SJS.Flow.OpenTelemetry)[ Packagist](https://packagist.org/packages/sjs/flow-opentelemetry)[ RSS](/packages/sjs-flow-opentelemetry/feed)WikiDiscussions main Synced 2w ago

READMEChangelogDependenciesVersions (1)Used By (0)

 Flow OpenTelemetry
====================

[](#--flow-opentelemetry)

#### OpenTelemetry integration for Neos Flow with tracing, logging and metrics

[](#opentelemetry-integration-for-neos-flow-with-tracing-logging-and-metrics)

 [📦 Packagist](https://packagist.org/packages/sjs/flow-opentelemetry) • [Quick Start](#quick-start) • [Functionality](#functionality)

Quick Start
-----------

[](#quick-start)

Important

This package integrates OpenTelemetry into Neos Flow by providing a pre-configured tracer, logger, meter, and automatic tracing aspects.

Just add these environment variables and you are good to go:

- **`OTEL_EXPORTER_OTLP_ENDPOINT`**: The URL to your OTLP-compatible endpoint (e.g., Grafana Tempo, Jaeger)
- **`OTEL_SERVICE_NAME`**: The name of your service
- **`OTEL_SERVICE_VERSION`**: The version of your service

### SigNoz

[](#signoz)

A fast way to get anything out of this package is to use [SigNoz](https://signoz.io/). For bigger setups Grafana with its extensions is still a better choice but for smaller setups and playing around SigNoz is sufficient.

[Official Guide to Install SigNoz using docker compose](https://signoz.io/docs/install/docker/#install-signoz-using-docker-compose)

### OpenTelemetry Collector

[](#opentelemetry-collector)

For production environments, it is recommended to use the [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) (`otelcol`) as a central telemetry processing layer for each project.

Each log, trace/span and metric is sent and may take some time. Sending all of that synchronously over the network can impact performance. The OpenTelemetry Collector is installed ideally locally next to the project or with a low-latency high-speed connection in-between. It acts as a buffer that sends every received data via the specified exporter.

**Configure the Collector** (`otelcol-config.yaml`):

```
receivers:
  otlp:
    protocols:
      http:
        endpoint: 0.0.0.0:4318

processors:
  batch:

exporters:
  otlp_http/signoz:
    endpoint: http://signoz:4318
    tls:
      insecure: true

service:
  telemetry:
    metrics:
      level: basic
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlp_http/signoz]

    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlp_http/signoz]

    logs:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlp_http/signoz]
```

For more configuration examples, see the [OpenTelemetry Collector documentation](https://opentelemetry.io/docs/collector/configuration/).

Functionality
-------------

[](#functionality)

### Logging Backend

[](#logging-backend)

A logging backend that sends logs to OpenTelemetry.

**Class:** `SJS\Flow\OpenTelemetry\Log\Backend\OpenTelemetryBackend`

#### Options

[](#options)

keytypedescriptionseverityThresholdstringMinimum log level to send to OpenTelemetryattributesarray*optional*Key-value pairs of static attributes to attach to each log record#### Example

[](#example)

*`Configuration/Settings.Neos.Flow.log.yaml`*

```
Neos:
  Flow:
    log:
      psr3:
        'Neos\Flow\Log\PsrLoggerFactory':
          systemLogger:
            default:
              class: SJS\Flow\OpenTelemetry\Log\Backend\OpenTelemetryBackend
              options:
                severityThreshold: "%LOG_NOTICE%"
                attributes:
                  logger: "systemLogger"
          securityLogger:
            default:
              class: SJS\Flow\OpenTelemetry\Log\Backend\OpenTelemetryBackend
              options:
                severityThreshold: "%LOG_NOTICE%"
                attributes:
                  logger: "securityLogger"
```

### Tracing Aspects

[](#tracing-aspects)

Built-in AOP aspects that automatically create spans for common Flow operations.

**Class:** `SJS\Flow\OpenTelemetry\Aspects\SpanAspect`

#### Available Aspects

[](#available-aspects)

AspectDescriptioncommandControllerTraces CommandController executionactionControllerTraces ActionController executionviewInterfaceRenderTraces View renderingrepositoryTraces Repository methods (find\*, count\*, add\*, remove\*, etc.)fusionCacheEventsTraces Fusion cache events (warmup, flush, etc.)#### Example

[](#example-1)

*`Configuration/Settings.yaml`*

```
SJS:
  Flow:
    OpenTelemetry:
      builtInAspect:
        enableAdvice:
          commandController: true
          actionController: true
          viewInterfaceRender: true
          repository: true
          fusionCacheEvents: true
      setup:
        default:
          class: SJS\Flow\OpenTelemetry\Setup\OpenTelemetrySetup
          uri: "%env:OTEL_EXPORTER_OTLP_ENDPOINT%"
          service:
            name: "%env:OTEL_SERVICE_NAME%"
            version: "%env:OTEL_SERVICE_VERSION%"
```

### HTTP Response Middleware

[](#http-response-middleware)

Middleware that records HTTP response status as a metric.

**Class:** `SJS\Flow\OpenTelemetry\Middleware\HttpResponseStatusMiddleware`

#### Example

[](#example-2)

*`Configuration/Settings.Neos.Flow.yaml`*

```
Neos:
  Flow:
    http:
      middlewares:
        'httpResponseStatus':
          position: 'end 50'
          middleware: 'SJS\Flow\OpenTelemetry\Middleware\HttpResponseStatusMiddleware'
```

### Configuration Reference

[](#configuration-reference)

*`Configuration/Settings.yaml`*

SettingTypeDefaultDescription`builtInAspect.enableAdvice.*`booleantrueEnable/disable specific tracing aspects`setup.default.class`stringOpenTelemetrySetup class to use`setup.default.uri`stringOTLP endpoint URI`setup.default.service.name`stringService name for telemetry data`setup.default.service.version`stringService version for telemetry data

###  Health Score

18

—

LowBetter than 8% of packages

Maintenance54

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/2229ac36a196d4d72de5bd2d2a773f5149a6751001465d6044bd7f90f2c5f73d?d=identicon)[sjsone](/maintainers/sjsone)

---

Top Contributors

[![sjsone](https://avatars.githubusercontent.com/u/87149727?v=4)](https://github.com/sjsone "sjsone (8 commits)")

### Embed Badge

![Health badge](/badges/sjs-flow-opentelemetry/health.svg)

```
[![Health](https://phpackages.com/badges/sjs-flow-opentelemetry/health.svg)](https://phpackages.com/packages/sjs-flow-opentelemetry)
```

###  Alternatives

[psr/log

Common interface for logging libraries

10.4k1.2B10.8k](/packages/psr-log)[open-telemetry/api

API for OpenTelemetry PHP.

1938.5M261](/packages/open-telemetry-api)[open-telemetry/sdk

SDK for OpenTelemetry PHP.

2326.5M315](/packages/open-telemetry-sdk)[illuminated/console-logger

Logging and Notifications for Laravel Console Commands.

8676.7k](/packages/illuminated-console-logger)[relaxart/monolog-docker-handler

Docker handler for monolog

1442.6k](/packages/relaxart-monolog-docker-handler)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
