ttree/health

Last activity 12 Mar 2021 7 6
composer require ttree/health

health checker for Flow framework and Neos CMS

dev-master

Version
dev-master
Type
neos-package
Release Date
Mar 12, 2021 10:15
Source
git
Distribution
zip
Requires
MIT 61ca273f2f77a2c8d2a86aaf7b89c2488c718b9d

Health Monitoring for Flow Framework or Neos CMS

Package in development, not ready for production

Features

  • Create endpoints to display your application health status
  • API to create multiple health status endpoints
  • API to create custom check
  • Implement a health check for Database monitoring
  • Implement a health check for ElasticSearch monitoring
  • Implement a health check for Redis monitoring
  • Create endpoints to display your application metrics (promotheus)
  • API to create multiple metrics endpoints
  • API to create custom metrics
  • Implement a metrics for the number of node in the CR, for live workspace
  • Implement a metrics for the number of node in the CR, for non live workspaces
  • Implement a metrics for database size
  • Implement a metrics for elasticsearch indexes size
  • Implement a metrics for asset disk usage

How to create custom status endpoints ?

In your Settings.yaml:

Preset definition

Ttree:
  Health:
    presets:
      default:
        checks:
          database:
            class: Ttree\Health\Check\DatabaseCheck
          elasticsearch:
            class: Ttree\Health\Check\ElasticSearchCheck
          newsletterSender:
            class: Ttree\Health\Check\NewsletterSenderCheck
            

Routing configuration

Then you can create your routing configuration, in your Routes.yaml:

-
  name: 'health - monitoring endpoint'
  uriPattern: 'health'
  defaults:
    '@package':    'Ttree.Health'
    '@controller': 'Monitoring'
    '@action':     'index'
    '@format':     'json'
    'preset':      'default'
  appendExceedingArguments: true
  httpMethods: [GET]
  

The response should be something like this:

{
  "endpoint": "default",
  "success": {
    "count": 1,
    "message": {
      "database": {
        "status": "Success",
        "message": "Database access works"
      }
    }
  },
  "warnings": {
    "count": 1,
    "message": {
      "elasticsearch": {
        "status": "Warning",
        "message": "ElasticSearchCheck is not in green state"
      }
    }
  },
  "errors": {
    "count": 1,
    "message": {
      "newsletterSender": {
        "status": "Error",
        "message": "Newsletter Sender is down"
      }
    }
  }
}

The response status is 200 if there is not errors and warnings.

How to create custom check ?

Your custom check must implement Ttree\Health\Check\CheckInterface. The response of the run method must return an instance of Ttree\Health\Result\ResultInterface. You can use the builtin ErrorResult, WarningResult and SuccessResult.

Currently the provided check contains "dummy" code. Real implementation will be done later when the architecture of the package is finished.

How to create custom metrics endpoints ?

TODO

Sponsors & Contributors

The development of this package is sponsored by ttree (https://ttree.ch).

The content of the readme is provided by Github
The same vendor provides 48 package(s).