исправить: закрыть ревью сквозной корреляции
CI / Rust Checks (pull_request) Successful in 8m33s
CI / UI Checks (pull_request) Successful in 5s
CI / Frontend E2E (pull_request) Successful in 6m51s
CI / Community Image Smoke (pull_request) Failing after 9m10s
CI / Deploy (pull_request) Has been skipped

This commit is contained in:
2026-07-31 02:37:45 +03:00
parent 0e8f1ca03a
commit 9a7d60593a
28 changed files with 667 additions and 98 deletions
+7 -12
View File
@@ -63,24 +63,13 @@ impl Stage {
),
}
}
pub fn db_span(self, operation: DbOperation) -> Option<Span> {
if self != Self::DbQuery {
return None;
}
let span = self.span();
span.record("db.operation", operation.as_str());
Some(span)
}
}
pub async fn observe_db_query<T, E>(
operation: DbOperation,
future: impl Future<Output = Result<T, E>>,
) -> Result<T, E> {
let span = Stage::DbQuery
.db_span(operation)
.expect("database operation requires db.query stage");
let span = operation.span();
let result = future.instrument(span.clone()).await;
match &result {
Ok(_) => StageOutcome::Success.record(&span),
@@ -182,6 +171,12 @@ pub enum DbOperation {
}
impl DbOperation {
pub fn span(self) -> Span {
let span = Stage::DbQuery.span();
span.record("db.operation", self.as_str());
span
}
pub const fn as_str(self) -> &'static str {
match self {
Self::MachineAccessRead => "machine_access.read",
+3 -9
View File
@@ -15,9 +15,7 @@ fn stage_names_and_attributes_are_closed() {
ErrorCategory::Mapping.record(&span);
drop(span);
let db_span = Stage::DbQuery
.db_span(DbOperation::InvocationHistoryWrite)
.expect("db stage accepts a db operation");
let db_span = DbOperation::InvocationHistoryWrite.span();
StageOutcome::Error.record(&db_span);
drop(db_span);
});
@@ -32,12 +30,8 @@ fn stage_names_and_attributes_are_closed() {
}
#[test]
fn non_database_stage_rejects_database_attributes() {
assert!(
Stage::RuntimeExecute
.db_span(DbOperation::CatalogLoad)
.is_none()
);
fn database_operation_names_are_closed() {
assert_eq!(DbOperation::CatalogLoad.as_str(), "catalog.load");
}
#[derive(Clone)]