@@ -16,7 +16,6 @@ use libdd_common::Endpoint;
1616use libdd_shared_runtime:: Worker ;
1717use libdd_trace_protobuf:: pb;
1818use libdd_trace_utils:: send_with_retry:: { send_with_retry, RetryStrategy } ;
19- use libdd_trace_utils:: trace_utils:: TracerHeaderTags ;
2019use std:: fmt:: Debug ;
2120use tracing:: error;
2221
@@ -30,25 +29,23 @@ pub struct StatsMetadata {
3029 pub app_version : String ,
3130 pub runtime_id : String ,
3231 pub language : String ,
33- pub lang_version : String ,
34- pub lang_interpreter : String ,
35- pub lang_vendor : String ,
3632 pub tracer_version : String ,
3733 pub git_commit_sha : String ,
3834 pub process_tags : String ,
3935 pub service : String ,
4036}
4137
42- impl < ' a > From < & ' a StatsMetadata > for TracerHeaderTags < ' a > {
43- fn from ( m : & ' a StatsMetadata ) -> TracerHeaderTags < ' a > {
44- TracerHeaderTags {
45- lang : & m . language ,
46- lang_version : & m . lang_version ,
47- lang_interpreter : & m . lang_interpreter ,
48- lang_vendor : & m . lang_vendor ,
49- tracer_version : & m . tracer_version ,
50- .. Default :: default ( )
38+ impl StatsMetadata {
39+ /// Build the HTTP headers accepted by the agent's `/v0.6/stats` endpoint.
40+ pub fn to_stats_headers ( & self ) -> http :: HeaderMap {
41+ let mut map = http :: HeaderMap :: new ( ) ;
42+ if let Ok ( v ) = self . language . parse ( ) {
43+ map . insert ( "Datadog-Tracer-Language" , v ) ;
44+ }
45+ if let Ok ( v ) = self . tracer_version . parse ( ) {
46+ map . insert ( "Datadog-Tracer-Version" , v ) ;
5147 }
48+ map
5249 }
5350}
5451
@@ -116,8 +113,7 @@ impl<H: HttpClientTrait, C: FlushableConcentrator> StatsExporter<H, C> {
116113 }
117114 let body = rmp_serde:: encode:: to_vec_named ( & payload) ?;
118115
119- let mut headers: http:: HeaderMap = TracerHeaderTags :: from ( & self . meta ) . into ( ) ;
120-
116+ let mut headers = self . meta . to_stats_headers ( ) ;
121117 headers. insert (
122118 http:: header:: CONTENT_TYPE ,
123119 libdd_common:: header:: APPLICATION_MSGPACK ,
0 commit comments