Skip to content
This repository was archived by the owner on Jan 21, 2022. It is now read-only.

Healthcheck

vgpetkov edited this page Sep 5, 2018 · 8 revisions

Overview

Abacus healtchecker is responsible for acquiring the current health of all Abacus applications. It is configurable by the following environment variables:

Environment vairable Meaning
APPLICATION_GROUPS Map of all applications and their number of instances
INTERNAL_APPLICATIONS List of applications which will be monitored by the /healthcheck/internal endpoint

All other applications wil be monitored by the /healthcheck endpoint

For example:

APPLICATION_GROUPS:
{
  "abacus-account-plugin": 1,
  "abacus-broker": 1,
  "abacus-service-dashboard": 1,
  "abacus-housekeeper": 1,
  "abacus-provisioning-plugin": 1,
  "abacus-applications-bridge": 1,
  "abacus-cf-renewer": 1,
  "abacus-eureka-plugin": 1,
  "abacus-usage-accumulator": 6,
  "abacus-usage-aggregator": 6,
  "abacus-usage-collector": 1,
  "abacus-usage-meter": 1,
  "abacus-usage-reporting": 3
  ,"abacus-services-bridge": 1
}

INTERNAL_APPLICATIONS: [
  "abacus-usage-meter",
  "abacus-usage-accumulator",
  "abacus-usage-aggregator",
  "abacus-cf-renewer",
  "abacus-housekeeper",
  "abacus-eureka-plugin",
  "abacus-services-bridge",
  "abacus-applications-bridge"
]

Both return a response, containing a json object with all of the applications monitored and their statuses.

Following is an exemplary response:

# client-facing 
{
  "abacus-service-dashboard": {
    "https://abacus-service-dashboard.cf.<cf-domain>": 200
  },
  "abacus-usage-collector": {
    "https://abacus-usage-collector.cf.<cf-domain>": 200
  },
  "abacus-broker": {
    "https://abacus-broker.cf.<cf-domain>": 200
  },
  "abacus-provisioning-plugin": {
    "https://abacus-provisioning-plugin.cf.<cf-domain>": 200
  },
  "abacus-account-plugin": {
    "https://abacus-account-plugin.cf.<cf-domain>": 200
  },
  "abacus-usage-reporting": {
    "https://abacus-usage-reporting-0.cf.<cf-domain>": 200,
    "https://abacus-usage-reporting-1.cf.<cf-domain>": 200,
    "https://abacus-usage-reporting-2.cf.<cf-domain>": 200
  }
}
# client-internal
{
  "abacus-usage-meter": {
    "https://abacus-usage-meter.cf.<cf-domain>": 200
  },
  "abacus-usage-accumulator": {
    "https://abacus-usage-accumulator-0.cf.<cf-domain>": 200,
    "https://abacus-usage-accumulator-1.cf.<cf-domain>": 200,
    "https://abacus-usage-accumulator-2.cf.<cf-domain>": 200,
    "https://abacus-usage-accumulator-3.cf.<cf-domain>": 200,
    "https://abacus-usage-accumulator-4.cf.<cf-domain>": 200,
    "https://abacus-usage-accumulator-5.cf.<cf-domain>": 200
  },
  "abacus-usage-aggregator": {
    "https://abacus-usage-aggregator-0.cf.<cf-domain>": 200,
    "https://abacus-usage-aggregator-1.cf.<cf-domain>": 200,
    "https://abacus-usage-aggregator-2.cf.<cf-domain>": 200,
    "https://abacus-usage-aggregator-3.cf.<cf-domain>": 200,
    "https://abacus-usage-aggregator-4.cf.<cf-domain>": 200,
    "https://abacus-usage-aggregator-5.cf.<cf-domain>": 200
  },
  "abacus-cf-renewer": {
    "https://abacus-cf-renewer.cf.<cf-domain>": 200
  },
  "abacus-housekeeper": {
    "https://abacus-housekeeper.cf.<cf-domain>": 200
  },
  "abacus-eureka-plugin": {
    "https://abacus-eureka-plugin.cf.<cf-domain>": 200
  },
  "abacus-services-bridge": {
    "https://abacus-services-bridge.cf.<cf-domain>": 200
  },
  "abacus-applications-bridge": {
    "https://abacus-applications-bridge.cf.<cf-domain>": 200
  }
}

Client-facing components health

/healthcheck

Applications monitored by this endpoint are considered 'client-facing'. Any disturbances in the response here indicate a big problem. Abacus is currently not accepting all usage documents.

Internal health

/healthcheck/internal

Applications monitored by this endpoint are considered 'internal'. Any disturbances in the response here do not indicate a big problem, since Abacus is working with a RabbitMQ Buffer.

How to use?

In order to use Abacus healthchecker, call this script.

<<User-Specific Token Home>>

Clone this wiki locally