@@ -440,9 +440,6 @@ Java_com_datadoghq_profiler_JVMAccess_healthCheck0(JNIEnv *env,
440440 return true ;
441441}
442442
443- // Static variable to track the current published context
444- static otel_process_ctx_result* current_published_context = nullptr ;
445-
446443extern " C" DLLEXPORT void JNICALL
447444Java_com_datadoghq_profiler_OTelContext_setProcessCtx0 (JNIEnv *env,
448445 jclass unused,
@@ -460,16 +457,19 @@ Java_com_datadoghq_profiler_OTelContext_setProcessCtx0(JNIEnv *env,
460457 JniString version_str (env, version);
461458 JniString tracer_version_str (env, tracer_version);
462459
460+ const char *host_name_attrs[] = {" host.name" , hostname_str.c_str (), NULL };
461+
463462 otel_process_ctx_data data = {
464- .deployment_environment_name = const_cast <char *>(env_str.c_str ()),
465- .host_name = const_cast <char *>(hostname_str.c_str ()),
466- .service_instance_id = const_cast <char *>(runtime_id_str.c_str ()),
467- .service_name = const_cast <char *>(service_str.c_str ()),
468- .service_version = const_cast <char *>(version_str.c_str ()),
469- .telemetry_sdk_language = const_cast <char *>(" java" ),
470- .telemetry_sdk_version = const_cast <char *>(tracer_version_str.c_str ()),
471- .telemetry_sdk_name = const_cast <char *>(" dd-trace-java" ),
472- .resources = NULL // TODO: Arbitrary tags not supported yet for Java
463+ .deployment_environment_name = env_str.c_str (),
464+ .service_instance_id = runtime_id_str.c_str (),
465+ .service_name = service_str.c_str (),
466+ .service_version = version_str.c_str (),
467+ .telemetry_sdk_language = " java" ,
468+ .telemetry_sdk_version = tracer_version_str.c_str (),
469+ .telemetry_sdk_name = " dd-trace-java" ,
470+ .resource_attributes = host_name_attrs,
471+ .extra_attributes = NULL ,
472+ .thread_ctx_config = NULL
473473 };
474474
475475 otel_process_ctx_result result = otel_process_ctx_publish (&data);
@@ -491,8 +491,6 @@ Java_com_datadoghq_profiler_OTelContext_readProcessCtx0(JNIEnv *env, jclass unus
491491 // Convert C strings to Java strings
492492 jstring jDeploymentEnvironmentName = result.data .deployment_environment_name ?
493493 env->NewStringUTF (result.data .deployment_environment_name ) : nullptr ;
494- jstring jHostName = result.data .host_name ?
495- env->NewStringUTF (result.data .host_name ) : nullptr ;
496494 jstring jServiceInstanceId = result.data .service_instance_id ?
497495 env->NewStringUTF (result.data .service_instance_id ) : nullptr ;
498496 jstring jServiceName = result.data .service_name ?
@@ -505,7 +503,17 @@ Java_com_datadoghq_profiler_OTelContext_readProcessCtx0(JNIEnv *env, jclass unus
505503 env->NewStringUTF (result.data .telemetry_sdk_version ) : nullptr ;
506504 jstring jTelemetrySdkName = result.data .telemetry_sdk_name ?
507505 env->NewStringUTF (result.data .telemetry_sdk_name ) : nullptr ;
508- // TODO: result.data.resources not supported yet for Java
506+
507+ // Extract host.name from resource_attributes
508+ jstring jHostName = nullptr ;
509+ if (result.data .resource_attributes != NULL ) {
510+ for (int i = 0 ; result.data .resource_attributes [i] != NULL ; i += 2 ) {
511+ if (strcmp (result.data .resource_attributes [i], " host.name" ) == 0 && result.data .resource_attributes [i + 1 ] != NULL ) {
512+ jHostName = env->NewStringUTF (result.data .resource_attributes [i + 1 ]);
513+ break ;
514+ }
515+ }
516+ }
509517
510518 otel_process_ctx_read_drop (&result);
511519
0 commit comments