Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/codete/healthcheck
Library providing unified way for running application health checks
https://github.com/codete/healthcheck
bundle php symfony symfony-bundle
Last synced: 8 days ago
JSON representation
Library providing unified way for running application health checks
- Host: GitHub
- URL: https://github.com/codete/healthcheck
- Owner: codete
- Created: 2017-04-04T10:07:12.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-12-05T12:45:34.000Z (about 7 years ago)
- Last Synced: 2024-11-15T22:08:36.644Z (3 months ago)
- Topics: bundle, php, symfony, symfony-bundle
- Language: PHP
- Size: 30.3 KB
- Stars: 2
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/codete/HealthCheck.svg?branch=master)](https://travis-ci.org/codete/HealthCheck)
# Purpose
HealthCheck library aims to provide an easy way to write arbitrary system checks that are ran regularly. For
library it does not matter what you check, what matters is whether the check result is OK, WARNING or ERROR
and how the library can be of help to notify you about the results.# Requirements
Library's only requirement is that you use PHP not older than 7.1. The library also provides few out of the box
integrations, you can check the `require-dev` section. Also for all Symfony lovers we provide a bundle that will
turn library integration into a breeze.# HealthCheck
Any health check must implement `\Codete\HealthCheck\HealthCheck` interface. To register your check in the library
you can tag service with `hc.health_check` tag if you're using Symfony or add it to
`\Codete\HealthCheck\HealthCheckRegistry` manually.To fulfill the `HealthCheck` contract your implementation must provide 2 methods:
* `getName` - human readable name of the check
* `check` - actual logic of your checkAdditionally the library provides `\Codete\HealthCheck\ExpiringHealthCheck` which allows you to set an expiry date
for the check. This can prove especially useful for 3rd party API health checks when you know when used version
will no longer be supported. In practice checks that are OK but valid date is due will turn to warnings.The `check` method must return `\Codete\HealthCheck\HealthStatus` object which encapsulates check result (OK,
WARNING or ERROR) and an optional message. Basing on status result Result Handlers can act accordingly.# ResultHandler
Result handler are services that are handling health check results. Any Result handler must implement
`\Codete\HealthCheck\ResultHandler` interface. To register your handler in the library you can tag service with
`hc.result_handler` and provide unique `id` parameter if you're using Symfony or add it to
`\Codete\HealthCheck\ResultHandlerRegistry` manually. For example implementations you can take a look into
`\Codete\HealthCheck\ResultHandler\` namespace.# Commands
Bundle provides two commands:
* `health-check:run ` to run one health check and output its status
* `health-check:run-all` to run all registered health checks and output results in a nice way# Bundle's configuration reference
```yaml
health_check:
handlers:
psr3:
type: psr3 # PSR3 compatible handler
id: logger # service identifier
level: warning # level that should be used for reporting
chain:
type: chain # groups together many handlers
members: [ psr3, name_of_your_tagged_handler ]
elephpant:
type: remembering # aggregates results to be fetched later
slack:
type: slack # posts result to Slack channel
url: https://hooks.slack.com/ # endpoint for an incoming webhook
channel: dev # channel to post in
username: notifier # username for bot
icon: ':angel:' # icon for bot
status: # choose which handler should be called for each result status
green: ~ # no reporting
yellow: elephpant # use "elephpant" handler
red: chain # use "chain" handler
```