Staging instance, all changes can be removed at any time

Skip to content

Use 'tracing' framework for logs and Sentry breadcrumbs

vlorentz requested to merge sentry-tracing into master

This allows linking errors to previous log events that happened. For example, if I add this to the code to the Traverse method:

if request.get_ref().src == ["swh:1:rev:57012c57536f8814dec92e74197ee96c3498d24e"] {
    use tokio::time::{sleep, Duration};
    sleep(Duration::from_millis(10000)).await;
    tracing::error!("oh no traverse");
}

and send two requests to traverse, first from swh:1:rev:57012c57536f8814dec92e74197ee96c3498d24e, then from swh:1:rev:0000000000000000000000000000000000000003, this will display this in logs:

2024-09-17T09:28:33.157323Z  INFO request{id=0}:traverse: swh_graph_grpc_server: TraversalRequest { src: ["swh:1:rev:57012c57536f8814dec92e74197ee96c3498d24e"], direction: Forward, edges: None, max_edges: Some(1000000), min_depth: None, max_depth: None, return_nodes: None, mask: Some(FieldMask { paths: ["swhid"] }), max_matching_nodes: None }
2024-09-17T09:28:35.022307Z  INFO request{id=1}:traverse: swh_graph_grpc_server: TraversalRequest { src: ["swh:1:rev:0000000000000000000000000000000000000003"], direction: Forward, edges: None, max_edges: Some(1000000), min_depth: None, max_depth: None, return_nodes: None, mask: Some(FieldMask { paths: ["swhid"] }), max_matching_nodes: None }
2024-09-17T09:28:35.022778Z  INFO request{id=1}: swh_graph_grpc_server: 200 OK - http://localhost:50091/swh.graph.TraversalService/Traverse - response: 333.458µs - streaming: 325.639µs
2024-09-17T09:28:43.158810Z ERROR request{id=0}:traverse: swh_graph_grpc_server: oh no traverse
2024-09-17T09:28:43.159228Z  INFO request{id=0}:traverse: swh_graph_grpc_server: error=status: NotFound, message: "Unknown SWHID: swh:1:rev:57012c57536f8814dec92e74197ee96c3498d24e", details: [], metadata: MetadataMap { headers: {} }
2024-09-17T09:28:43.159698Z  INFO request{id=0}: swh_graph_grpc_server: 200 OK - http://localhost:50091/swh.graph.TraversalService/Traverse - response: 10.002514102s - streaming: 5.486µs

and Sentry will correctly show only TraversalRequest { src: ["swh:1:rev:57012c57536f8814dec92e74197ee96c3498d24e"], ... } in the breadcrumbs of the error, not TraversalRequest { src: ["swh:1:rev:0000000000000000000000000000000000000003"], ... }, like this:

Screenshot_2024-09-17_at_11-35-48_oh_no_traverse___swh___vlorentz-graph-test

Merge request reports

Loading