lamoda / metrics
用于处理和显示自定义项目指标的库
2.6.1
2024-02-26 15:12 UTC
Requires
- php: ~7.1 || ^8.0
- guzzlehttp/psr7: ~1.4 || ^2.0
Requires (Dev)
- ext-json: *
- ext-redis: *
- doctrine/common: ^2.4.1 || ^3.0
- doctrine/dbal: ^2.3
- doctrine/doctrine-bundle: ~1.5 || ^2.0
- doctrine/orm: ~2.4
- masterminds/html5: ^2.6
- phpunit/phpunit: ^7.0 || ^8.0 || ^9.0 || ^10.0
- predis/predis: ^1.1
- symfony/browser-kit: ~2.8 || ~3.0 || ~4.0 || ^5.0 || ^6.0
- symfony/config: ~2.8 || ~3.0 || ~4.0 || ^5.0 || ^6.0
- symfony/dependency-injection: ~2.8 || ~3.0 || ~4.0 || ^5.0 || ^6.0
- symfony/dom-crawler: ~2.8 || ~3.0 || ~4.0 || ^5.0 || ^6.0
- symfony/framework-bundle: ~2.8 || ~3.0 || ~4.0 || ^5.0 || ^6.0
- symfony/http-kernel: ~2.8 || ~3.0 || ~4.0 || ^5.0 || ^6.0
- symfony/monolog-bundle: ~2.0 || ~3.0
- symfony/routing: ~2.8 || ~3.0 || ~4.0 || ^5.0 || ^6.0
- symfony/stopwatch: ~2.8 || ~3.0 || ~4.0 || ^5.0 || ^6.0
- symfony/yaml: ~2.8 || ~3.0 || ~4.0 || ^5.0 || ^6.0
This package is auto-updated.
Last update: 2024-08-26 16:33:22 UTC
README
特性
- 带有懒加载源数据的指标响应器
- 多种指标响应格式
- 可选的 Symfony 包
- 开箱即用的 Doctrine 和 redis/predis 集成
安装
- 使用 composer 安装
composer require lamoda/metrics:^2.0
使用示例
主要术语
-
指标 是一个有名称的值,表示系统的运行状态、健康检查或累计测量,可选地带有标签
-
指标响应 是在固定时间点收集的一组指标,格式化为单一输入格式
-
指标响应器 是一个 http 端点,用于将收集到的指标渲染成合适的 Web 响应格式
-
指标 可以在收集生成的动态生成术语中进行 源 操作
- 一般建议尽可能懒地处理指标,解析到生成响应时的固定值
- 通常 源 实现为
\Traversable
对象的实例,以便嵌入到集合中
指标通常有两种类型
- 预计算 指标通常在响应过程之外生成,如计数器
- 运行时 指标在调用时生成,表示系统的当前状态
从指标响应的角度来看,这两种类型之间的区别是微不足道的,因为 PHP 有“无共享”架构,并且大多数存储的值应该在任何情况下都从存储中获取(因此会浪费一些调用时间),因此通常 预计算 指标只是非常快的 运行时 指标
但从指标存储的角度来看,预计算 指标有更显著的区别——其中一些可以从指标存储中检索出来进行更新
-
可变 指标是 指标,可以根据业务规则使用某些增量或绝对值进行更新
- 计数器
- 累积总数
- 余额
-
预计算 指标可能不是 可变 的,因为预计算可以是响应器性能优化过程的一部分,调整这样的值是没有意义的,因为它在指标计算过程中被覆盖
-
可变指标存储 是一个通用的存储接口,允许最终用户通过名称和标签更新某些指标。它依赖于内部存储实现,如果指标未找到会发生什么。如果存储允许动态指标生成,则新指标会静默地存储,并带有给定值
补充术语
-
收集器 是一个通用类,用于将指标 源 服务于库的其他部分
- 响应器 以便渲染
- 存储 接收器以缓存它们
- 用于指标分析和检查的调试工具
通常 收集器 只能保留预配置的 源,或从其他来源(API、数据库、缓存)检索数据
-
实体化 是将单个指标 收集器 解析为预计算的指标 源,并将其存储在解析形式中以便快速访问某些 存储(缓存、数据库等)的过程
-
存储是存储驱动的度量。它负责以下操作:
- 通过其主要部分 - 名称、值和标签创建新的度量实例
- 通过名称和标签查找度量
- 作为度量的源
- 作为接收器,接受要在其中物化的源
扩展
请参阅扩展章节
开发
运行测试
composer install vendor/bin/phpunit