Skip to main content

API Data Consistency Check

Argo Monitoring uses automated checks that run at specific intervals and analyse the consistency of the monitorig data. If for example most of the monitored items appear to be problematic (flapping through states or appear as CRITICAL) that might indicate a network issue affecting Argo Monitoring. The automated checking mechanism will update the argo-web-api with the status of it's findings.There is also a manual mechanism where an argo-monitoring administrator can check the automated consistency warning and respond with an acknowledgement: either by maintaining the problematic state and confirming that there is an issue with the monitoring platform or - in the case that most of the monitoring items are truly experiecing issues idepedent from the state of the monitoring platform - revert the consistency warning and inform the users accordingly.

GET Consistency information

note: consistency information is both accessible from /api/v2 and /api/v3 paths. In the examples we are going to maintin the /api/v3

A user can get consistency information by issuing the following call:

GET /api/v3/consistency

Request headers

Accept: application/json

Response

Headers: Status: 200 OK

Response Body

Json Response example:

{
"status": "OK",
"timestamp": "2025-07-10T12:30:00Z",
"message": "Flapping items percentage 2% (2/100)"
}

GET Consistency information with verbosity

A user can get consistency information with more details (verbose) by using the url parameter ?verbose in the previous call:

GET /api/v3/consistency?verbose

Request headers

Accept: application/json

Response

Headers: Status: 200 OK

Response Body

User can be informed with details about the automated check (when did it run recently, it's status and it's message)

Json Response example:

{
"status": "CRITICAL",
"timestamp": "2025-07-10T05:44:00Z",
"message": "Flapping items percentage 65% (65/100)",
"auto_check_status": "CRITICAL",
"auto_check_message": "Flapping items percentage 65% (65/100)",
"auto_check_timestamp": "2025-07-10T02:30:00Z",
}

If there is an admin acknowledgement the user can be informed about it also (in verbose mode)

Json Response example:

{
"status": "OK",
"timestamp": "2025-07-10T12:44:00Z",
"message": "Monitoring is ok - most items are flapping due to issues of their own",
"auto_check_status": "CRITICAL",
"auto_check_message": "Flapping items percentage 65% (65/100)",
"auto_check_timestamp": "2025-07-10T12:30:00Z",
"ack_check_status": "OK",
"ack_check_message": "Monitoring is ok - most items are flapping due to issues of their own",
"ack_check_timestamp": "2025-07-10T06:30:00Z",
"ack_timeout_hours":6
}

So with verbose mode the user can have fully awareness of the consistency status and how it is affected both by the automated check and from the admin acknowledgements.

POST Consistency results as automated check

An automated consistency check can post results by having the correct token (with the correct role of consistency-check) and by issuing the following request:

POST /api/v3/consistency/auto-check

Request headers

Accept: application/json

Post body

{
"status": "OK",
"message": "All items are ok"
}

Response

The automated check needs only to specify a state (OK, CRITICAL) and an accompanying message. If the request is succesfull the web-api will respond:

Json Response:

{
"message": "The Auto Check event was posted succesfully",
"code": 200
}

POST Acknlowledgement of consistency issue

An user with the correct role (consistency-ack) can acknowledge consistency issues raised by the automated mechanism and respond accordingly by issuing the following request:

POST /api/v3/consistency/ack

Request headers

Accept: application/json

Post body

{
"status": "OK",
"message": "False alarm! Monitoring platform is ok"
}

Optionally the user can specify an ack timeout in hours (default: 6) as such:

{
"status": "OK",
"message": "False alarm! Monitoring platform is ok",
"timeout_hours": 2
}

Response

If the request is succesfull the web-api will respond:

Json Response:

{
"message": "The Ack event was posted succesfully",
"code": 200
}