Articles on: Automate

How to setup the Crisp Status Reporter library?

If you're using Crisp Status to monitor nodes in push mode, you will need to setup a Crisp Status Reporter on each of your monitored application node.

Crisp Status Reporter libraries are easy to install in your applications. Crisp supports a growing number of application platforms. You may contact us if you need a non-supported programming language or platform added.

Libraries



Find a Crisp Status Reporter library for your language:

Rust: rs-crisp-status-reporter
Node: node-crisp-status-reporter
Golang: go-crisp-status-reporter
Python: python-crisp-status-reporter

As each language is different and has its syntax specificities, instructions on how to install a reporter library are available on each library GitHub page.

Get your reporter token & node identifier



When configuring your reporter library in your application, you'll need the following values: token, service_id, node_id.

You can retrieve them from your Crisp Status settings here:

Go to your Crisp Dashboard
Go to Settings, then click on Status Page

Get your token



You can get your secret token in the "Configure your Status Reporter" section.

The token is a chain of alphanumerical characters, separated by dashes.

Get node identifiers



You can get your node identifiers (node_id + service_id) in the "Manage monitored services" section.

When you hover a node with your mouse, click on "Show details" to reveal the identifiers.

Reveal the node identifiers by clicking on "Show details"

Manually report status



This section is only for advanced uses. In some very specific integrations, you may want to push your own status to the Crisp Status Reporter API endpoint, instead of using a library that we provide. Always use our libraries if in doubt of what you need.

Crisp Status exposes a Crisp Status Reporter API endpoint that you can use to do the periodic status push yourself. This section explains the format of a reporting request, and when to trigger such a request.

Report request format



API endpoint: https://report.crisp.watch/v1/report/[service_id]/[node_id]

Replace [service_id] and [node_id] with your node identifiers. See "Get node identifiers" above for more on how you can get those identifiers.

Request method: HTTP POST
Request authentication: Basic Auth, with username blank and password to token value (see "Get your token" above)
Request content type: application/json; charset=utf-8

Request body:

{
  "replica_id" : "[replica_id]",
  "interval" : "[interval_seconds]",

  "load" : {
    "cpu" : "[cpu_load_average]",
    "ram" : "[ram_percent_used]"
  }
}


Replace:

[replica_id]: a replica identifier, can be anything defining the host pushing its status, eg. its IP address like 192.168.1.2
[interval_seconds]: the interval at which you plan to send periodic reports, in seconds, eg. 60 for 1 minute
[cpu_load_average]: a float number from 0.00 to 10.00 indicating current CPU load (can be 0.00)
[ram_percent_used]: a float number from 0.00 to 1.00 indicating the current percent of RAM used (can be 0.00)

Reporting requests will only work for nodes in push mode.

When to report status



The status reporting request is to be executed at a fixed interval, eg. every minute. Once you start reporting every minute, and you've set interval in your request body to eg. 60 seconds, you need to commit to reporting at this interval. If you don't report in time, Crisp Status will mark the node as DEAD.

Updated on: 23/08/2023

Was this article helpful?

Share your feedback

Cancel

Thank you!