From e35629dc29e4fa475268ef156812e3164228152e Mon Sep 17 00:00:00 2001 From: yenicelik Date: Thu, 8 Jun 2023 23:57:46 +0200 Subject: [PATCH] balance is inside the influx query again --- scripts/generate-requests-and-stats.sh | 4 +++- .../101-balance-referral-stats.sh | 6 ++++++ web3_proxy/src/stats/influxdb_queries.rs | 21 ++++++++++++++++--- 3 files changed, 27 insertions(+), 4 deletions(-) rename scripts/{ => manual-tests}/101-balance-referral-stats.sh (96%) diff --git a/scripts/generate-requests-and-stats.sh b/scripts/generate-requests-and-stats.sh index a05e55e7..77ae8f3a 100644 --- a/scripts/generate-requests-and-stats.sh +++ b/scripts/generate-requests-and-stats.sh @@ -5,4 +5,6 @@ # https://github.com/INFURA/versus # ./ethspam | ./versus --stop-after 100 "http://localhost:8544/" # Pipe into the endpoint ..., add a bearer token and all that -./ethspam http://127.0.0.1:8544/rpc/01H0ZZJDNNEW49FRFS4D9SPR8B | ./versus --concurrency=4 --stop-after 100 http://localhost:8544/rpc/01H0ZZJDNNEW49FRFS4D9SPR8B +./ethspam http://127.0.0.1:8544/rpc/01H2D5DN4D423VR2KFWBZE46TR | ./versus --concurrency=4 --stop-after 10000 http://localhost:8544/rpc/01H2D5DN4D423VR2KFWBZE46TR + +./ethspam http://127.0.0.1:8544/rpc/01H2D5CAP1KF2NKRS30SGATDSD | ./versus --concurrency=4 --stop-after 10000 http://localhost:8544/rpc/01H2D5CAP1KF2NKRS30SGATDSD diff --git a/scripts/101-balance-referral-stats.sh b/scripts/manual-tests/101-balance-referral-stats.sh similarity index 96% rename from scripts/101-balance-referral-stats.sh rename to scripts/manual-tests/101-balance-referral-stats.sh index 942d99fa..40b4fbba 100644 --- a/scripts/101-balance-referral-stats.sh +++ b/scripts/manual-tests/101-balance-referral-stats.sh @@ -128,3 +128,9 @@ curl \ curl \ -H "Authorization: Bearer 01H2D5CAQJF7P80222P4ZAFQ26" \ -X GET "127.0.0.1:8544/user/referral/stats/shared-codes" + + +# Finally also get some stats +curl -X GET \ +-H "Authorization: Bearer 01H2D5DN564M4Q2T6PETEZY83Q" \ +"http://localhost:8544/user/stats/detailed?query_start=1686236378&query_window_seconds=3600" diff --git a/web3_proxy/src/stats/influxdb_queries.rs b/web3_proxy/src/stats/influxdb_queries.rs index fe3d966b..b303d40d 100644 --- a/web3_proxy/src/stats/influxdb_queries.rs +++ b/web3_proxy/src/stats/influxdb_queries.rs @@ -174,8 +174,8 @@ pub async fn query_user_stats<'a>( |> filter(fn: (r) => r["_measurement"] == "{measurement}") {filter_chain_id} {drop_method} - - base + + cumsum = base |> aggregateWindow(every: {query_window_seconds}s, fn: sum, createEmpty: false) |> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value") |> drop(columns: ["balance"]) @@ -186,7 +186,22 @@ pub async fn query_user_stats<'a>( |> sort(columns: ["frontend_requests"], desc: true) |> limit(n: 1) |> group() - |> sort(columns: ["_time", "_measurement", "archive_needed", "chain_id", "error_response", "method", "rpc_secret_key_id"], desc: true) + + balance = base + |> toFloat() + |> aggregateWindow(every: {query_window_seconds}s, fn: mean, createEmpty: false) + |> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value") + |> group(columns: ["_time", "_measurement", "chain_id", "method", "rpc_secret_key_id"]) + |> mean(column: "balance") + |> group() + |> sort(columns: ["_time", "_measurement", "chain_id", "method", "rpc_secret_key_id"], desc: true) + + join( + tables: {{cumsum, balance}}, + on: ["_time", "_measurement", "chain_id", "method", "rpc_secret_key_id"] + ) + |> sort(columns: ["_time", "_measurement", "chain_id", "method", "rpc_secret_key_id"], desc: true) + "#); debug!("Raw query to db is: {:#?}", query);