lamoda/metrics

用于处理和显示自定义项目指标的库

2.6.1 2024-02-26 15:12 UTC

README

Build Status Scrutinizer Code Quality Code Coverage Build Status Latest Stable Version

特性

  • 带有懒加载源数据的指标响应器
  • 多种指标响应格式
  • 可选的 Symfony 包
  • 开箱即用的 Doctrine 和 redis/predis 集成

安装

  • 使用 composer 安装
composer require lamoda/metrics:^2.0

使用示例

主要术语

  • 指标 是一个有名称的值,表示系统的运行状态、健康检查或累计测量,可选地带有标签

  • 指标响应 是在固定时间点收集的一组指标,格式化为单一输入格式

  • 指标响应器 是一个 http 端点,用于将收集到的指标渲染成合适的 Web 响应格式

  • 指标 可以在收集生成的动态生成术语中进行 操作

    • 一般建议尽可能懒地处理指标,解析到生成响应时的固定值
    • 通常 实现为 \Traversable 对象的实例,以便嵌入到集合中

指标通常有两种类型

  • 预计算 指标通常在响应过程之外生成,如计数器
  • 运行时 指标在调用时生成,表示系统的当前状态

从指标响应的角度来看,这两种类型之间的区别是微不足道的,因为 PHP 有“无共享”架构,并且大多数存储的值应该在任何情况下都从存储中获取(因此会浪费一些调用时间),因此通常 预计算 指标只是非常快的 运行时 指标

但从指标存储的角度来看,预计算 指标有更显著的区别——其中一些可以从指标存储中检索出来进行更新

  • 可变 指标是 指标,可以根据业务规则使用某些增量或绝对值进行更新

    • 计数器
    • 累积总数
    • 余额
  • 预计算 指标可能不是 可变 的,因为预计算可以是响应器性能优化过程的一部分,调整这样的值是没有意义的,因为它在指标计算过程中被覆盖

  • 可变指标存储 是一个通用的存储接口,允许最终用户通过名称和标签更新某些指标。它依赖于内部存储实现,如果指标未找到会发生什么。如果存储允许动态指标生成,则新指标会静默地存储,并带有给定值

补充术语

  • 收集器 是一个通用类,用于将指标 服务于库的其他部分

    • 响应器 以便渲染
    • 存储 接收器以缓存它们
    • 用于指标分析和检查的调试工具

    通常 收集器 只能保留预配置的 ,或从其他来源(API、数据库、缓存)检索数据

  • 实体化 是将单个指标 收集器 解析为预计算的指标 ,并将其存储在解析形式中以便快速访问某些 存储(缓存、数据库等)的过程

  • 存储是存储驱动的度量。它负责以下操作:

    • 通过其主要部分 - 名称、值和标签创建新的度量实例
    • 通过名称和标签查找度量
    • 作为度量的
    • 作为接收器,接受要在其中物化的

扩展

请参阅扩展章节

开发

运行测试

composer install
vendor/bin/phpunit