Add SQLx operation tracing (#5223)

* wip: vendor sqlx-tracing

* (compiles) standardize pg types used

* more standardization

* general log message improvements

* wip: improve sqlx-tracing architecture

* unify sqlx::Executor type

* wip: try fix sqlx tracing

* wip: sqlx-tracing compiles

* so close

* it compiles

* fix ci
This commit is contained in:
aecsocket
2026-01-28 13:38:57 +00:00
committed by GitHub
parent 7cb7e881fa
commit e57c15b3ce
146 changed files with 7320 additions and 801 deletions

View File

@@ -1,6 +1,7 @@
use crate::database::models::notification_item::NotificationBuilder;
use crate::database::models::payouts_values_notifications;
use crate::database::redis::RedisPool;
use crate::database::{PgPool, PgTransaction};
use crate::models::payouts::{
PayoutDecimal, PayoutInterval, PayoutMethod, PayoutMethodType,
TremendousForexResponse,
@@ -26,7 +27,6 @@ use rust_decimal::prelude::ToPrimitive;
use serde::de::DeserializeOwned;
use serde::{Deserialize, Serialize};
use serde_json::Value;
use sqlx::PgPool;
use sqlx::postgres::PgQueryResult;
use std::collections::HashMap;
use tokio::sync::RwLock;
@@ -1023,7 +1023,7 @@ pub async fn process_payout(
.map(|x| x.to_string())
.collect::<Vec<String>>(),
)
.fetch(&mut *transaction)
.fetch(&mut transaction)
.try_fold(DashMap::new(), |acc: DashMap<i64, HashMap<i64, Decimal>>, r| {
acc.entry(r.id)
.or_default()
@@ -1046,7 +1046,7 @@ pub async fn process_payout(
.map(|x| x.to_string())
.collect::<Vec<String>>(),
)
.fetch(&mut *transaction)
.fetch(&mut transaction)
.try_fold(
DashMap::new(),
|acc: DashMap<i64, HashMap<i64, Decimal>>, r| {
@@ -1193,7 +1193,7 @@ pub async fn process_payout(
&insert_starts[..],
&insert_availables[..]
)
.execute(&mut *transaction)
.execute(&mut transaction)
.await?;
transaction.commit().await?;
@@ -1208,7 +1208,7 @@ pub async fn insert_payouts(
insert_payouts: Vec<Decimal>,
insert_starts: Vec<DateTime<Utc>>,
insert_availables: Vec<DateTime<Utc>>,
transaction: &mut sqlx::Transaction<'_, sqlx::Postgres>,
transaction: &mut PgTransaction<'_>,
) -> sqlx::Result<PgQueryResult> {
sqlx::query!(
"
@@ -1221,7 +1221,7 @@ pub async fn insert_payouts(
&insert_starts[..],
&insert_availables[..],
)
.execute(&mut **transaction)
.execute(&mut *transaction)
.await
}
@@ -1234,11 +1234,11 @@ pub async fn index_payouts_notifications(
let mut transaction = pool.begin().await?;
payouts_values_notifications::synchronize_future_payout_values(
&mut *transaction,
&mut transaction,
200,
)
.await?;
let items = payouts_values_notifications::PayoutsValuesNotification::unnotified_users_with_available_payouts_with_limit(&mut *transaction, 200).await?;
let items = payouts_values_notifications::PayoutsValuesNotification::unnotified_users_with_available_payouts_with_limit(&mut transaction, 200).await?;
let payout_ref_ids = items.iter().map(|x| x.id).collect::<Vec<_>>();
let dates_available =
@@ -1254,7 +1254,7 @@ pub async fn index_payouts_notifications(
.await?;
payouts_values_notifications::PayoutsValuesNotification::set_notified_many(
&payout_ref_ids,
&mut *transaction,
&mut transaction,
)
.await?;
@@ -1320,7 +1320,7 @@ pub async fn insert_bank_balances_and_webhook(
&insert_pending[..],
&insert_recorded[..],
)
.fetch_one(&mut *transaction)
.fetch_one(&mut transaction)
.await?;
if inserted {