Skip to content

Commit

Permalink
Respect the active service/env/version for metric tags
Browse files Browse the repository at this point in the history
Signed-off-by: Bob Weinand <bob.weinand@datadoghq.com>
  • Loading branch information
bwoebi committed Jul 5, 2024
1 parent aa31d0c commit f238cd4
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 8 deletions.
12 changes: 12 additions & 0 deletions ext/serializer.c
Original file line number Diff line number Diff line change
Expand Up @@ -852,6 +852,18 @@ zend_string *ddtrace_default_service_name(void) {
}
}

zend_string *ddtrace_active_service_name(void) {
ddtrace_span_data *span = ddtrace_active_span();
if (span) {
return ddtrace_convert_to_str(&span->property_service);
}
zend_string *ini_service = get_DD_SERVICE();
if (ZSTR_LEN(ini_service)) {
return zend_string_copy(ini_service);
}
return ddtrace_default_service_name();
}

void ddtrace_set_root_span_properties(ddtrace_root_span_data *span) {
ddtrace_update_root_id_properties(span);

Expand Down
1 change: 1 addition & 0 deletions ext/serializer.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ void ddtrace_set_root_span_properties(ddtrace_root_span_data *span);
void ddtrace_update_root_id_properties(ddtrace_root_span_data *span);
void ddtrace_inherit_span_properties(ddtrace_span_data *span, ddtrace_span_data *parent);
zend_string *ddtrace_default_service_name(void);
zend_string *ddtrace_active_service_name(void);

void ddtrace_initialize_span_sampling_limiter(void);
void ddtrace_shutdown_span_sampling_limiter(void);
Expand Down
19 changes: 16 additions & 3 deletions ext/sidecar.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include <components-rs/ddtrace.h>
#include "sidecar.h"
#include "telemetry.h"
#include "serializer.h"

ddog_SidecarTransport *ddtrace_sidecar;
ddog_Endpoint *ddtrace_endpoint;
Expand Down Expand Up @@ -136,15 +137,27 @@ static inline void ddtrace_sidecar_dogstatsd_push_tag(ddog_Vec_Tag *vec, ddog_Ch

static void ddtrace_sidecar_dogstatsd_push_tags(ddog_Vec_Tag *vec, zval *tags) {
// Global tags (https://github.com/DataDog/php-datadogstatsd/blob/0efdd1c38f6d3dd407efbb899ad1fd2e5cd18085/src/DogStatsd.php#L113-L125)
zend_string *env = get_DD_ENV();
ddtrace_span_data *span = ddtrace_active_span();
zend_string *env;
if (span) {
env = ddtrace_convert_to_str(&span->property_env);
} else {
env = get_DD_ENV();
}
if (ZSTR_LEN(env) > 0) {
ddtrace_sidecar_dogstatsd_push_tag(vec, DDOG_CHARSLICE_C("env"), dd_zend_string_to_CharSlice(env));
}
zend_string *service = get_DD_SERVICE();
zend_string *service = ddtrace_active_service_name();
if (ZSTR_LEN(service) > 0) {
ddtrace_sidecar_dogstatsd_push_tag(vec, DDOG_CHARSLICE_C("service"), dd_zend_string_to_CharSlice(service));
}
zend_string *version = get_DD_VERSION();
zend_string_release(service);
zend_string *version;
if (span) {
version = ddtrace_convert_to_str(&span->property_version);
} else {
version = get_DD_VERSION();
}
if (ZSTR_LEN(version) > 0) {
ddtrace_sidecar_dogstatsd_push_tag(vec, DDOG_CHARSLICE_C("version"), dd_zend_string_to_CharSlice(version));
}
Expand Down
10 changes: 5 additions & 5 deletions tests/ext/dogstatsd/metrics_over_udp.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ $server->close();

?>
--EXPECT--
counter-simple:42|c|#foo:bar,bar:true
gogogadget:21.4|g
my_disti:22.22|d|#distri:bution
my_histo:22.22|h|#histo:gram
set:7|s|#set:7
counter-simple:42|c|#service:metrics_over_udp.php,foo:bar,bar:true
gogogadget:21.4|g|#service:metrics_over_udp.php
my_disti:22.22|d|#service:metrics_over_udp.php,distri:bution
my_histo:22.22|h|#service:metrics_over_udp.php,histo:gram
set:7|s|#service:metrics_over_udp.php,set:7

0 comments on commit f238cd4

Please sign in to comment.