PHPackages                             zuvio/atlas - 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. zuvio/atlas

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

zuvio/atlas
===========

Zuvio Atlas job/cron-run monitoring SDK — report start/finish/fail of scheduled jobs.

v0.1.0(1mo ago)00MITPHPPHP &gt;=7.4

Since Jul 11Pushed 1mo agoCompare

[ Source](https://github.com/mulutu/atlas-php)[ Packagist](https://packagist.org/packages/zuvio/atlas)[ Docs](https://atlas.zuviosystems.com)[ RSS](/packages/zuvio-atlas/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (2)Used By (0)

zuvio/atlas — PHP &amp; Laravel job monitoring SDK
==================================================

[](#zuvioatlas--php--laravel-job-monitoring-sdk)

Report your scheduled PHP jobs to Zuvio Atlas — start, finish/fail, duration, and the exception message on failure — so Atlas can alert on failed, overrun, or missed runs. PHP 7.4+, no dependencies.

Install
-------

[](#install)

```
composer require zuvio/atlas
```

Laravel
-------

[](#laravel)

The service provider auto-registers a `->zuvioJob('slug')` scheduler macro:

```
// routes/console.php or app/Console/Kernel.php
$schedule->command('backup:run')->daily()->zuvioJob('abc123');
```

It wires the scheduler's `before` / `onSuccess` / `onFailure` hooks to the start / finish / fail pings automatically.

Plain PHP
---------

[](#plain-php)

```
use Zuvio\Atlas\Atlas;

Atlas::run('abc123', function () {
    run_backup();          // start → finish on return, fail on exception
});
```

Manual control:

```
use Zuvio\Atlas\AtlasClient;

$atlas = new AtlasClient();               // baseUrl from ZUVIO_ATLAS_URL
$runId = $atlas->start('abc123');
try {
    do_work();
    $atlas->finish('abc123', $runId);
} catch (\Throwable $e) {
    $atlas->fail('abc123', $runId, 1, $e->getMessage());
    throw $e;
}
```

API-key mode (monitoring-as-code)
---------------------------------

[](#api-key-mode-monitoring-as-code)

Pass a `pm_live_` key (Pro+) to provision monitors from code and use a human key (auto-created on first ping) instead of a dashboard slug:

```
use Zuvio\Atlas\Atlas;
use Zuvio\Atlas\AtlasClient;

Atlas::configure(new AtlasClient(null, 10.0, null, getenv('ZUVIO_ATLAS_KEY')));
Atlas::put('nightly-backup', ['cronExpression' => '0 3 * * *']);   // idempotent
Atlas::run('nightly-backup', function () { run_backup(); });
```

Without a key, the identifier is a per-monitor **slug** on the unauthenticated capability URL.

Heartbeats
----------

[](#heartbeats)

```
Atlas::heartbeat('important-heartbeat');                     // alive
Atlas::heartbeat('important-heartbeat', 'fail', 'disk full');
```

With an API key the id is a human key (auto-created on first ping); otherwise a slug. `$atlas->putHeartbeat('key', ['interval' => 60])` provisions one from code.

Config
------

[](#config)

`new AtlasClient($baseUrl, $timeout, $host, $apiKey)`. `$baseUrl` defaults to `ZUVIO_ATLAS_URL` (or `https://atlas.zuviosystems.com`); `$apiKey` to `ZUVIO_ATLAS_KEY`. Pings are best-effort — a monitoring outage never throws into your job.

###  Health Score

30

—

LowBetter than 61% of packages

Maintenance90

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity23

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

50d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7f110cc56d68398d3579e7ad0360c1f9f9cc19d612a28a33aa76941414a6e763?d=identicon)[mulutu](/maintainers/mulutu)

---

Top Contributors

[![mulutu](https://avatars.githubusercontent.com/u/22610114?v=4)](https://github.com/mulutu "mulutu (3 commits)")

---

Tags

laravelmonitoringjobcronatlasheartbeathealthcheckzuvio

### Embed Badge

![Health badge](/badges/zuvio-atlas/health.svg)

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

PHPackages © 2026

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