PHPackages                             pingevt/timing\_monitor - 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. pingevt/timing\_monitor

ActiveDrupal-module

pingevt/timing\_monitor
=======================

Drupal Module for running tests on external sites.

1.0.1(1y ago)16.0k↑80%[10 issues](https://github.com/pingevt/timing_monitor/issues)GPL-2.0+PHPPHP ^8.0CI failing

Since May 20Pushed 9mo ago1 watchersCompare

[ Source](https://github.com/pingevt/timing_monitor)[ Packagist](https://packagist.org/packages/pingevt/timing_monitor)[ RSS](/packages/pingevt-timing-monitor/feed)WikiDiscussions 1.x Synced 1mo ago

READMEChangelogDependencies (4)Versions (21)Used By (0)

CONTENTS OF THIS FILE
---------------------

[](#contents-of-this-file)

- Introduction
- Installation
- Configuration
- FAQ
- Maintainers
- Changelog

INTRODUCTION
------------

[](#introduction)

This module handles custom functionality for Timing monitor. Current Functionality:

- Creates a singlton class to track timing to monitor large processes.

INSTALLATION
------------

[](#installation)

- Install as you would normally install a contributed Drupal module. Visit  for further information.

CONFIGURATION
-------------

[](#configuration)

Configuration can be found at: /admin/config/development/timing-monitor

USAGE
-----

[](#usage)

```
$tm = TimingMonitor::getInstance();

$tm->logTiming("preprocess_node:$bundle:" . $variables['view_mode'], TimingMonitor::START, "Starting...");
$tm->logTiming("preprocess_node:$bundle:" . $variables['view_mode'], TimingMonitor::MARK, "...Mark...");
$tm->logTiming("preprocess_node:$bundle:" . $variables['view_mode'], TimingMonitor::FINISH, "...Finishing");
```

API Documentation
-----------------

[](#api-documentation)

Endpoint: GET `/api/timing-monitor/status`
------------------------------------------

[](#endpoint-get-apitiming-monitorstatus)

### Example Response

[](#example-response)

```
{
  "status": "OK",
  "data": {
    "count": "261",
    "type_count": "4"
  }
}
```

Endpoint: GET `/api/timing-monitor/types`
-----------------------------------------

[](#endpoint-get-apitiming-monitortypes)

### Example Response

[](#example-response-1)

```
{
  "status": "OK",
  "data": {
    "preprocess_node:article:full": {
      "id": "preprocess_node:article:full",
      "count": "60"
    },
    "preprocess_node:article:teaser": {
      "id": "preprocess_node:article:teaser",
      "count": "141"
    },
    "preprocess_node:page:full": {
      "id": "preprocess_node:page:full",
      "count": "12"
    },
    "timing_monitor": {
      "id": "timing_monitor",
      "count": "48"
    }
  }
}
```

Endpoint: GET `/api/timing-monitor/{type}/list`
-----------------------------------------------

[](#endpoint-get-apitiming-monitortypelist)

### Path Arguments

[](#path-arguments)

argdescriptionoptionstypestring - The type string from the monitorYou can use % in the url (%25 as url encoded) as a wildcard.### Query Arguments

[](#query-arguments)

argdescriptionoptionslimitto be implementedstartto be implementedendto be implemented### Example Response

[](#example-response-2)

```
{
  "status": "OK",
  "data": [
    {
      "id": "260",
      "uid": "1",
      "session_uuid": "c76cda75-6341-4d81-9396-29b65704ae62",
      "type": "preprocess_node:article:full",
      "marker": "finish",
      "message": "...Finishing",
      "variables": "a:0:{}",
      "path": "/sketches-notes/checking-field-content-twig-file",
      "method": "GET",
      "timer": "0.0022380352020264",
      "duration": "0.0021839141845703",
      "timestamp": "1698894252"
    },
    {
      "id": "259",
      "uid": "1",
      "session_uuid": "c76cda75-6341-4d81-9396-29b65704ae62",
      "type": "preprocess_node:article:full",
      "marker": "mark",
      "message": "...Mark...",
      "variables": "a:0:{}",
      "path": "/sketches-notes/checking-field-content-twig-file",
      "method": "GET",
      "timer": "0.0001380443572998",
      "duration": "8.392333984375E-5",
      "timestamp": "1698894252"
    }
  ]
}
```

Endpoint: GET `/api/timing-monitor/{type}/daily-average`
--------------------------------------------------------

[](#endpoint-get-apitiming-monitortypedaily-average)

### Path Arguments

[](#path-arguments-1)

argdescriptionoptionstypestring - The type string from the monitorYou can use % in the url (%25 as url encoded) as a wildcard.### Query Arguments

[](#query-arguments-1)

argdescriptionoptionsstartto be implementedendto be implementeddaysto be implemented### Example Response

[](#example-response-3)

```
{
  "status": "OK",
  "data": {
    "type": "preprocess_node:article:full",
    "dates": {
      "2023-11-01": 0.0020719766616821,
      "2023-10-31": 0.0016613245010376,
      "2023-10-30": null,
      "2023-10-29": null,
      "2023-10-28": null,
      "2023-10-27": null,
      "2023-10-26": null
    }
  }
}
```

MAINTAINERS
-----------

[](#maintainers)

Current maintainers:

- Pete Inge (pingevt) -

This project has been sponsored by:

- Bluecadet -

CHANGELOG
---------

[](#changelog)

Unreleased
==========

[](#unreleased)

1.1.x
=====

[](#11x)

- Removes support for D9
- Add support for D11

1.0.1
=====

[](#101)

- Increase size for 'type' and 'marker' cols in the log DB table.
- Verify string are correct length to insert into table.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance26

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity58

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

Every ~51 days

Recently: every ~120 days

Total

17

Last Release

274d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e354e3aa8f75899d7dc41cc3017e438cbf5c0025f55484d8138fa1c489b010a4?d=identicon)[pingevt](/maintainers/pingevt)

---

Top Contributors

[![pingevt](https://avatars.githubusercontent.com/u/3128823?v=4)](https://github.com/pingevt "pingevt (102 commits)")

### Embed Badge

![Health badge](/badges/pingevt-timing-monitor/health.svg)

```
[![Health](https://phpackages.com/badges/pingevt-timing-monitor/health.svg)](https://phpackages.com/packages/pingevt-timing-monitor)
```

###  Alternatives

[juzaweb/cms

Juzaweb CMS is a Content Management System (CMS) developed based on Laravel Framework and web platform whose sole purpose is to make your development workflow simple again. Project develop by Juzaweb

187571.2k](/packages/juzaweb-cms)[fourkitchens/sous-drupal-project

Starter project for Sous a Drupal distribution featuring a theme based on Emulsify Design System.

151.0k](/packages/fourkitchens-sous-drupal-project)

PHPackages © 2026

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