PHPackages                             ridvanaltun/cortex - 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. ridvanaltun/cortex

ActiveLibrary

ridvanaltun/cortex
==================

Manage cortex.

v1.0.0(5y ago)03MITPHP

Since May 21Pushed 5y ago1 watchersCompare

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

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

PHP Cortex SDK
==============

[](#php-cortex-sdk)

> Manage [Cortex](https://github.com/cortexproject/cortex).

Table of Contents
=================

[](#table-of-contents)

- [PHP Cortex SDK](#php-cortex-sdk)
- [Table of Contents](#table-of-contents)
- [Installation](#installation)
- [Usage](#usage)

Installation
============

[](#installation)

```
$ composer require ridvanaltun/cortex
```

Usage
=====

[](#usage)

```
use ridvanaltun\Cortex\Cortex;
use ridvanaltun\Cortex\Exceptions\RuleExist;
use ridvanaltun\Cortex\Exceptions\RuleNotExist;
use ridvanaltun\Cortex\Exceptions\TemplateExist;
use ridvanaltun\Cortex\Exceptions\TemplateNotExist;
use ridvanaltun\Cortex\Exceptions\UnknownRuleFormatVersion;
use ridvanaltun\Cortex\Exceptions\AlertmanagerConfigNotOk;
use ridvanaltun\Cortex\Exceptions\AlertmanagerConfigNotExist;

$host = 'http://localhost:9002';
$username = 'username';
$password = 'password';

$cortex = new Cortex($host, $username, $password, [
    'timeout' => 5,
    'verify'  => false, // don't verify ssl
]);

$consumer = 'consumer';
$configsService = $cortex->configsService($consumer);

try {

    # list all alertmanager configs (all tenants)
    $allConfigs = $cortex->listAllAlertmanagerConfigs();
    var_dump($allConfigs);

    # list tenant rules
    $rules = $configsService->getRuleFiles();
    var_dump($rules);

    # add a rule file for tenant
    $configsService->addRuleFile('filename', [
      [
        'alert' => 'alertname1',
        'for' =>'10m',
        'expr' => 'up == 0',
      ],
      [
        'alert' => 'alertname2',
        'for' =>'15m',
        'expr' => 'up == 1',
        'labels' => [
          'severity' => 'page',
        ],
        'annotations' => [
          'summary' => 'High request latency',
        ],
      ]
    ]);

    # add or replace rule file for tenant
    $configsService->applyRuleFile('filename', [
      [
        'alert' => 'alertname4',
        'for' =>'10m',
        'expr' => 'up == 0',
      ],
      [
        'alert' => 'alertname2',
        'for' =>'15m',
        'expr' => 'up == 1',
        'labels' => [],
        'annotations' => [],
      ]
    ]);

    # remove rule for tenant
    $configsService->removeRuleFile('rulename');

    # remove all rules for tenant
    $configsService->removeAllRuleFiles();

    # change rule format version for tenant, can be set 1 or 2
    $configsService->changeRuleFormatVersion('2');

    # list tenant templates
    $templates = $configsService->getTemplateFiles();
    var_dump($templates);

    # add a template file for tenant
    $template = '{{ define "slack.myorg.text" }}https://internal.myorg.net/wiki/alerts/{{ .GroupLabels.app }}/{{ . GroupLabels.alertname }}{{ end}}';
    $configsService->addTemplateFile('filename', $template);

    # add or replace template file for tenant
    $template = '{{ define "slack.myorg.text" }}https://internal.myorg.net/wiki/alerts/{{ . GroupLabels.app }}/{{ .GroupLabels.alertname }}{{ end}}';
    $configsService->applyTemplateFile('filename', $template);

    # remove template for tenant
    $configsService->removTemplateFile('templatename');

    # remove all templates for tenant
    $configsService->removeAllTemplateFiles();

    # get tenant alertmanager config
    $alertmanager = $configsService->getAlertmanagerConfig();
    var_dump($alertmanager);

    # remove tenant alertmanager config
    $configsService->removeAlertmanagerConfig();

    # replace tenant alertmanager config
    $configsService->replaceAlertmanagerConfig([
      'global' => [
        'smtp_smarthost' => 'localhost:25',
        'smtp_from' => 'alertmanager@example.org',
        'smtp_auth_username' => 'alertmanager',
        'smtp_auth_password' => 'password',
      ],
      'route' => [
        'receiver' => 'team-X-mails',
      ],
      'receivers' => [
        [
          'name' => 'team-X-mails',
          'email_configs' => [
            [
              'to' => 'abc@domain.com',
            ],
          ],
        ],
      ],
    ]);

    # remove alertmanager config for tenant
    $configsService->removeAlertmanagerConfig();

    # validate alertmanager config
    $cortex->validateAlertmanagerConfig([
      'global' => [
        'smtp_smarthost' => 'localhost:25',
        'smtp_from' => 'alertmanager@example.org',
        'smtp_auth_username' => 'alertmanager',
        'smtp_auth_password' => 'password',
      ],
      'route' => [
        'receiver' => 'team-X-mails',
      ],
      'receivers' => [
        [
          'name' => 'team-X-mails',
          'email_configs' => [
            [
              'to' => 'abc@domain.com',
            ],
          ],
        ],
      ],
    ]);

    # deactive alerting for tenant
    $configsService->deactivate();

    # activate alerting for tenant
    $configsService->activate();

} catch (AlertmanagerConfigNotOk $e) {
    echo "Provided config not ok.";
} catch (RuleExist $e) {
    echo "Rule already exist.";
} catch (RuleNotExist $e) {
    echo "Rule not exist.";
} catch (TemplateExist $e) {
    echo "Template already exist.";
} catch (TemplateNotExist $e) {
    echo "Template not exist.";
} catch (AlertmanagerConfigNotExist $e) {
    echo "Alertmanager config not exist.";
} catch (UnknownRuleFormatVersion $e) {
    echo "Unknown rule format version.";
}
```

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity55

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

2188d ago

### Community

Maintainers

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

---

Top Contributors

[![ridvanaltun](https://avatars.githubusercontent.com/u/10441216?v=4)](https://github.com/ridvanaltun "ridvanaltun (1 commits)")

---

Tags

cortexprometheusprometheuscortex

###  Code Quality

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/ridvanaltun-cortex/health.svg)

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

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[statamic/cms

The Statamic CMS Core Package

4.8k3.2M720](/packages/statamic-cms)[craftcms/cms

Craft CMS

3.6k3.6M2.6k](/packages/craftcms-cms)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

19462.3M1.3k](/packages/drupal-core)[tempest/framework

The PHP framework that gets out of your way.

2.1k23.1k9](/packages/tempest-framework)[bitpay/sdk

Complete version of the PHP library for the new cryptographically secure BitPay API

42337.5k4](/packages/bitpay-sdk)

PHPackages © 2026

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