From 8be9de667525a307c35e12ecacc0c3a647ccdd9b Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Tue, 7 Dec 2021 21:02:36 +0100 Subject: implement dummy /metrics handler --- src/exchange/Makefile.am | 1 + src/exchange/taler-exchange-httpd.c | 7 +++++ src/exchange/taler-exchange-httpd_metrics.c | 43 +++++++++++++++++++++++++++++ src/exchange/taler-exchange-httpd_metrics.h | 41 +++++++++++++++++++++++++++ 4 files changed, 92 insertions(+) create mode 100644 src/exchange/taler-exchange-httpd_metrics.c create mode 100644 src/exchange/taler-exchange-httpd_metrics.h (limited to 'src/exchange') diff --git a/src/exchange/Makefile.am b/src/exchange/Makefile.am index 7779c38b1..3009c84c2 100644 --- a/src/exchange/Makefile.am +++ b/src/exchange/Makefile.am @@ -97,6 +97,7 @@ taler_exchange_httpd_SOURCES = \ taler-exchange-httpd_management_wire_disable.c \ taler-exchange-httpd_management_wire_fees.c \ taler-exchange-httpd_melt.c taler-exchange-httpd_melt.h \ + taler-exchange-httpd_metrics.c taler-exchange-httpd_metrics.h \ taler-exchange-httpd_mhd.c taler-exchange-httpd_mhd.h \ taler-exchange-httpd_recoup.c taler-exchange-httpd_recoup.h \ taler-exchange-httpd_refreshes_reveal.c taler-exchange-httpd_refreshes_reveal.h \ diff --git a/src/exchange/taler-exchange-httpd.c b/src/exchange/taler-exchange-httpd.c index 6bda5821b..57c965189 100644 --- a/src/exchange/taler-exchange-httpd.c +++ b/src/exchange/taler-exchange-httpd.c @@ -39,6 +39,7 @@ #include "taler-exchange-httpd_link.h" #include "taler-exchange-httpd_management.h" #include "taler-exchange-httpd_melt.h" +#include "taler-exchange-httpd_metrics.h" #include "taler-exchange-httpd_mhd.h" #include "taler-exchange-httpd_recoup.h" #include "taler-exchange-httpd_refreshes_reveal.h" @@ -849,6 +850,12 @@ handle_mhd_request (void *cls, .method = MHD_HTTP_METHOD_GET, .handler.get = &handler_seed }, + /* Performance metrics */ + { + .url = "metrics", + .method = MHD_HTTP_METHOD_GET, + .handler.get = &TEH_handler_metrics + }, /* Terms of service */ { .url = "terms", diff --git a/src/exchange/taler-exchange-httpd_metrics.c b/src/exchange/taler-exchange-httpd_metrics.c new file mode 100644 index 000000000..953210926 --- /dev/null +++ b/src/exchange/taler-exchange-httpd_metrics.c @@ -0,0 +1,43 @@ +/* + This file is part of TALER + Copyright (C) 2015-2021 Taler Systems SA + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU Affero General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with + TALER; see the file COPYING. If not, see +*/ +/** + * @file taler-exchange-httpd_metrics.c + * @brief Handle /metrics requests + * @author Christian Grothoff + */ +#include "platform.h" +#include +#include "taler_dbevents.h" +#include "taler-exchange-httpd_responses.h" +#include "taler-exchange-httpd_keys.h" +#include "taler-exchange-httpd_metrics.h" +#include "taler_json_lib.h" +#include "taler_mhd_lib.h" +#include + + +MHD_RESULT +TEH_handler_metrics (struct TEH_RequestContext *rc, + const char *const args[]) +{ + (void) args; + return TALER_MHD_reply_json (rc->connection, + json_pack ("{}"), + MHD_HTTP_NO_CONTENT); +} + + +/* end of taler-exchange-httpd_metrics.c */ diff --git a/src/exchange/taler-exchange-httpd_metrics.h b/src/exchange/taler-exchange-httpd_metrics.h new file mode 100644 index 000000000..399a17670 --- /dev/null +++ b/src/exchange/taler-exchange-httpd_metrics.h @@ -0,0 +1,41 @@ +/* + This file is part of TALER + Copyright (C) 2014--2021 Taler Systems SA + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU Affero General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with + TALER; see the file COPYING. If not, see +*/ +/** + * @file taler-exchange-httpd_metrics.h + * @brief Handle /metrics requests + * @author Christian Grothoff + */ +#ifndef TALER_EXCHANGE_HTTPD_METRICS_H +#define TALER_EXCHANGE_HTTPD_METRICS_H + +#include +#include +#include "taler-exchange-httpd.h" + + +/** + * Handle a "/metrics" request. + * + * @param rc request context + * @param args array of additional options (must be empty for this function) + * @return MHD result code + */ +MHD_RESULT +TEH_handler_metrics (struct TEH_RequestContext *rc, + const char *const args[]); + + +#endif -- cgit v1.2.3