diff --git a/ext/libdatadog_api/process_discovery.c b/ext/libdatadog_api/process_discovery.c index c2a56597f57..486a8f97e92 100644 --- a/ext/libdatadog_api/process_discovery.c +++ b/ext/libdatadog_api/process_discovery.c @@ -42,7 +42,6 @@ static VALUE _native_store_tracer_metadata(int argc, VALUE *argv, VALUE self) { rb_scan_args(argc, argv, "1:", &logger, &options); if (options == Qnil) options = rb_hash_new(); - VALUE schema_version = rb_hash_fetch(options, ID2SYM(rb_intern("schema_version"))); VALUE runtime_id = rb_hash_fetch(options, ID2SYM(rb_intern("runtime_id"))); VALUE tracer_language = rb_hash_fetch(options, ID2SYM(rb_intern("tracer_language"))); VALUE tracer_version = rb_hash_fetch(options, ID2SYM(rb_intern("tracer_version"))); @@ -51,7 +50,6 @@ static VALUE _native_store_tracer_metadata(int argc, VALUE *argv, VALUE self) { VALUE service_env = rb_hash_fetch(options, ID2SYM(rb_intern("service_env"))); VALUE service_version = rb_hash_fetch(options, ID2SYM(rb_intern("service_version"))); - ENFORCE_TYPE(schema_version, T_FIXNUM); ENFORCE_TYPE(runtime_id, T_STRING); ENFORCE_TYPE(tracer_language, T_STRING); ENFORCE_TYPE(tracer_version, T_STRING); @@ -60,16 +58,18 @@ static VALUE _native_store_tracer_metadata(int argc, VALUE *argv, VALUE self) { ENFORCE_TYPE(service_env, T_STRING); ENFORCE_TYPE(service_version, T_STRING); - ddog_Result_TracerMemfdHandle result = ddog_store_tracer_metadata( - (uint8_t) NUM2UINT(schema_version), - char_slice_from_ruby_string(runtime_id), - char_slice_from_ruby_string(tracer_language), - char_slice_from_ruby_string(tracer_version), - char_slice_from_ruby_string(hostname), - char_slice_from_ruby_string(service_name), - char_slice_from_ruby_string(service_env), - char_slice_from_ruby_string(service_version) - ); + void* builder = ddog_tracer_metadata_new(); + + ddog_tracer_metadata_set(builder, DDOG_METADATA_KIND_RUNTIME_ID, char_slice_from_ruby_string(runtime_id)); + ddog_tracer_metadata_set(builder, DDOG_METADATA_KIND_TRACER_LANGUAGE, char_slice_from_ruby_string(tracer_language)); + ddog_tracer_metadata_set(builder, DDOG_METADATA_KIND_TRACER_VERSION, char_slice_from_ruby_string(tracer_version)); + ddog_tracer_metadata_set(builder, DDOG_METADATA_KIND_HOSTNAME, char_slice_from_ruby_string(hostname)); + ddog_tracer_metadata_set(builder, DDOG_METADATA_KIND_SERVICE_NAME, char_slice_from_ruby_string(service_name)); + ddog_tracer_metadata_set(builder, DDOG_METADATA_KIND_SERVICE_ENVIRONMENT, char_slice_from_ruby_string(service_env)); + ddog_tracer_metadata_set(builder, DDOG_METADATA_KIND_SERVICE_VERSION, char_slice_from_ruby_string(service_version)); + + ddog_Result_TracerMemfdHandle result = ddog_tracer_metadata_store(builder); + ddog_tracer_metadata_free(builder); if (result.tag == DDOG_RESULT_TRACER_MEMFD_HANDLE_ERR_TRACER_MEMFD_HANDLE) { rb_funcall(logger, rb_intern("debug"), 1, rb_sprintf("Failed to store the tracer configuration in a memory file descriptor: %"PRIsVALUE, get_error_details_and_drop(&result.err))); diff --git a/lib/datadog/core/process_discovery.rb b/lib/datadog/core/process_discovery.rb index 743d0cf83a5..4dc32c50f92 100644 --- a/lib/datadog/core/process_discovery.rb +++ b/lib/datadog/core/process_discovery.rb @@ -37,7 +37,6 @@ def shutdown! # In the C method exposed by ddcommon, memfd_create replaces empty strings by None for these fields. def get_metadata(settings) { - schema_version: 1, runtime_id: Core::Environment::Identity.id, tracer_language: Core::Environment::Identity.lang, tracer_version: Core::Environment::Identity.gem_datadog_version_semver2, diff --git a/sig/datadog/core/process_discovery.rbs b/sig/datadog/core/process_discovery.rbs index e10c2e8b404..e9b6ad620a2 100644 --- a/sig/datadog/core/process_discovery.rbs +++ b/sig/datadog/core/process_discovery.rbs @@ -7,7 +7,6 @@ module Datadog def self._native_store_tracer_metadata: ( Datadog::Core::Logger logger, - schema_version: Integer, runtime_id: String, tracer_language: String, tracer_version: String, @@ -26,7 +25,6 @@ module Datadog def self.shutdown!: () -> void def self.get_metadata: (Datadog::Core::Configuration::Settings settings) -> { - schema_version: Integer, runtime_id: String, tracer_language: String, tracer_version: String, diff --git a/spec/datadog/core/process_discovery_spec.rb b/spec/datadog/core/process_discovery_spec.rb index 5a0c4bd545f..83e9c919ee4 100644 --- a/spec/datadog/core/process_discovery_spec.rb +++ b/spec/datadog/core/process_discovery_spec.rb @@ -49,7 +49,6 @@ expect(content).to eq( { - 'schema_version' => 1, 'runtime_id' => Datadog::Core::Environment::Identity.id, 'tracer_language' => Datadog::Core::Environment::Identity.lang, 'tracer_version' => Datadog::Core::Environment::Identity.gem_datadog_version_semver2, @@ -79,7 +78,6 @@ # Thus not appearing in the content. expect(content).to eq( { - 'schema_version' => 1, 'runtime_id' => Datadog::Core::Environment::Identity.id, 'tracer_language' => Datadog::Core::Environment::Identity.lang, 'tracer_version' => Datadog::Core::Environment::Identity.gem_datadog_version_semver2, @@ -107,7 +105,6 @@ expect(described_class).to have_received(:publish) expect(content).to eq( { - 'schema_version' => 1, 'runtime_id' => Datadog::Core::Environment::Identity.id, 'tracer_language' => Datadog::Core::Environment::Identity.lang, 'tracer_version' => Datadog::Core::Environment::Identity.gem_datadog_version_semver2,