Статьи по теме: Automations

How to setup the Crisp Status Reporter library

Learn how to configure a Crisp Status Reporter library for _push_ mode monitoring.


Crisp Status Reporter lets application nodes push their health to Crisp Status Page. Use it when you want an application to report its own status, CPU load, and RAM usage instead of being checked only through public HTTP, TCP, or ICMP polling.



Choose a reporter library


Crisp provides Status Reporter libraries for several application platforms. Install the library that matches your application stack, then follow the setup instructions from its GitHub repository.


Available reporter libraries:



Installation instructions are maintained in each library repository because every language and runtime has its own setup requirements.



Get your reporter token and node identifiers


When configuring a reporter library, you need three values: `token`, `service_id`, and `node_id`. You can retrieve them from your Crisp Status Page settings.


Open Crisp, then go to Settings → Status Page.


Get your reporter token


Your private reporter token is available in Configure your Status Reporter. Copy it and keep it private, because it allows your reporter to authenticate status updates.


The reporter token is an alphanumeric string separated by dashes.


Get your node identifiers


Your `service_id` and `node_id` values are available from Manage monitored services. Hover the node you want to configure, then click Show details to reveal its identifiers.


Node identifiers in Crisp Status Page settings



Report status manually


This section is for advanced integrations only. Use the official reporter libraries whenever possible, unless you have a specific reason to call the Status Reporter API yourself.


Crisp Status exposes a reporter endpoint you can call at a fixed interval. This is useful when you need a custom integration that is not covered by an existing library.


Request format


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


Request method: `HTTP POST`


Request authentication: `Basic Auth`, with a blank username and your reporter `token` as the password


Request content type: `application/json; charset=utf-8`


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


Replace these values before sending the request:


  • **[service_id]** → the service identifier from your Crisp Status settings
  • **[node_id]** → the node identifier from your Crisp Status settings
  • **[replica_id]** → a replica identifier, such as an application hostname or IP address
  • **[interval_seconds]** → the reporting interval in seconds, such as `60`
  • **[cpu_load_average]** → a CPU load value from `0.00` to `10.00`
  • **[ram_percent_used]** → a RAM usage ratio from `0.00` to `1.00`


Manual reporting only works for nodes configured in `push` mode.


Reporting interval


Send reports at the same interval you declare in the request body. For example, if `interval` is set to `60`, your application should report every 60 seconds.


If Crisp Status does not receive the expected report in time, the node can be marked as `dead`.



Frequently Asked Questions


Still have questions which were not covered in this article? Here is a collection of the most frequently asked questions on this topic.


Should I use a library or the manual API endpoint?


Use a reporter library whenever possible. The libraries handle the standard reporting flow for you and reduce the risk of sending malformed or irregular status reports.


Use the manual API endpoint only for custom runtimes or advanced integrations where no official library fits your setup.


What happens if my application stops reporting?


The node can be marked as **dead**. In `push` mode, Crisp Status expects reports at the interval you configured. If reports stop arriving on time, Crisp assumes the node may be down.

Последнее изменение: 05/05/2026

Была ли эта статья полезна?

Поделиться отзывом

Отменить

Спасибо!