queriereries
This commit is contained in:
2
rust/Cargo.lock
generated
2
rust/Cargo.lock
generated
@@ -1429,6 +1429,7 @@ version = "0.1.0"
|
||||
dependencies = [
|
||||
"axum",
|
||||
"axum-prometheus",
|
||||
"base64 0.21.2",
|
||||
"clap",
|
||||
"console-subscriber",
|
||||
"futures",
|
||||
@@ -1441,6 +1442,7 @@ dependencies = [
|
||||
"opentelemetry-jaeger",
|
||||
"serde",
|
||||
"serde_variant",
|
||||
"sha2",
|
||||
"sqlx",
|
||||
"time",
|
||||
"tokio",
|
||||
|
||||
@@ -117,3 +117,9 @@ version = "0.4"
|
||||
|
||||
[dependencies.metrics]
|
||||
version = "0.21"
|
||||
|
||||
[dependencies.sha2]
|
||||
version = "0.10"
|
||||
|
||||
[dependencies.base64]
|
||||
version = "0.21"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
use std::time;
|
||||
|
||||
use base64::Engine as _;
|
||||
use sha2::{Digest, Sha256};
|
||||
use tracing::Instrument;
|
||||
|
||||
use sqlx::sqlite::{SqliteConnectOptions, SqlitePoolOptions};
|
||||
@@ -48,10 +50,23 @@ pub async fn migrate(url: &str) -> Result<(), StartError> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn sqlx_query(query: &str, labels: &[(&'static str, String)]) {
|
||||
let query_id = {
|
||||
let mut hasher = Sha256::new();
|
||||
hasher.update(query);
|
||||
hasher.finalize()
|
||||
};
|
||||
let query_id = base64::engine::general_purpose::STANDARD.encode(query_id);
|
||||
let mut labels = Vec::from(labels);
|
||||
labels.push(("query_id", query_id));
|
||||
metrics::counter!("packager_database_queries_total", 1, &labels)
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! query_all {
|
||||
( $pool:expr, $struct_row:path, $struct_into:path, $query:expr, $( $args:tt )* ) => {
|
||||
async {
|
||||
crate::sqlite::sqlx_query($query, &[]);
|
||||
let result: Result<Vec<$struct_into>, Error> = sqlx::query_as!(
|
||||
$struct_row,
|
||||
$query,
|
||||
|
||||
Reference in New Issue
Block a user