gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-exchange] branch master updated: add core success count metrics


From: gnunet
Subject: [taler-exchange] branch master updated: add core success count metrics
Date: Wed, 08 Jun 2022 15:47:53 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository exchange.

The following commit(s) were added to refs/heads/master by this push:
     new 7700f6ff add core success count metrics
7700f6ff is described below

commit 7700f6ff883b48b3049f5bdfc7eb0cb86e6b9d25
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Wed Jun 8 15:47:47 2022 +0200

    add core success count metrics
---
 src/exchange/taler-exchange-httpd_batch-withdraw.c |  1 +
 src/exchange/taler-exchange-httpd_deposit.c        |  1 +
 src/exchange/taler-exchange-httpd_melt.c           |  1 +
 src/exchange/taler-exchange-httpd_metrics.c        | 18 +++++++++++
 src/exchange/taler-exchange-httpd_metrics.h        | 18 +++++++++++
 .../taler-exchange-httpd_refreshes_reveal.c        | 35 ++++++++++++++--------
 src/exchange/taler-exchange-httpd_withdraw.c       |  2 ++
 7 files changed, 63 insertions(+), 13 deletions(-)

diff --git a/src/exchange/taler-exchange-httpd_batch-withdraw.c 
b/src/exchange/taler-exchange-httpd_batch-withdraw.c
index 91d1ebd3..d306838b 100644
--- a/src/exchange/taler-exchange-httpd_batch-withdraw.c
+++ b/src/exchange/taler-exchange-httpd_batch-withdraw.c
@@ -273,6 +273,7 @@ batch_withdraw_transaction (void *cls,
       return GNUNET_DB_STATUS_HARD_ERROR;
     }
   }
+  TEH_METRICS_num_success[TEH_MT_SUCCESS_BATCH_WITHDRAW]++;
   return GNUNET_DB_STATUS_SUCCESS_ONE_RESULT;
 }
 
diff --git a/src/exchange/taler-exchange-httpd_deposit.c 
b/src/exchange/taler-exchange-httpd_deposit.c
index 48e1df9a..c5f98d21 100644
--- a/src/exchange/taler-exchange-httpd_deposit.c
+++ b/src/exchange/taler-exchange-httpd_deposit.c
@@ -203,6 +203,7 @@ deposit_transaction (void *cls,
           &dc->deposit->coin.coin_pub);
     return GNUNET_DB_STATUS_HARD_ERROR;
   }
+  TEH_METRICS_num_success[TEH_MT_SUCCESS_DEPOSIT]++;
   return qs;
 }
 
diff --git a/src/exchange/taler-exchange-httpd_melt.c 
b/src/exchange/taler-exchange-httpd_melt.c
index c6a8cc62..1e5c92e1 100644
--- a/src/exchange/taler-exchange-httpd_melt.c
+++ b/src/exchange/taler-exchange-httpd_melt.c
@@ -201,6 +201,7 @@ melt_transaction (void *cls,
     return GNUNET_DB_STATUS_HARD_ERROR;
   }
   /* All good, commit, final response will be generated by caller */
+  TEH_METRICS_num_success[TEH_MT_SUCCESS_MELT]++;
   return GNUNET_DB_STATUS_SUCCESS_ONE_RESULT;
 }
 
diff --git a/src/exchange/taler-exchange-httpd_metrics.c 
b/src/exchange/taler-exchange-httpd_metrics.c
index 5b82282b..1542801f 100644
--- a/src/exchange/taler-exchange-httpd_metrics.c
+++ b/src/exchange/taler-exchange-httpd_metrics.c
@@ -41,6 +41,9 @@ unsigned long long 
TEH_METRICS_num_verifications[TEH_MT_SIGNATURE_COUNT];
 
 unsigned long long TEH_METRICS_num_keyexchanges[TEH_MT_KEYX_COUNT];
 
+unsigned long long TEH_METRICS_num_success[TEH_MT_SUCCESS_COUNT];
+
+
 MHD_RESULT
 TEH_handler_metrics (struct TEH_RequestContext *rc,
                      const char *const args[])
@@ -51,6 +54,11 @@ TEH_handler_metrics (struct TEH_RequestContext *rc,
 
   (void) args;
   GNUNET_asprintf (&reply,
+                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
+                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
+                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
+                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
+                   "taler_exchange_success_transactions{type=\"%s\"} %llu\n"
                    "# HELP taler_exchange_serialization_failures "
                    " number of database serialization errors by type\n"
                    "# TYPE taler_exchange_serialization_failures counter\n"
@@ -91,6 +99,16 @@ TEH_handler_metrics (struct TEH_RequestContext *rc,
                    " number of coins withdrawn in a batch-withdraw request\n"
                    "# TYPE taler_exchange_batch_withdraw_num_coins counter\n"
                    "taler_exchange_batch_withdraw_num_coins{} %llu\n",
+                   "deposit",
+                   TEH_METRICS_num_success[TEH_MT_SUCCESS_DEPOSIT],
+                   "withdraw",
+                   TEH_METRICS_num_success[TEH_MT_SUCCESS_WITHDRAW],
+                   "batch-withdraw",
+                   TEH_METRICS_num_success[TEH_MT_SUCCESS_BATCH_WITHDRAW],
+                   "melt",
+                   TEH_METRICS_num_success[TEH_MT_SUCCESS_MELT],
+                   "refresh-reveal",
+                   TEH_METRICS_num_success[TEH_MT_SUCCESS_REFRESH_REVEAL],
                    "other",
                    TEH_METRICS_num_conflict[TEH_MT_REQUEST_OTHER],
                    "deposit",
diff --git a/src/exchange/taler-exchange-httpd_metrics.h 
b/src/exchange/taler-exchange-httpd_metrics.h
index 25022d0d..ff4c3f6c 100644
--- a/src/exchange/taler-exchange-httpd_metrics.h
+++ b/src/exchange/taler-exchange-httpd_metrics.h
@@ -46,6 +46,19 @@ enum TEH_MetricTypeRequest
   TEH_MT_REQUEST_COUNT = 12 /* MUST BE LAST! */
 };
 
+/**
+ * Success types for which we collect metrics.
+ */
+enum TEH_MetricTypeSuccess
+{
+  TEH_MT_SUCCESS_DEPOSIT = 0,
+  TEH_MT_SUCCESS_WITHDRAW = 1,
+  TEH_MT_SUCCESS_BATCH_WITHDRAW = 2,
+  TEH_MT_SUCCESS_MELT = 3,
+  TEH_MT_SUCCESS_REFRESH_REVEAL = 4,
+  TEH_MT_SUCCESS_COUNT = 5 /* MUST BE LAST! */
+};
+
 /**
  * Cipher types for which we collect signature metrics.
  */
@@ -71,6 +84,11 @@ enum TEH_MetricTypeKeyX
  */
 extern unsigned long long TEH_METRICS_num_requests[TEH_MT_REQUEST_COUNT];
 
+/**
+ * Number of successful requests handled of the respective type.
+ */
+extern unsigned long long TEH_METRICS_num_success[TEH_MT_SUCCESS_COUNT];
+
 /**
  * Number of coins withdrawn in a batch-withdraw request
  */
diff --git a/src/exchange/taler-exchange-httpd_refreshes_reveal.c 
b/src/exchange/taler-exchange-httpd_refreshes_reveal.c
index bbccd568..0c1701bb 100644
--- a/src/exchange/taler-exchange-httpd_refreshes_reveal.c
+++ b/src/exchange/taler-exchange-httpd_refreshes_reveal.c
@@ -428,12 +428,13 @@ check_commitment (struct RevealContext *rctx,
  * @return MHD result code
  */
 static MHD_RESULT
-resolve_refreshes_reveal_denominations (struct MHD_Connection *connection,
-                                        struct RevealContext *rctx,
-                                        const json_t *link_sigs_json,
-                                        const json_t *new_denoms_h_json,
-                                        const json_t *old_age_commitment_json,
-                                        const json_t *coin_evs)
+resolve_refreshes_reveal_denominations (
+  struct MHD_Connection *connection,
+  struct RevealContext *rctx,
+  const json_t *link_sigs_json,
+  const json_t *new_denoms_h_json,
+  const json_t *old_age_commitment_json,
+  const json_t *coin_evs)
 {
   unsigned int num_fresh_coins = json_array_size (new_denoms_h_json);
   /* We know num_fresh_coins is bounded by #TALER_MAX_FRESH_COINS, so this is 
safe */
@@ -771,6 +772,8 @@ clean_age:
 
   for (unsigned int r = 0; r<MAX_TRANSACTION_COMMIT_RETRIES; r++)
   {
+    bool changed;
+
     /* Persist operation result in DB */
     if (GNUNET_OK !=
         TEH_plugin->start (TEH_plugin->cls,
@@ -789,13 +792,14 @@ clean_age:
 
       rrc->blinded_planchet = rcds[i].blinded_planchet;
     }
-    qs = TEH_plugin->insert_refresh_reveal (TEH_plugin->cls,
-                                            melt_serial_id,
-                                            num_fresh_coins,
-                                            rrcs,
-                                            TALER_CNC_KAPPA - 1,
-                                            rctx->transfer_privs,
-                                            &rctx->gamma_tp);
+    qs = TEH_plugin->insert_refresh_reveal (
+      TEH_plugin->cls,
+      melt_serial_id,
+      num_fresh_coins,
+      rrcs,
+      TALER_CNC_KAPPA - 1,
+      rctx->transfer_privs,
+      &rctx->gamma_tp);
     if (GNUNET_DB_STATUS_SOFT_ERROR == qs)
     {
       TEH_plugin->rollback (TEH_plugin->cls);
@@ -812,9 +816,14 @@ clean_age:
                                         "insert_refresh_reveal");
       goto cleanup;
     }
+    changed = (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qs);
     qs = TEH_plugin->commit (TEH_plugin->cls);
     if (qs >= 0)
+    {
+      if (changed)
+        TEH_METRICS_num_success[TEH_MT_SUCCESS_REFRESH_REVEAL]++;
       break;   /* success */
+    }
     if (GNUNET_DB_STATUS_HARD_ERROR == qs)
     {
       GNUNET_break (0);
diff --git a/src/exchange/taler-exchange-httpd_withdraw.c 
b/src/exchange/taler-exchange-httpd_withdraw.c
index 1d48045b..86d2c62b 100644
--- a/src/exchange/taler-exchange-httpd_withdraw.c
+++ b/src/exchange/taler-exchange-httpd_withdraw.c
@@ -194,6 +194,8 @@ withdraw_transaction (void *cls,
       return GNUNET_DB_STATUS_HARD_ERROR;
     }
   }
+  if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT == qs)
+    TEH_METRICS_num_success[TEH_MT_SUCCESS_BATCH_WITHDRAW]++;
   return qs;
 }
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]