/v1/stats
Raccogli statistiche importanti di Coreapp e database con il nodo stats
. Misura le prestazioni della tua coda con la dimensione della coda di callback e il numero di messaggi in sospeso correnti.
Questo documento tratta gli argomenti seguenti:
Usa l'endpoint /v1/stats/app
per ottenere statistiche di Coreapp in formato JSON. Le statistiche di Coreapp sono conservate nella memoria e possono essere interrogate a intervalli regolari, se necessario.
GET /v1/stats/app
Se l'azione è eseguita correttamente, la richiesta restituisce 200 OK
e un corpo del messaggio contenente un oggetto app
.
"stats": { "app": { "callback_queue_size": { "data": [ { "value": 450 } ], "help": "Current callback queue size", "type": "gauge" }, "callback_requests_duration_ms_count": { "data": [ { "labels": { "result": "success", "type": "inbound_message" }, "value": 2 }, { "labels": { "result": "1", "type": "status_change" }, "value": 28 } ], "help": "Total number of callback requests", "type": "counter" }, "callback_requests_duration_ms_sum": { "data": [ { "labels": { "result": "success", "type": "inbound_message" }, "value": 32 }, { "labels": { "result": "1", "type": "status_change" }, "value": 451 } ], "help": "Total duration(ms) of callback requests", "type": "counter" }, "db_request_duration_us_count": { "data": [ { "labels": { "db": "messageStore", "request": "commit" }, "value": 5 }, { "labels": { "db": "_jobqueue-WhatsApp", "request": "prepare" }, "value": 10 }, ... "help": "Total number of successful SQL queries", "type": "counter" }, "db_request_duration_us_sum": { "data": [ { "labels": { "db": "messageStore", "request": "commit" }, "value": 14967 }, { "labels": { "db": "_jobqueue-WhatsApp", "request": "prepare" }, "value": 4236 },... "help": "Total duration(microseconds) of successful SQL queries", "type": "counter" }, "endpoint_requests": { "data": [ { "labels": { "method": "contacts", "result": "ok" }, "value": 3864 }, { "labels": { "method": "messaging", "result": "ok" }, "value": 3576 }, { "labels": { "method": "messaging", "result": "1020" }, "value": 15 }, { "labels": { "method": "control", "result": "ok" }, "value": 4169 } ], "help": "Total number of endpoint requests made", "type": "counter" }, "endpoint_requests_duration_ms_count": { "data": [ { "labels": { "method": "app_stats", "result": "ok" }, "value": 1 }, ... ], "help": "Total number of endpoint requests", "type": "counter" }, "endpoint_requests_duration_ms_sum": { "data": [ { "labels": { "method": "app_stats", "result": "ok" }, "value": 2 }, ... ], "help": "Total duration(ms) of endpoint requests", "type": "counter" }, "in_message_decoded": { "data": [ { "labels": { "type": "image" }, "value": 1 }, { "labels": { "type": "undefined" }, "value": 8 } ], "help": "Total number of incoming messages", "type": "counter" }, "in_message_from_server": { "data": [ { "value": 9 } ], "help": "Total number of incoming encrypted messages from server", "type": "counter" }, "in_message_persisted": { "data": [ { "labels": { "type": "image" }, "value": 1 }, { "labels": { "type": "system" }, "value": 3350 }, { "labels": { "type": "undefined" }, "value": 8 } ], "help": "Total number of incoming messages cached in DB", "type": "counter" }, "in_messages_pending_processing": { "data": [ { "value": 0 } ], "help": "Number of encrypted messages received yet to be processed", "type": "gauge" }, "internal_server_conn_duration_ms_count": { "data": [ { "labels": { "result": "Connected" }, "value": 1 } ], "help": "Total number of internal server connection requests made", "type": "counter" }, "internal_server_conn_duration_ms_sum": { "data": [ { "labels": { "result": "Connected" }, "value": 584 } ], "help": "Total time spent in connecting to internal server in ms", "type": "counter" }, "internal_server_requests_duration_ms_count": { "data": [ { "labels": { "operation": "FieldStatsResult", "result": "ok" }, "value": 2 }, { "labels": { "operation": "GetPrivacyListResult", "result": "404" }, "value": 1 },... "help": "Number of internal server requests", "type": "counter" }, "internal_server_requests_duration_ms_sum": { "data": [ { "labels": { "operation": "FieldStatsResult", "result": "ok" }, "value": 158 }, { "labels": { "operation": "GetPrivacyListResult", "result": "404" }, "value": 347 },... "help": "Duration of internal server requests", "type": "counter" }, "media_downloads": { "data": [ { "labels": { "result": "unknown", "type": "image" }, "value": 1 } ], "help": "Total number of media messages downloaded from server", "type": "counter" }, "media_uploads": { "data": [ { "labels": { "result": "ok", "type": "audio" }, "value": 95 }, { "labels": { "result": "ok", "type": "document" }, "value": 145 }, { "labels": { "result": "ok", "type": "image" }, "value": 81 } ], "help": "Total number of media messages uploaded to server", "type": "counter" }, "out_message_persisted": { "data": [ { "labels": { "type": "document" }, "value": 145 }, { "labels": { "type": "audio" }, "value": 95 }, { "labels": { "type": "image" }, "value": 81 }, { "labels": { "type": "undefined" }, "value": 79 }, { "labels": { "type": "hsm" }, "value": 3176 } ], "help": "Total number of outgoing messages cached in DB", "type": "counter" }, "out_message_sent_duration_ms_count": { "data": [ { "labels": { "retry": "0", "type": "hsm" }, "value": 3576 }, ... ], "help": "Total number of messages sent to server successfully", "type": "counter" }, "out_message_sent_duration_ms_sum": { "data": [ { "labels": { "retry": "0", "type": "hsm" }, "value": 536433 }, ... ], "help": "Total number of durations used to send messages to server", "type": "counter" }, "out_message_status": { "data": [ { "labels": { "status": "delivered" }, "value": 1034 }, { "labels": { "status": "sent" }, "value": 3576 }, { "labels": { "status": "read" }, "value": 1034 } ], "help": "Total number of outgoing messages of a particular status", "type": "counter" }, "pending_callbacks": { "data": [ { "labels": { "type": "inbound_message" }, "value": 8 }, { "labels": { "type": "status_change" }, "value": 442 } ], "help": "Current number of pending callbacks in the queue", "type": "gauge" }, "pending_messages": { "data": [ { "value": 0 } ], "help": "Current number of pending messages in the queue", "type": "gauge" } } }
{ "stats": { "app": { "your-hostname1:your-container-id1":{ "callback_queue_size": { "data": [ {"value": 450} ], "help": "Current callback queue size", "type": "gauge" }, ... }, "your-hostname2:your-container-id2":{ "callback_queue_size": { "data": [ {"value": 10} ], "help": "Current callback queue size", "type": "gauge" }, ... }, ... } } }
Nome | Tipo | Descrizione |
---|---|---|
| Oggetto | Dimensione della coda di callback attuali |
| Oggetto | Numero totale di richieste di callback effettuate e risultato |
| Oggetto | Durata totale (ms) delle richieste di callback |
| Oggetto | Numero attuale di trigger del rate limiting concorrenti |
| Oggetto | Numero totale di query SQL eseguite correttamente |
| Oggetto | Durata totale (microsecondi) delle query SQL eseguite correttamente |
| Oggetto | Numero totale di query SQL non riuscite |
| Oggetto | Durata totale (microsecondi) delle query SQL non riuscite |
| Oggetto | Numero totale di richieste di endpoint effettuate per un determinato endpoint e risultato ( |
| Oggetto | Numero totale di richieste di endpoint |
| Oggetto | Durata totale (ms) delle richieste di endpoint |
| Oggetto | Numero totale di messaggi in entrata decodificati correttamente |
| Oggetto | Numero totale di messaggi crittografati in entrata dal server |
| Oggetto | Numero totale di messaggi in entrata memorizzati nella cache del database |
| Oggetto | Numero di messaggi crittografati ricevuti ancora da elaborare |
| Oggetto | Numero totale di richieste di connessione al server interno effettuate |
| Oggetto | Tempo totale (ms) impiegato per connettersi al server interno in ms |
| Oggetto | Numero totale di richieste del server interno |
| Oggetto | Durata totale (ms) delle richieste del server interno |
| Oggetto | Numero totale di file multimediali scaricati dal server |
| Oggetto | Numero totale di file multimediali caricati sul server |
| Oggetto | Numero totale di messaggi in uscita memorizzati nella cache del database |
| Oggetto | Numero totale di messaggi in uscita di uno status specifico |
| Oggetto | Numero totale di messaggi inviati correttamente al server |
| Oggetto | Tempo totale (ms) impiegato per inviare messaggi al server |
| Oggetto | Numero attuale di callback in sospeso nella coda per ciascun tipo di callback |
| Oggetto | Numero attuale di messaggi in sospeso nella coda |
| Oggetto | Numero attuale di trigger di rate limiting delle richieste per secondo |
| Oggetto | Numero attuale di trigger di rate limiting delle richieste per ora |
| Oggetto | Numero attuale di trigger di rate limiting delle richieste per giorno |
| Oggetto | Numero attuale di trigger del limite di estrazione di contatti per giorno |
*Questi campi di risposta sono disponibili a partire dalla v2.21.3
.
Restituisce i dati di Coreapp in formato Prometheus.
GET /v1/stats/app?format=prometheus
# HELP callback_queue_size Current callback queue size # TYPE callback_queue_size gauge callback_queue_size 450 # HELP callback_requests_duration_ms_count Total number of callback requests # TYPE callback_requests_duration_ms_count counter callback_requests_duration_ms_count{result="success",type="inbound_message"} 2 callback_requests_duration_ms_count{result="1",type="status_change"} 28 # HELP callback_requests_duration_ms_sum Total duration(ms) of callback requests # TYPE callback_requests_duration_ms_sum counter callback_requests_duration_ms_sum{result="success",type="inbound_message"} 32 callback_requests_duration_ms_sum{result="1",type="status_change"} 451 # HELP db_request_duration_us_count Total number of successful SQL queries # TYPE db_request_duration_us_count counter db_request_duration_us_count{db="messageStore",request="commit"} 5 db_request_duration_us_count{db="_jobqueue-WhatsApp",request="prepare"} 10 ... # HELP db_request_duration_us_sum Total duration(microseconds) of successful SQL queries # TYPE db_request_duration_us_sum counter db_request_duration_us_sum{db="messageStore",request="commit"} 14967 db_request_duration_us_sum{db="_jobqueue-WhatsApp",request="prepare"} 4236 ... # HELP endpoint_requests Total number of endpoint requests made # TYPE endpoint_requests counter endpoint_requests{method="contacts",result="ok"} 3864 endpoint_requests{method="messaging",result="ok"} 3576 endpoint_requests{method="messaging",result="1020"} 15 endpoint_requests{method="control",result="ok"} 4262 # HELP endpoint_requests_duration_ms_count Total number of endpoint requests # TYPE endpoint_requests_duration_ms_count counter endpoint_requests_duration_ms_count{method="app_stats",result="ok"} 1 ... # HELP endpoint_requests_duration_ms_sum Total duration(ms) of endpoint requests # TYPE endpoint_requests_duration_ms_sum counter endpoint_requests_duration_ms_sum{method="app_stats",result="ok"} 2 ... # HELP in_message_decoded Total number of incoming messages # TYPE in_message_decoded counter in_message_decoded{type="image"} 1 in_message_decoded{type="undefined"} 8 # HELP in_message_from_server Total number of incoming encrypted messages from server # TYPE in_message_from_server counter in_message_from_server 9 # HELP in_message_persisted Total number of incoming messages cached in DB # TYPE in_message_persisted counter in_message_persisted{type="image"} 1 in_message_persisted{type="system"} 3350 in_message_persisted{type="undefined"} 8 # HELP in_messages_pending_processing Number of encrypted messages received yet to be processed # TYPE in_messages_pending_processing gauge in_messages_pending_processing 0 # HELP internal_server_conn_duration_ms_count Total number of internal server connection requests made # TYPE internal_server_conn_duration_ms_count counter internal_server_conn_duration_ms_count{result="Connected"} 1 # HELP internal_server_conn_duration_ms_sum Total time spent in connecting to internal server in ms # TYPE internal_server_conn_duration_ms_sum counter internal_server_conn_duration_ms_sum{result="Connected"} 584 # HELP internal_server_requests_duration_ms_count Number of internal server requests # TYPE internal_server_requests_duration_ms_count counter internal_server_requests_duration_ms_count{operation="FieldStatsResult",result="ok"} 2 internal_server_requests_duration_ms_count{operation="GetPrivacyListResult",result="404"} 1 ... # HELP internal_server_requests_duration_ms_sum Duration of internal server requests # TYPE internal_server_requests_duration_ms_sum counter internal_server_requests_duration_ms_sum{operation="FieldStatsResult",result="ok"} 158 internal_server_requests_duration_ms_sum{operation="GetPrivacyListResult",result="404"} 347 ... # HELP media_downloads Total number of media messages downloaded from server # TYPE media_downloads counter media_downloads{result="unknown",type="image"} 1 # HELP media_uploads Total number of media messages uploaded to server # TYPE media_uploads counter media_uploads{result="ok",type="audio"} 95 media_uploads{result="ok",type="document"} 145 media_uploads{result="ok",type="image"} 81 # HELP out_message_persisted Total number of outgoing messages cached in DB # TYPE out_message_persisted counter out_message_persisted{type="document"} 145 out_message_persisted{type="audio"} 95 out_message_persisted{type="image"} 81 out_message_persisted{type="undefined"} 79 out_message_persisted{type="hsm"} 3176 # HELP out_message_sent_duration_ms_count Total number of messages sent to server successfully # TYPE out_message_sent_duration_ms_count counter out_message_sent_duration_ms_count{retry="0",type="hsm"} 3576 ... # HELP out_message_sent_duration_ms_sum Total number of durations used to send messages to server # TYPE out_message_sent_duration_ms_sum counter out_message_sent_duration_ms_sum{retry="0",type="hsm"} 536433 ... # HELP out_message_status Total number of outgoing messages of a particular status # TYPE out_message_status counter out_message_status{status="delivered"} 1034 out_message_status{status="sent"} 3576 out_message_status{status="read"} 1034 # HELP pending_callbacks Current number of pending callbacks in the queue # TYPE pending_callbacks gauge pending_callbacks{type="inbound_message"} 8 pending_callbacks{type="status_change"} 442 # HELP pending_messages Current number of pending messages in the queue # TYPE pending_messages gauge pending_messages 0
# HELP callback_queue_size Current callback queue size # TYPE callback_queue_size gauge callback_queue_size{node="your-hostname1:your-container-id1"} 0 callback_queue_size{node="your-hostname2:your-container-id2"} 0 ...
Usa l'endpoint /v1/stats/db
per ottenere statistiche del database in formato JSON.
Il controllo delle statistiche del database può richiedere molto tempo e influire sulle prestazioni dell'app se il database è di grandi dimensioni. Si consiglia di raccogliere queste informazioni solo quando necessario.
GET /v1/stats/db
Se l'azione è eseguita correttamente, la richiesta restituisce 200 OK
e un corpo del messaggio contenente un oggetto db
.
{ "stats": { "db": { "db_contacts": { "data": [ { "labels": { "type": "non_whatsapp_user" }, "value": 2 }, { "labels": { "type": "whatsapp_user" }, "value": 5 } ], "help": "Current number of contacts in DB", "type": "gauge" }, "db_message_receipts": { "data": [ { "value": 6 } ], "help": "Current number of message receipts in DB", "type": "gauge" }, "db_messages": { "data": [ { "labels": { "type": "undefined" }, "value": 2 }, { "labels": { "type": "system" }, "value": 1 } ], "help": "Current number of messages in DB", "type": "gauge" }, "db_pending_callbacks": { "data": [ { "value": 0 } ], "help": "Current number of pending callbacks in DB", "type": "gauge" }, "db_pending_messages": { "data": [ { "value": 0 } ], "help": "Current number of pending messages in DB", "type": "gauge" } } }, "meta": { "api_status": "stable", "version": "2.18.13" } }
Solo il master primario restituirà stats
, gli altri restituiranno {}
.
{ "stats": { "db": { "your-hostname1:your-container-id1": {}, "your-primary-master:your-container-id2": { "db_contacts": { "data": [ { "labels": { "type": "whatsapp_user" }, "value": 4 } ], "help": "Current number of contacts in DB", "type": "gauge" }, "db_message_receipts": { ... }, "db_messages": { ... }, "db_pending_callbacks": { ... }, "db_pending_messages": { ... } }, "your-hostname3:your-container-id3": {}, ... } } }
Nome | Tipo | Descrizione |
---|---|---|
| Oggetto | Numero attuale di contatti nel database |
| Oggetto | Numero attuale di ricevute dei messaggi nel database |
| Oggetto | Numero attuale di messaggi nel database |
| Oggetto | Numero attuale di callback in sospeso nel database |
| Oggetto | Numero attuale di messaggi in sospeso nel database |
Restituisce le statistiche del database in formato Prometheus.
GET /v1/stats/db?format=prometheus
# HELP db_contacts Current number of contacts in DB # TYPE db_contacts gauge db_contacts{type="whatsapp_user"} 3 # HELP db_message_receipts Current number of message receipts in DB # TYPE db_message_receipts gauge db_message_receipts 0
# HELP db_contacts Current number of contacts in DB # TYPE db_contacts gauge db_contacts{node="your-primary-master:your-container-id", type="whatsapp_user"} 3 # HELP db_message_receipts Current number of message receipts in DB # TYPE db_message_receipts gauge db_message_receipts{node="your-primary-master:your-container-id"} 0