Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion ext/otel_config.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@ static bool ddtrace_conf_otel_resource_attributes_special(const char *tag, int l
}

bool ddtrace_conf_otel_resource_attributes_env(zai_env_buffer *buf, bool pre_rinit) {
return ddtrace_conf_otel_resource_attributes_special(ZEND_STRL("deployment.environment"), buf, pre_rinit);
return ddtrace_conf_otel_resource_attributes_special(ZEND_STRL("deployment.environment.name"), buf, pre_rinit)
|| ddtrace_conf_otel_resource_attributes_special(ZEND_STRL("deployment.environment"), buf, pre_rinit);
}

bool ddtrace_conf_otel_resource_attributes_version(zai_env_buffer *buf, bool pre_rinit) {
Expand Down Expand Up @@ -124,13 +125,20 @@ bool ddtrace_conf_otel_resource_attributes_tags(zai_env_buffer *buf, bool pre_ri
++cur;
}
key_start = cur + 1;
if (key_end - key == strlen("deployment.environment.name") && memcmp(key, ZEND_STRL("deployment.environment.name")) == 0) {
--cur;
continue;
}
if (key_end - key == strlen("deployment.environment") && memcmp(key, ZEND_STRL("deployment.environment")) == 0) {
--cur;
continue;
}
if (key_end - key == strlen("service.name") && memcmp(key, ZEND_STRL("service.name")) == 0) {
--cur;
continue;
}
if (key_end - key == strlen("service.version") && memcmp(key, ZEND_STRL("service.version")) == 0) {
--cur;
continue;
}
memmove(out, key, cur - key);
Expand Down
18 changes: 18 additions & 0 deletions tests/ext/otel_config_deployment_environment_name.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
--TEST--
Test stable OpenTelemetry deployment environment config remapping
--ENV--
OTEL_RESOURCE_ATTRIBUTES=foo=bar,deployment.environment.name=stable,service.name=service,xyz=abc,service.version=1.2.3,baz=qux
--FILE--
<?php

var_dump(ini_get("datadog.env"));
var_dump(ini_get("datadog.service"));
var_dump(ini_get("datadog.version"));
var_dump(ini_get("datadog.tags"));

?>
--EXPECT--
string(6) "stable"
string(7) "service"
string(5) "1.2.3"
string(23) "foo:bar,xyz:abc,baz:qux"
15 changes: 15 additions & 0 deletions tests/ext/otel_config_deployment_environment_name_dd_env.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
--TEST--
Test DD_ENV takes precedence over OpenTelemetry deployment environment attributes
--ENV--
DD_ENV=datadog
OTEL_RESOURCE_ATTRIBUTES=foo=bar,deployment.environment=legacy,deployment.environment.name=stable,baz=qux
--FILE--
<?php

var_dump(ini_get("datadog.env"));
var_dump(ini_get("datadog.tags"));

?>
--EXPECT--
string(7) "datadog"
string(15) "foo:bar,baz:qux"
14 changes: 14 additions & 0 deletions tests/ext/otel_config_deployment_environment_name_last.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
--TEST--
Test stable OpenTelemetry deployment environment as the final resource attribute
--ENV--
OTEL_RESOURCE_ATTRIBUTES=foo=bar,deployment.environment.name=stable
--FILE--
<?php

var_dump(ini_get("datadog.env"));
var_dump(ini_get("datadog.tags"));

?>
--EXPECT--
string(6) "stable"
string(7) "foo:bar"
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
--TEST--
Test stable OpenTelemetry deployment environment takes precedence when listed after legacy
--ENV--
OTEL_RESOURCE_ATTRIBUTES=foo=bar,deployment.environment=legacy,deployment.environment.name=stable,xyz=abc
--FILE--
<?php

var_dump(ini_get("datadog.env"));
var_dump(ini_get("datadog.tags"));

?>
--EXPECT--
string(6) "stable"
string(15) "foo:bar,xyz:abc"
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
--TEST--
Test stable OpenTelemetry deployment environment takes precedence when listed first
--ENV--
OTEL_RESOURCE_ATTRIBUTES=foo=bar,deployment.environment.name=stable,deployment.environment=legacy,xyz=abc
--FILE--
<?php

var_dump(ini_get("datadog.env"));
var_dump(ini_get("datadog.tags"));

?>
--EXPECT--
string(6) "stable"
string(15) "foo:bar,xyz:abc"
Loading