opentelemetry_zpages/trace/
span_processor.rs1use crate::trace::TracezMessage;
8use async_channel::Sender;
9use opentelemetry::Context;
10use opentelemetry_sdk::{
11 error::OTelSdkResult,
12 trace::SpanData,
13 trace::{Span, SpanProcessor},
14};
15use std::fmt::Formatter;
16
17#[deprecated(note = "This crate is deprecated and no longer maintained.")]
23pub struct ZPagesSpanProcessor {
24 tx: Sender<TracezMessage>,
25}
26
27impl std::fmt::Debug for ZPagesSpanProcessor {
28 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
29 f.write_str("ZPageProcessor")
30 }
31}
32
33impl ZPagesSpanProcessor {
34 pub fn new(tx: Sender<TracezMessage>) -> ZPagesSpanProcessor {
36 ZPagesSpanProcessor { tx }
37 }
38}
39
40impl SpanProcessor for ZPagesSpanProcessor {
41 fn on_start(&self, span: &mut Span, _cx: &Context) {
42 if let Some(data) = span.exported_data() {
44 let _ = self.tx.try_send(TracezMessage::SampleSpan(data));
45 }
46 }
47
48 fn on_end(&self, span: SpanData) {
49 let _ = self.tx.try_send(TracezMessage::SpanEnd(span));
51 }
52
53 fn force_flush(&self) -> OTelSdkResult {
54 Ok(())
56 }
57
58 fn shutdown(&self) -> OTelSdkResult {
59 Ok(())
61 }
62}