PHPackages                             cronradar/php - 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. cronradar/php

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

cronradar/php
=============

Non-blocking lifecycle and heartbeat monitoring for PHP cron jobs, with missed-run, failure, and stuck-run detection.

0.1.0(1mo ago)051proprietaryPHPPHP ^8.0

Since Oct 2Pushed 3w agoCompare

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

READMEChangelogDependencies (2)Versions (8)Used By (1)

CronRadar PHP SDK
=================

[](#cronradar-php-sdk)

The base SDK for monitoring scheduled jobs in PHP. Wrap a callable, send a heartbeat, or track full lifecycle — CronRadar tracks duration, alerts on missed schedules, and recovers from accidental monitor deletion.

For Laravel scheduler auto-discovery, install the `cronradar/laravel` extension on top of this base.

Install
-------

[](#install)

```
composer require cronradar/php
```

PHP 8.0+ supported.

Setup
-----

[](#setup)

The SDK reads its API key from the `CRONRADAR_API_KEY` environment variable.

```
export CRONRADAR_API_KEY=ck_app_xxxxxxxxxxxxxxxxxxxx
```

Or in `.env`:

```
CRONRADAR_API_KEY=ck_app_xxxxxxxxxxxxxxxxxxxx
```

Get the API key from the CronRadar dashboard at [app.cronradar.com](https://app.cronradar.com) under your application's settings. API keys have the form `ck_app_`.

Create a separate CronRadar application and API key for production, staging, and development. Store the key in the deployment platform's secret manager; never commit it, print it, or reuse a production key outside production.

The SDK does not require explicit initialization. The first call reads the env var; if it's missing, the SDK logs a single warning to `error_log` and silently no-ops every subsequent call (per the "never break a user's job" guarantee).

Quickstart
----------

[](#quickstart)

```
