acseo / sylius-prometheus-metrics-plugin
Sylius Prometheus Metrics Plugin
Installs: 2 933
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
Type:sylius-plugin
Requires
- php: ^8.0
- artprima/prometheus-metrics-bundle: ~1.16.0 || ~1.17.0
- sylius/sylius: ~1.11.0 || ~1.12.0
Requires (Dev)
- phpunit/phpunit: ^10.2
README
Sylius Prometheus Metrics
Features
Observability
We use the artprima/prometheus-metrics-bundle (https://github.com/artprima/prometheus-metrics-bundle) bundle to collect metrics in the Prometheus format, which can then be used to build a dashboard with Grafana. These metrics are visible at the /metrics/prometheus URL of the website.
Default metrics are generated. It is possible to create custom metrics to track "Business" data, such as the number of created orders or the order amount.
Installation
-
Run
$ composer require acseo/sylius-prometheus-metrics-plugin
. -
Add these few lines to the
config/state_machine/sylius_payment.yaml
winzou_state_machine: sylius_payment: callbacks: after: sylius_order_items_complete_collector: on: 'complete' do: ['@metrics.order_collector', 'incrementPrometheusCounters'] args: ["object.getOrder()"]
Installation without Symfony Flex
-
Run
$ composer require acseo/sylius-prometheus-metrics-plugin
. -
Enable the plugin in bundles.php
<?php // config/bundles.php return [ // ... Artprima\PrometheusMetricsBundle\ArtprimaPrometheusMetricsBundle::class => ['all' => true], Acseo\SyliusPrometheusMetricsPlugin\SyliusPrometheusMetricsPlugin::class => ['all' => true], ];
- Add this file
config/packages/prometheus_metrics.yaml
artprima_prometheus_metrics: namespace: myapp storage: '%env(PROM_METRICS_DSN)%' ignored_routes: - prometheus_bundle_prometheus - _wdt # used to disable default application metrics #disable_default_metrics: false # Recommended to disable default metrics from promphp/prometheus_client_php # see https://github.com/PromPHP/prometheus_client_php/issues/62 disable_default_promphp_metrics: true # used to enable console metrics #enable_console_metrics: false when@test: artprima_prometheus_metrics: storage: in_memory
- Add the metrics routes
config/routes/metrics.yaml
app_metrics: resource: '@ArtprimaPrometheusMetricsBundle/Resources/config/routing.xml'
- Add environment variables
###> artprima/prometheus-metrics-bundle ###
PROM_METRICS_DSN=apcu
###< artprima/prometheus-metrics-bundle ###