run-as-root / magento2-prometheus-exporter
Magento2 Prometheus Exporter
Requires
- guzzlehttp/guzzle: *
- laminas/laminas-http: *
- magento/framework: *
- magento/module-backend: *
- magento/module-catalog: *
- magento/module-cms: *
- magento/module-config: *
- magento/module-cron: *
- magento/module-eav: *
- magento/module-indexer: *
- magento/module-payment: *
- magento/module-sales: *
- magento/module-shipping: *
- magento/module-store: *
- magento/zend-db: *
- monolog/monolog: *
- psr/log: *
- symfony/console: *
Requires (Dev)
README
此 Magento 2 模块在 /metrics 路径下暴露新的路由,其中包含特定于 Magento 2 的以 Prometheus 格式(prometheus)表示的度量。不同的度量被分组到模块中,并且可以通过 Magento 后端启用/禁用。
安装
通过运行以下命令使用 composer 安装模块:
composer require run-as-root/magento2-prometheus-exporter
php bin/magento setup:upgrade
模块配置
模块系统配置位于 商店 -> 配置 -> Prometheus -> 度量配置
。您可以通过多选框启用或禁用特定度量。
Prometheus 配置
安装 Magento 模块后,您的 Prometheus 需要指向您的 Magento 度量端点。为此,请在 scrape_configs 下添加以下行到您的 prometheus.yml:
- job_name: 'Magento 2 Exporter' scrape_interval: 5m scrape_timeout: 60s metrics_path: /metrics # The bearer token can be generated in the Magento Admin. Using the auth is optional. # bearer_token: YOUR_BEARER_TOKEN static_configs: - targets: - your-magento-url
模块功能
该模块注册了一个每分钟运行一次的定时任务。定时任务是负责聚合度量数据。聚合后的数据存储在 run_as_root_prometheus_metrics
表中。添加的控制器收集表中的数据并为 Prometheus 返回正确的响应。
度量
以下度量将被收集
添加您自己的度量
要添加新的度量,您需要实现 \RunAsRoot\PrometheusExporter\Api\MetricAggregatorInterface
。度量聚合对象负责从 Magento 收集特定度量的必要信息,然后添加新的度量记录。新记录可以通过 \RunAsRoot\PrometheusExporter\Service\UpdateMetricService
容易地添加。
除了实现 MetricAggregatorInterface 之外,您还需要将您的特定聚合器添加到在 di.xml
中定义的 MetricAggregatorPool
。例如:
<type name="RunAsRoot\PrometheusExporter\Metric\MetricAggregatorPool"> <arguments> <argument name="items" xsi:type="array"> <item name="OrderAmountAggregator" xsi:type="object">RunAsRoot\PrometheusExporter\Aggregator\Order\OrderAmountAggregator</item> <item name="OrderCountAggregator" xsi:type="object">RunAsRoot\PrometheusExporter\Aggregator\Order\OrderCountAggregator</item> <item name="OrderItemAmountAggregator" xsi:type="object">RunAsRoot\PrometheusExporter\Aggregator\Order\OrderItemAmountAggregator</item> <item name="OrderItemCountAggregator" xsi:type="object">RunAsRoot\PrometheusExporter\Aggregator\Order\OrderItemCountAggregator</item> </argument> </arguments> </type>
贡献
如果您想贡献,无论是功能、功能请求、问题还是其他内容,请随时。没有贡献指南。