implement basic /metrics

This commit is contained in:
Christian Grothoff 2021-12-07 21:27:08 +01:00
parent 71933dd2e9
commit add2d29acf
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC

View File

@ -38,10 +38,62 @@ MHD_RESULT
TEH_handler_metrics (struct TEH_RequestContext *rc, TEH_handler_metrics (struct TEH_RequestContext *rc,
const char *const args[]) const char *const args[])
{ {
char *reply;
struct MHD_Response *resp;
MHD_RESULT ret;
(void) args; (void) args;
return TALER_MHD_reply_json (rc->connection, GNUNET_asprintf (&reply,
json_pack ("{}"), "received_requests(type='%s') %llu\n"
MHD_HTTP_NO_CONTENT); "serialization_failures(type='%s') %llu\n"
"received_requests(type='%s') %llu\n"
"serialization_failures(type='%s') %llu\n"
"received_requests(type='%s') %llu\n"
"serialization_failures(type='%s') %llu\n"
"received_requests(type='%s') %llu\n"
"serialization_failures(type='%s') %llu\n"
"received_requests(type='%s') %llu\n"
"serialization_failures(type='%s') %llu\n"
"received_requests(type='%s') %llu\n"
"serialization_failures(type='%s') %llu\n"
"received_requests(type='%s') %llu\n"
"serialization_failures(type='%s') %llu\n",
"other",
TEH_METRICS_num_requests[TEH_MT_OTHER],
"other",
TEH_METRICS_num_conflict[TEH_MT_OTHER],
"deposit",
TEH_METRICS_num_requests[TEH_MT_DEPOSIT],
"deposit",
TEH_METRICS_num_conflict[TEH_MT_DEPOSIT],
"withdraw",
TEH_METRICS_num_requests[TEH_MT_WITHDRAW],
"withdraw",
TEH_METRICS_num_conflict[TEH_MT_WITHDRAW],
"melt",
TEH_METRICS_num_requests[TEH_MT_MELT],
"melt",
TEH_METRICS_num_conflict[TEH_MT_MELT],
"reveal-precheck",
TEH_METRICS_num_requests[TEH_MT_REVEAL_PRECHECK],
"reveal-precheck",
TEH_METRICS_num_conflict[TEH_MT_REVEAL_PRECHECK],
"reveal",
TEH_METRICS_num_requests[TEH_MT_REVEAL],
"reveal",
TEH_METRICS_num_conflict[TEH_MT_REVEAL],
"reveal-persist",
TEH_METRICS_num_requests[TEH_MT_REVEAL_PERSIST],
"reveal-persist",
TEH_METRICS_num_conflict[TEH_MT_REVEAL_PERSIST]);
resp = MHD_create_response_from_buffer (strlen (reply),
reply,
MHD_RESPMEM_MUST_FREE);
ret = MHD_queue_response (rc->connection,
MHD_HTTP_OK,
resp);
MHD_destroy_response (resp);
return ret;
} }