PHPackages                             iqlearning/pulse - 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. iqlearning/pulse

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

iqlearning/pulse
================

Code Igniter 4 package for monitoring application health and performance. Porting from Laravel to Code Igniter 4 framework. Kudos to Laravel community for the original package.

v0.3.4(4mo ago)011MITPHPPHP &gt;=7.4

Since Jan 13Pushed 4mo agoCompare

[ Source](https://github.com/iqlearning/ci-pulse)[ Packagist](https://packagist.org/packages/iqlearning/pulse)[ RSS](/packages/iqlearning-pulse/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

CI Pulse
========

[](#ci-pulse)

CodeIgniter 4 package for monitoring application health and performance. This is a port of [Laravel Pulse](https://pulse.laravel.com/) to the CodeIgniter 4 framework.

Requirements
------------

[](#requirements)

- PHP 7.4+
- CodeIgniter 4.0+

Installation
------------

[](#installation)

1. **Install via Composer:**

    ```
    composer require iqlearning/pulse
    ```
2. **Run Migrations:**

    Run the migrations to create the necessary tables (`pulse_entries`, `pulse_values`, `pulse_aggregates`).

    ```
    php spark migrate -n Iqlearning\Pulse
    ```

Configuration
-------------

[](#configuration)

### 1. Routes

[](#1-routes)

Add the Pulse routes to your `app/Config/Routes.php` file (or a specific route group).

```
// app/Config/Routes.php

$routes->group('pulse', ['namespace' => 'CodeIgniter\Controllers'], function($routes) {
    $routes->get('/', 'PulseController::index');
    $routes->get('check', 'PulseController::check'); // For Scheduled Tasks / Cron
    $routes->get('stats', 'PulseController::stats'); // Dashboard Data
});
```

*Note: Make sure the `namespace` matches where `PulseController` is located (currently `CodeIgniter\Controllers`).*

### 2. Filters (Middleware)

[](#2-filters-middleware)

To record request times and system stats during requests, enable the filter. The package registers the `pulse` alias automatically.

Add it to your `app/Config/Filters.php`:

```
public $globals = [
    'before' => [
        // ...
    ],
    'after' => [
        'pulse' => ['except' => ['pulse/*']], // Exclude pulse own routes
        // ...
    ],
];
```

### 3. Environment Variables

[](#3-environment-variables)

You can configure the data retention policy in your `.env` file:

```
# Data retention in days (default: 1)
pulse.metricsTTL = 1
```

Usage
-----

[](#usage)

### Dashboard

[](#dashboard)

Visit `/pulse` in your browser to view the dashboard.

### Scheduled Recording

[](#scheduled-recording)

To capture system stats (CPU, Memory) and perform cleanup of old data, you should set up a cron job or scheduled task to call the `check` endpoint periodically (e.g., every minute).

**Via crontab:**

```
* * * * * /path/to/php /path/to/project/public/index.php pulse/check
```

**Or via URL:**

```
* * * * * curl http://your-domain.com/pulse/check
```

Monitoring Features
-------------------

[](#monitoring-features)

- **System Stats:** CPU and Memory usage monitoring (Server support: Windows via `wmic`, limited Linux support).
- **Slow Requests:** Tracks requests taking longer than 1 second.
- **Slow Queries:** Tracks database queries taking longer than 50ms.
- **Exceptions:** Logs application exceptions with stack traces.
- **Request Duration:** detailed breakdown of request performance.

License
-------

[](#license)

MIT License.

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance77

Regular maintenance activity

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity24

Early-stage or recently created project

 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

126d ago

### Community

Maintainers

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

---

Top Contributors

[![iqlearning](https://avatars.githubusercontent.com/u/253889891?v=4)](https://github.com/iqlearning "iqlearning (15 commits)")

### Embed Badge

![Health badge](/badges/iqlearning-pulse/health.svg)

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

###  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)[jonahgeorge/jaeger-client-php

Jaeger Bindings for PHP OpenTracing API

1484.4M18](/packages/jonahgeorge-jaeger-client-php)

PHPackages © 2026

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