PHPackages                             fjogeleit/prometheus-messenger-middleware - 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. [Debugging &amp; Profiling](/categories/debugging)
4. /
5. fjogeleit/prometheus-messenger-middleware

ActiveLibrary[Debugging &amp; Profiling](/categories/debugging)

fjogeleit/prometheus-messenger-middleware
=========================================

Prometheus Middleware for the Symfony Messenger Component

v0.9.1(2y ago)2255.1k↓50%4[1 PRs](https://github.com/fjogeleit/prometheus-messenger-middleware/pulls)MITPHPPHP &gt;=7.2.5

Since Jul 26Pushed 2y ago2 watchersCompare

[ Source](https://github.com/fjogeleit/prometheus-messenger-middleware)[ Packagist](https://packagist.org/packages/fjogeleit/prometheus-messenger-middleware)[ RSS](/packages/fjogeleit-prometheus-messenger-middleware/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)Dependencies (3)Versions (15)Used By (0)

Prometheus Messenger Middleware
===============================

[](#prometheus-messenger-middleware)

[![CodeStyle](https://github.com/fjogeleit/prometheus-messenger-middleware/workflows/CodeStyle/badge.svg)](https://github.com/fjogeleit/prometheus-messenger-middleware/workflows/CodeStyle/badge.svg)

A Simple Middleware to Monitor your Symfony Messenger Component with two Prometheus Counter Metrics per MessageBus.

- Counter overall executed Messages
- Counter failed Messages

Dependencies
------------

[](#dependencies)

- PHP &gt;= 7.2.5
- promphp/prometheus\_client\_php
- symfony/messenger

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

[](#installation)

```
composer require fjogeleit/prometheus-messenger-middleware
```

Usage
-----

[](#usage)

Configure this Middleware to your MessageBus

### Symfony Basic Example

[](#symfony-basic-example)

#### Register your Services

[](#register-your-services)

```
services:
    Prometheus\Storage\InMemory: ~
    Prometheus\CollectorRegistry: ['@Prometheus\Storage\InMemory']

    PrometheusMiddleware\PrometheusMiddleware: ~
```

#### Configure Middleware

[](#configure-middleware)

```
framework:
    messenger:
        buses:
            message.bus.commands:
                middleware:
                    - 'PrometheusMiddleware\PrometheusMiddleware'
```

Generated Example Counter Response with the default Labels "message" as full qualified MessageName and "label" as Message ClassName

```
# HELP message_bus_commands_messenger Executed Messages
# TYPE message_bus_commands_messenger counter
message_bus_commands_messenger{message="PrometheusMiddleware\\\\Tests\\\\Example\\\\FooMessage",label="FooMessage"} 2
message_bus_commands_messenger{message="PrometheusMiddleware\\\\Tests\\\\Example\\\\FooMessage",label="BarMessage"} 1

```

Advanced Usage
--------------

[](#advanced-usage)

You can also configure your own Labels and provide the related Values

### Configure your own labels as additional service argument

[](#configure-your-own-labels-as-additional-service-argument)

```
services:
    ...

    PrometheusMiddleware\PrometheusMiddleware:
      arguments:
        $labels: ['message', 'label','value']

```

### Create a LabelValueProvider

[](#create-a-labelvalueprovider)

Create your own LabelValueProvider by implementing the `LabelValueProviderInterface`

```
