PHPackages                             openclerk/metrics - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. openclerk/metrics

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

openclerk/metrics
=================

0.1.0(8y ago)01621PHP

Since Sep 11Pushed 8y ago1 watchersCompare

[ Source](https://github.com/openclerk/metrics)[ Packagist](https://packagist.org/packages/openclerk/metrics)[ RSS](/packages/openclerk-metrics/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

openclerk/metrics
=================

[](#openclerkmetrics)

A library for simple metrics (page, database) capture in PHP.

Installing
----------

[](#installing)

Include `openclerk/metrics` as a requirement in your project `composer.json`, and run `composer update` to install it into your project:

```
{
  "require": {
    "openclerk/metrics": "dev-master"
  }
}
```

Make sure that you run all of the migrations that can be discovered through [component-discovery](https://github.com/soundasleep/component-discovery); see the documentation on [openclerk/db](https://github.com/openclerk/db) for more information.

```
$migrations = new AllMigrations(db());
if ($migrations->hasPending(db())) {
  $migrations->install(db(), $logger);
}
```

Features
--------

[](#features)

1. Capture runtime metrics of pages and databases (through openclerk/db)
2. Capture runtime metrics of templates (through openclerk/pages)
3. Optionally store runtime metrics into the database (requires migrations through component-discovery)
4. Optionally generate performance reports (requires openclerk/jobs)

Using
-----

[](#using)

This project uses [openclerk/db](https://github.com/openclerk/db) for database management, [openclerk/events](https://github.com/openclerk/events) for capturing and processing events, and [openclerk/config](https://github.com/openclerk/config) for config management.

Configure the component if necessary:

```
Openclerk\Config::merge(array(
  // these are default values
  "metrics_enabled" => true,
  "metrics_db_enabled" => true,
  "metrics_page_enabled" => true,
  "metrics_templates_enabled" => true,

  // store reports into the database
  "metrics_store" => false,
));
```

You now need to register the metrics events handlers, and trigger the page events as necessary:

```
// set up metrics
Openclerk\MetricsHandler::init(db());

// trigger page load metrics
Openclerk\Events::trigger('page_init', null);

// when rendering a page...
Openclerk\Events::trigger('page_start', null);
// do things
Openclerk\Events::trigger('page_end', null);

// print out metrics stats
print_r(Openclerk\MetricsHandler::getInstance()->printResults());
```

TODO
----

[](#todo)

1. Tests
2. CURL report jobs
3. How to extend your metrics capture (e.g. graphs metrics)

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3168d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1ebbec5ccc867054461adebb7c5b6312f8256f989ef96b124892e6e89724afdb?d=identicon)[soundasleep](/maintainers/soundasleep)

---

Top Contributors

[![soundasleep](https://avatars.githubusercontent.com/u/3889656?v=4)](https://github.com/soundasleep "soundasleep (13 commits)")

### Embed Badge

![Health badge](/badges/openclerk-metrics/health.svg)

```
[![Health](https://phpackages.com/badges/openclerk-metrics/health.svg)](https://phpackages.com/packages/openclerk-metrics)
```

###  Alternatives

[psr/log

Common interface for logging libraries

10.4k1.2B9.2k](/packages/psr-log)[itsgoingd/clockwork

php dev tools in your browser

5.9k27.6M94](/packages/itsgoingd-clockwork)[graylog2/gelf-php

A php implementation to send log-messages to a GELF compatible backend like Graylog2.

41838.2M138](/packages/graylog2-gelf-php)[bugsnag/bugsnag-psr-logger

Official Bugsnag PHP PSR Logger.

32132.5M2](/packages/bugsnag-bugsnag-psr-logger)[consolidation/log

Improved Psr-3 / Psr\\Log logger based on Symfony Console components.

15462.2M7](/packages/consolidation-log)[datadog/php-datadogstatsd

An extremely simple PHP datadogstatsd client

19124.6M15](/packages/datadog-php-datadogstatsd)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
