lint
This commit is contained in:
parent
600c1bafb4
commit
a97cb6a0c5
@ -150,7 +150,7 @@ pub async fn user_mysql_stats_get(
|
|||||||
.all(db_replica.as_ref())
|
.all(db_replica.as_ref())
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
let stats = stats.into_iter().map(|x| x.1).flatten().collect::<Vec<_>>();
|
let stats = stats.into_iter().flat_map(|x| x.1).collect::<Vec<_>>();
|
||||||
|
|
||||||
let mut response = HashMap::new();
|
let mut response = HashMap::new();
|
||||||
response.insert("stats", stats);
|
response.insert("stats", stats);
|
||||||
|
@ -23,7 +23,7 @@ use influxdb2::api::query::FluxRecord;
|
|||||||
use influxdb2::models::Query;
|
use influxdb2::models::Query;
|
||||||
use migration::sea_orm::{ColumnTrait, EntityTrait, QueryFilter};
|
use migration::sea_orm::{ColumnTrait, EntityTrait, QueryFilter};
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use tracing::{error, info, trace, warn};
|
use tracing::{error, trace, warn};
|
||||||
use ulid::Ulid;
|
use ulid::Ulid;
|
||||||
|
|
||||||
pub async fn query_user_influx_stats<'a>(
|
pub async fn query_user_influx_stats<'a>(
|
||||||
|
@ -16,9 +16,6 @@ use axum::headers::Origin;
|
|||||||
use chrono::{DateTime, Months, TimeZone, Utc};
|
use chrono::{DateTime, Months, TimeZone, Utc};
|
||||||
use derive_more::From;
|
use derive_more::From;
|
||||||
use entities::{referee, referrer, rpc_accounting_v2};
|
use entities::{referee, referrer, rpc_accounting_v2};
|
||||||
use ethers::prelude::rand;
|
|
||||||
use ethers::prelude::rand::distributions::Alphanumeric;
|
|
||||||
use ethers::prelude::rand::Rng;
|
|
||||||
use influxdb2::models::DataPoint;
|
use influxdb2::models::DataPoint;
|
||||||
use migration::sea_orm::prelude::Decimal;
|
use migration::sea_orm::prelude::Decimal;
|
||||||
use migration::sea_orm::{
|
use migration::sea_orm::{
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
use ethers::prelude::rand::{self, distributions::Alphanumeric, Rng};
|
use ethers::prelude::rand::{self, distributions::Alphanumeric, Rng};
|
||||||
use influxdb2::Client;
|
use influxdb2::Client;
|
||||||
use migration::sea_orm::DatabaseConnection;
|
|
||||||
use std::process::Command as SyncCommand;
|
use std::process::Command as SyncCommand;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use tokio::{
|
use tokio::{
|
||||||
@ -8,8 +7,7 @@ use tokio::{
|
|||||||
process::Command as AsyncCommand,
|
process::Command as AsyncCommand,
|
||||||
time::{sleep, Instant},
|
time::{sleep, Instant},
|
||||||
};
|
};
|
||||||
use tracing::{info, trace, warn};
|
use tracing::{info, trace};
|
||||||
use web3_proxy::relational_db::{connect_db, get_migrated_db};
|
|
||||||
|
|
||||||
/// on drop, the mysql docker container will be shut down
|
/// on drop, the mysql docker container will be shut down
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
@ -31,9 +29,9 @@ impl TestInflux {
|
|||||||
.map(char::from)
|
.map(char::from)
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
let db_container_name = format!("web3-proxy-test-influx-{}", random);
|
let container_name = format!("web3-proxy-test-influx-{}", random);
|
||||||
|
|
||||||
info!(%db_container_name);
|
info!(%container_name);
|
||||||
|
|
||||||
// docker run -d -p 8086:8086 \
|
// docker run -d -p 8086:8086 \
|
||||||
// --name influxdb2 \
|
// --name influxdb2 \
|
||||||
@ -56,7 +54,7 @@ impl TestInflux {
|
|||||||
.args([
|
.args([
|
||||||
"run",
|
"run",
|
||||||
"--name",
|
"--name",
|
||||||
&db_container_name,
|
&container_name,
|
||||||
"--rm",
|
"--rm",
|
||||||
"-d",
|
"-d",
|
||||||
"-e",
|
"-e",
|
||||||
@ -87,7 +85,7 @@ impl TestInflux {
|
|||||||
sleep(Duration::from_secs(1)).await;
|
sleep(Duration::from_secs(1)).await;
|
||||||
|
|
||||||
let docker_inspect_output = AsyncCommand::new("docker")
|
let docker_inspect_output = AsyncCommand::new("docker")
|
||||||
.args(["inspect", &db_container_name])
|
.args(["inspect", &container_name])
|
||||||
.output()
|
.output()
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
@ -127,23 +125,23 @@ impl TestInflux {
|
|||||||
.get("HostIp")
|
.get("HostIp")
|
||||||
.and_then(|x| x.as_str())
|
.and_then(|x| x.as_str())
|
||||||
.expect("unable to determine influx ip");
|
.expect("unable to determine influx ip");
|
||||||
info!("Influx IP is: {:?}", influx_ip);
|
|
||||||
|
|
||||||
// let host = "http://localhost:8086";
|
// let host = "http://localhost:8086";
|
||||||
let host = format!("http://{}:{}", influx_ip, influx_port);
|
let influx_host = format!("http://{}:{}", influx_ip, influx_port);
|
||||||
|
info!(%influx_host);
|
||||||
|
|
||||||
// Create the client ...
|
// Create the client ...
|
||||||
let influxdb_client = influxdb2::Client::new(host.clone(), org, admin_token);
|
let influxdb_client = influxdb2::Client::new(influx_host.clone(), org, admin_token);
|
||||||
info!("Influx client is: {:?}", influxdb_client);
|
info!("Influx client is: {:?}", influxdb_client);
|
||||||
|
|
||||||
// create the db_data as soon as the url is known
|
// create the TestInflux as soon as the url is known
|
||||||
// when this is dropped, the db will be stopped
|
// when this is dropped, the docker container will be stopped
|
||||||
let mut test_influx = Self {
|
let mut test_influx = Self {
|
||||||
host: host.to_string(),
|
host: influx_host,
|
||||||
org: org.to_string(),
|
org: org.to_string(),
|
||||||
token: admin_token.to_string(),
|
token: admin_token.to_string(),
|
||||||
bucket: init_bucket.to_string(),
|
bucket: init_bucket.to_string(),
|
||||||
container_name: db_container_name.clone(),
|
container_name: container_name.clone(),
|
||||||
client: influxdb_client,
|
client: influxdb_client,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -167,6 +165,8 @@ impl TestInflux {
|
|||||||
|
|
||||||
sleep(Duration::from_secs(1)).await;
|
sleep(Duration::from_secs(1)).await;
|
||||||
|
|
||||||
|
// TODO: try to use the influx client
|
||||||
|
|
||||||
info!(?test_influx, elapsed=%start.elapsed().as_secs_f32(), "influx post is open. Migrating now...");
|
info!(?test_influx, elapsed=%start.elapsed().as_secs_f32(), "influx post is open. Migrating now...");
|
||||||
|
|
||||||
test_influx
|
test_influx
|
||||||
|
@ -3,15 +3,13 @@ mod common;
|
|||||||
use crate::common::create_provider_with_rpc_key::create_provider_for_user;
|
use crate::common::create_provider_with_rpc_key::create_provider_for_user;
|
||||||
use crate::common::influx::TestInflux;
|
use crate::common::influx::TestInflux;
|
||||||
use crate::common::rpc_key::user_get_first_rpc_key;
|
use crate::common::rpc_key::user_get_first_rpc_key;
|
||||||
use crate::common::stats_accounting::{
|
use crate::common::stats_accounting::{user_get_influx_stats_aggregated, user_get_mysql_stats};
|
||||||
user_get_influx_stats_aggregated, user_get_influx_stats_detailed, user_get_mysql_stats,
|
|
||||||
};
|
|
||||||
use crate::common::user_balance::user_get_balance;
|
use crate::common::user_balance::user_get_balance;
|
||||||
use crate::common::{
|
use crate::common::{
|
||||||
admin_increases_balance::admin_increase_balance, anvil::TestAnvil,
|
admin_increases_balance::admin_increase_balance, anvil::TestAnvil,
|
||||||
create_admin::create_user_as_admin, create_user::create_user, mysql::TestMysql, TestApp,
|
create_admin::create_user_as_admin, create_user::create_user, mysql::TestMysql, TestApp,
|
||||||
};
|
};
|
||||||
use futures::future::{join_all, try_join_all};
|
use futures::future::try_join_all;
|
||||||
use rust_decimal::Decimal;
|
use rust_decimal::Decimal;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
@ -150,6 +148,11 @@ async fn test_multiple_proxies_stats_add_up() {
|
|||||||
let influx_stats = influx_aggregate_stats["result"].get(0).unwrap();
|
let influx_stats = influx_aggregate_stats["result"].get(0).unwrap();
|
||||||
let mysql_stats = mysql_stats["stats"].get(0).unwrap();
|
let mysql_stats = mysql_stats["stats"].get(0).unwrap();
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
user_0_balance_post.total_frontend_requests,
|
||||||
|
number_requests * 3
|
||||||
|
);
|
||||||
|
|
||||||
info!("Influx and mysql stats are");
|
info!("Influx and mysql stats are");
|
||||||
info!(?influx_stats);
|
info!(?influx_stats);
|
||||||
info!(?mysql_stats);
|
info!(?mysql_stats);
|
||||||
|
Loading…
Reference in New Issue
Block a user