Slide 19
Slide 19 text
Tracingの実装例
関数の処理時間を自動で記録する仕組み
use tracing::{instrument, info};
use std::collections::HashMap;
#[instrument(
skip(store), // 大きなデータはスキップ
fields(
user_id = %params.get("user_id").unwrap_or(&String::from("anonymous")),
method = "GET"
)
)]
pub async fn get_questions(
params: HashMap,
store: Store,
) -> Result {
info!("querying questions");
// 処理...
}
// {"level":"INFO","span":{"name":"get_questions","user_id":"42"},"message":"querying questions"}
// {"level":"INFO","span":{"name":"get_questions"},"message":"close","elapsed_ms":333}
💡 関数の開始/終了時刻と処理時間が自動記録される!
19