@@ -31,7 +31,6 @@ internal static StoreMetadataResult StoreTracerMetadata(TracerSettings tracerSet
3131 try
3232 {
3333 var result = StoreTracerMetadata (
34- 1 ,
3534 Tracer . RuntimeId ,
3635 TracerConstants . Language ,
3736 TracerConstants . ThreePartVersion ,
@@ -66,7 +65,6 @@ internal static StoreMetadataResult StoreTracerMetadata(TracerSettings tracerSet
6665 }
6766
6867 private static TracerMemfdHandleResult StoreTracerMetadata (
69- byte schemaVersion ,
7068 string runtimeId ,
7169 string tracerLanguage ,
7270 string tracerVersion ,
@@ -75,14 +73,32 @@ private static TracerMemfdHandleResult StoreTracerMetadata(
7573 string ? serviceEnv ,
7674 string ? serviceVersion )
7775 {
78- using var runtimeIdCharSlice = new CharSlice ( runtimeId ) ;
79- using var tracerLanguageCharSlice = new CharSlice ( tracerLanguage ) ;
80- using var tracerVersionCharSlice = new CharSlice ( tracerVersion ) ;
81- using var hostnameCharSlice = new CharSlice ( hostname ) ;
82- using var serviceNameCharSlice = new CharSlice ( serviceName ) ;
83- using var serviceEnvCharSlice = new CharSlice ( serviceEnv ) ;
84- using var serviceVersionCharSlice = new CharSlice ( serviceVersion ) ;
76+ IntPtr ptr = IntPtr . Zero ;
77+ try
78+ {
79+ ptr = NativeInterop . LibraryConfig . TracerMetadataNew ( ) ;
80+ SetMetadata ( ptr , MetadataKind . RuntimeId , runtimeId ) ;
81+ SetMetadata ( ptr , MetadataKind . TracerLanguage , tracerLanguage ) ;
82+ SetMetadata ( ptr , MetadataKind . TracerVersion , tracerVersion ) ;
83+ SetMetadata ( ptr , MetadataKind . Hostname , hostname ) ;
84+ SetMetadata ( ptr , MetadataKind . ServiceName , serviceName ) ;
85+ SetMetadata ( ptr , MetadataKind . ServiceEnvironment , serviceEnv ) ;
86+ SetMetadata ( ptr , MetadataKind . ServiceVersion , serviceVersion ) ;
8587
86- return NativeInterop . LibraryConfig . StoreTracerMetadata ( schemaVersion , runtimeIdCharSlice , tracerLanguageCharSlice , tracerVersionCharSlice , hostnameCharSlice , serviceNameCharSlice , serviceEnvCharSlice , serviceVersionCharSlice ) ;
88+ return NativeInterop . LibraryConfig . StoreTracerMetadata ( ptr ) ;
89+ }
90+ finally
91+ {
92+ if ( ptr != IntPtr . Zero )
93+ {
94+ NativeInterop . LibraryConfig . TracerMetadataFree ( ptr ) ;
95+ }
96+ }
97+
98+ void SetMetadata ( IntPtr ptr , MetadataKind kind , string ? value )
99+ {
100+ using var valueCharSlice = new CString ( value ) ;
101+ NativeInterop . LibraryConfig . TracerMetadataSet ( ptr , kind , valueCharSlice ) ;
102+ }
87103 }
88104}
0 commit comments