pmg/metrics

Generic metrics, PHP Style.

v0.2.0 2021-10-26 20:53 UTC

This package is auto-updated.

Last update: 2024-03-27 01:48:26 UTC


README

Warning: this is very unstable software right now. PMG is adding features to this as we need them.

Core Concepts

  • A Collector collects metrics over the course of an application lifecycle and stores them someplace locally (usually just in memory)
  • A Reporter takes a metric set flushed out of a collector and sends it to a real metrics backend (like cloudwatch).
  • A Metric is just some sort of measurement taken with an application. Comes in several flavors.
    • A Gauge is a static value taken at a point in time.

Usage Example

use PMG\Metrics\Metrics;
use PMG\Metrics\Gauge;

$collector = Metrics::collector();

// track `someName` with a count gauge with a value of 10
$collector->gauge('someName', Gauge::count(10));

// Same as the above but tag `someName` with dimensions
$collector->gauge(
    Metrics::name('someName')->dimension('example', '1'),
    Gauge::count(10)
);

/* @var Reporter $reporter **/
$reporter->reportOn($collector->flush());

// $collector is now empty and ready to go