libdd_trace_utils/
tracer_metadata.rs1use crate::tracer_header_tags::{TracerGenericTags, TracerHeaderTags};
5use http::HeaderMap;
6
7#[derive(Clone, Default, Debug)]
8pub struct TracerMetadata {
9 pub hostname: String,
10 pub env: String,
11 pub app_version: String,
12 pub runtime_id: String,
13 pub service: String,
14 pub tracer_version: String,
15 pub language: String,
16 pub language_version: String,
17 pub language_interpreter: String,
18 pub language_interpreter_vendor: String,
19 pub container_id: String,
20 pub git_commit_sha: String,
21 pub process_tags: String,
22 pub client_computed_stats: bool,
23 pub client_computed_top_level: bool,
24}
25
26impl<'a> From<&'a TracerMetadata> for TracerHeaderTags<'a> {
27 fn from(tags: &'a TracerMetadata) -> TracerHeaderTags<'a> {
28 TracerHeaderTags::<'_> {
29 lang: &tags.language,
30 lang_version: &tags.language_version,
31 tracer_version: &tags.tracer_version,
32 lang_interpreter: &tags.language_interpreter,
33 lang_vendor: &tags.language_interpreter_vendor,
34 container_id: &tags.container_id,
35 generic: TracerGenericTags {
36 client_computed_stats: tags.client_computed_stats,
37 client_computed_top_level: tags.client_computed_top_level,
38 ..Default::default()
39 },
40 }
41 }
42}
43
44impl<'a> From<&'a TracerMetadata> for HeaderMap {
45 fn from(tags: &'a TracerMetadata) -> HeaderMap {
46 TracerHeaderTags::from(tags).into()
47 }
48}