PHPackages                             houdini/houdini-symfony - 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. houdini/houdini-symfony

ActiveSymfony-bundle[Logging &amp; Monitoring](/categories/logging)

houdini/houdini-symfony
=======================

OpenTelemetry wrapper bundle for Symfony

1.0.3(8mo ago)04MITPHPPHP ^7.4||^8.0

Since Aug 15Pushed 8mo agoCompare

[ Source](https://github.com/bozkurtemre/houdini-symfony)[ Packagist](https://packagist.org/packages/houdini/houdini-symfony)[ RSS](/packages/houdini-houdini-symfony/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (27)Versions (5)Used By (0)

Houdini Symfony Bundle
======================

[](#houdini-symfony-bundle)

[![Latest Stable Version](https://camo.githubusercontent.com/6711fa19ccfefef7be38ac24d389ff0e45d79dc2f87432a9fe52bef8bb665de3/687474703a2f2f706f7365722e707567782e6f72672f686f7564696e692f686f7564696e692d73796d666f6e792f76)](https://packagist.org/packages/houdini/houdini-symfony) [![Total Downloads](https://camo.githubusercontent.com/bc652df37b8cc5014bbdb76bce728ca1733d658212b90eee8f5e1ea9f56ca835/687474703a2f2f706f7365722e707567782e6f72672f686f7564696e692f686f7564696e692d73796d666f6e792f646f776e6c6f616473)](https://packagist.org/packages/houdini/houdini-symfony) [![Latest Unstable Version](https://camo.githubusercontent.com/1774af1c1c984a02050899965973aefea92ad984ca399e12c26592b42e61fd43/687474703a2f2f706f7365722e707567782e6f72672f686f7564696e692f686f7564696e692d73796d666f6e792f762f756e737461626c65)](https://packagist.org/packages/houdini/houdini-symfony) [![License](https://camo.githubusercontent.com/cfac814dd0d7b083e3af35c3eca81f576999e78c3779ddda248a7dafaddbb094/687474703a2f2f706f7365722e707567782e6f72672f686f7564696e692f686f7564696e692d73796d666f6e792f6c6963656e7365)](https://packagist.org/packages/houdini/houdini-symfony) [![PHP Version Require](https://camo.githubusercontent.com/849227fbb59100baab8eb971d803496a254f3ee493874160634ee8bacf1c9f48/687474703a2f2f706f7365722e707567782e6f72672f686f7564696e692f686f7564696e692d73796d666f6e792f726571756972652f706870)](https://packagist.org/packages/houdini/houdini-symfony)

A Symfony bundle that acts as a telemetry collection wrapper, automatically collecting telemetry data (traces, metrics, logs, exceptions) and posting them to a configurable backend via DSN configuration, similar to Sentry's approach.

Features
--------

[](#features)

- **Custom Telemetry Collection**: Lightweight telemetry data collection without complex OpenTelemetry SDK setup
- **DSN Configuration**: Configure backend endpoint via environment variables
- **Automatic Collection**: Automatically captures HTTP requests, exceptions, and custom metrics
- **Retry Logic**: Built-in retry mechanism with exponential backoff
- **Configurable**: Flexible configuration for traces, metrics, and logs
- **Symfony Integration**: Native Symfony bundle with proper DI integration
- **Sentry-like API**: Familiar capture methods for manual error and message reporting
- **Auto-Installation**: Automatically installs configuration files when bundle is added

Installation
------------

[](#installation)

```
composer require houdini/houdini-symfony
```

The bundle will automatically:

- Register itself in `config/bundles.php`
- Create `config/packages/houdini.yaml` configuration file
- Add environment variables to your `.env` file

Configuration
-------------

[](#configuration)

### Environment Variables

[](#environment-variables)

The bundle automatically adds these to your `.env` file:

```
###> houdini/houdini-symfony ###
HOUDINI_DSN=https://your-backend.example.com/api/telemetry
HOUDINI_API_KEY=your-api-key
HOUDINI_SERVICE_NAME=my-app
HOUDINI_SERVICE_VERSION=1.0.0
###< houdini/houdini-symfony ###
```

### Bundle Configuration

[](#bundle-configuration)

The auto-generated `config/packages/houdini.yaml`:

```
houdini:
  # DSN for backend (uses environment variable by default)
  dsn: '%env(HOUDINI_DSN)%'

  # API key for backend authentication (uses environment variable by default)
  api_key: '%env(HOUDINI_API_KEY)%'

  # Enable/disable telemetry collection
  enabled: true

  # Service identification
  service_name: '%env(HOUDINI_SERVICE_NAME)%'
  service_version: '%env(HOUDINI_SERVICE_VERSION)%'

  # Traces configuration
  traces:
    enabled: true
    sample_rate: 1.0  # 0.0 to 1.0

  # Metrics configuration
  metrics:
    enabled: true
    export_interval: 60  # seconds

  # Logs configuration
  logs:
    enabled: true
    levels: ['error', 'warning', 'info']

  # HTTP client configuration
  http_client:
    timeout: 30
    retry_attempts: 3
```

Usage
-----

[](#usage)

### Automatic Collection

[](#automatic-collection)

The bundle automatically collects:

- **HTTP Requests**: All incoming HTTP requests with response times and status codes
- **Exceptions**: All unhandled exceptions with context
- **Metrics**: Request duration, error counts, etc.

### Manual Usage

[](#manual-usage)

Inject the `TelemetryService` to manually record telemetry data:

```
