Skip to content
Open
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
16 changes: 16 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
stages:
- build
- tests
- shared-pipeline
- deploy
- ci-build

Expand All @@ -17,6 +18,7 @@ include:
- project: DataDog/apm-reliability/libdatadog-build
ref: 5826819695d93286569e70ed087ae6bf906ce2c3
file: templates/ci_authenticated_job.yml
- local: .gitlab/one-pipeline.locked.yml
- local: .gitlab/ci-images.yml

generate-templates:
Expand Down Expand Up @@ -95,3 +97,17 @@ package-trigger:
GIT_SUBMODULE_PATHS: libdatadog appsec/third_party/cpp-base64 appsec/third_party/libddwaf appsec/third_party/msgpack-c
NIGHTLY_BUILD: $NIGHTLY_BUILD
RELIABILITY_ENV_BRANCH: $RELIABILITY_ENV_BRANCH

validate_supported_configurations_v2_local_file:
extends: .validate_supported_configurations_v2_local_file
variables:
LOCAL_JSON_PATH: "metadata/supported-configurations.json"
BACKFILLED: "true"

update_central_configurations_version_range_v2:
extends: .update_central_configurations_version_range_v2
variables:
LOCAL_REPO_NAME: "dd-trace-php"
LOCAL_JSON_PATH: "metadata/supported-configurations.json"
LANGUAGE_NAME: "php"
MULTIPLE_RELEASE_LINES: "false"
13 changes: 13 additions & 0 deletions .gitlab/generate-shared.php
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,19 @@
- artifacts
when: "always"

"Config Verification Test":
tags: [ "arch:amd64" ]
stage: test
needs: []
image: "registry.ddbuild.io/images/mirror/datadog/dd-trace-ci:php-${PHP_MAJOR_MINOR}_bookworm-6"
script:
- bash tooling/generate-supported-configurations.sh
- if ! git diff --exit-code -- metadata/supported-configurations.json ext/configuration.h; then
echo "ERROR: @metadata/supported-configurations.json got out of sync with implemented configurations. Please run tooling/generate-supported-configurations.sh locally."
git --no-pager diff -- metadata/supported-configurations.json ext/configuration.h
exit 1
fi

<?php
foreach ($all_minor_major_targets as $major_minor):
foreach ($switch_php_versions as $switch_php_version):
Expand Down
3 changes: 1 addition & 2 deletions appsec/src/extension/configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,7 @@ extern bool runtime_config_first_init;
CONFIG(STRING, DD_ENV, "") \
CONFIG(STRING, DD_VERSION, "") \
CONFIG(BOOL, DD_REMOTE_CONFIG_ENABLED, "true") \
CONFIG(CUSTOM(uint32_t), DD_REMOTE_CONFIG_POLL_INTERVAL, "1000", .parser = _parse_uint32) \
CONFIG(STRING, DD_AGENT_HOST, "") \
CONFIG(STRING, DD_AGENT_HOST, "localhost") \
CONFIG(INT, DD_TRACE_AGENT_PORT, "0") \
CONFIG(INT, DD_APPSEC_MAX_BODY_BUFF_SIZE, "524288") \
CONFIG(STRING, DD_TRACE_AGENT_URL, "") \
Expand Down
2 changes: 1 addition & 1 deletion ext/auto_flush.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ char *ddtrace_agent_url(void) {
return zend_strndup(ZSTR_VAL(hostname), ZSTR_LEN(hostname));
}

if (ZSTR_LEN(hostname) > 0) {
if (ZSTR_LEN(hostname) > 0 && zai_config_memoized_entries[DDTRACE_CONFIG_DD_AGENT_HOST].name_index != ZAI_CONFIG_ORIGIN_DEFAULT) {
bool isIPv6 = memchr(ZSTR_VAL(hostname), ':', ZSTR_LEN(hostname));

int64_t port = get_global_DD_TRACE_AGENT_PORT();
Expand Down
26 changes: 13 additions & 13 deletions ext/configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ enum ddtrace_sampling_rules_format {
#define DD_TRACE_AGENT_FLUSH_INTERVAL_VAL 1001

#define DD_INTEGRATION_ANALYTICS_ENABLED_DEFAULT false
#define DD_INTEGRATION_ANALYTICS_SAMPLE_RATE_DEFAULT 1
#define DD_INTEGRATION_ANALYTICS_SAMPLE_RATE_DEFAULT 1.0

#if PHP_VERSION_ID >= 80300 || defined(_WIN32)
#define DD_SIDECAR_TRACE_SENDER_DEFAULT true
Expand Down Expand Up @@ -100,12 +100,12 @@ enum ddtrace_sampling_rules_format {
CONFIG(STRING, DD_TRACE_SOURCES_PATH, DD_DEFAULT_SOURCES_PATH, .ini_change = zai_config_system_ini_change) \
CONFIG(BOOL, DD_AUTOLOAD_NO_COMPILE, "false", .ini_change = zai_config_system_ini_change) \
CONFIG(STRING, DD_TRACE_AGENT_URL, "", .ini_change = zai_config_system_ini_change) \
CONFIG(STRING, DD_AGENT_HOST, "", .ini_change = zai_config_system_ini_change) \
CONFIG(STRING, DD_DOGSTATSD_URL, "") \
CONFIG(STRING, DD_DOGSTATSD_HOST, "") \
CONFIG(STRING, DD_AGENT_HOST, "localhost", .ini_change = zai_config_system_ini_change) \
CONFIG(STRING, DD_DOGSTATSD_URL, "http://localhost:8125") \
CONFIG(STRING, DD_DOGSTATSD_HOST, "localhost") \
CONFIG(STRING, DD_API_KEY, "", .ini_change = zai_config_system_ini_change) \
CONFIG(BOOL, DD_DISTRIBUTED_TRACING, "true") \
CONFIG(STRING, DD_DOGSTATSD_PORT, "8125") \
CONFIG(INT, DD_DOGSTATSD_PORT, "8125") \
CONFIG(STRING, DD_ENV, "", .ini_change = ddtrace_alter_dd_env, \
.env_config_fallback = ddtrace_conf_otel_resource_attributes_env) \
CONFIG(BOOL, DD_AUTOFINISH_SPANS, "false") \
Expand All @@ -114,10 +114,10 @@ enum ddtrace_sampling_rules_format {
CONFIG(STRING, DD_SERVICE, "", .ini_change = ddtrace_alter_dd_service, \
.env_config_fallback = ddtrace_conf_otel_service_name) \
CONFIG(MAP, DD_SERVICE_MAPPING, "") \
CONFIG(CUSTOM(MAP), DD_TAGS, "", \
CONFIG(CUSTOM(MAP), DD_TAGS, "", \
.env_config_fallback = ddtrace_conf_otel_resource_attributes_tags, \
.parser = dd_parse_tags) \
CONFIG(INT, DD_TRACE_AGENT_PORT, "0", .ini_change = zai_config_system_ini_change) \
.parser = dd_parse_tags) \
CONFIG(INT, DD_TRACE_AGENT_PORT, "8126", .ini_change = zai_config_system_ini_change) \
CONFIG(BOOL, DD_TRACE_ANALYTICS_ENABLED, "false") \
CONFIG(BOOL, DD_TRACE_APPEND_TRACE_IDS_TO_LOGS, "false") \
CONFIG(BOOL, DD_TRACE_AUTO_FLUSH_ENABLED, "false") /* true in CLI */ \
Expand Down Expand Up @@ -177,7 +177,7 @@ enum ddtrace_sampling_rules_format {
CONFIG(SET_LOWERCASE, DD_TRACE_PROPAGATION_STYLE_INJECT, "datadog,tracecontext,baggage") \
CONFIG(SET_LOWERCASE, DD_TRACE_PROPAGATION_STYLE, "datadog,tracecontext,baggage", \
.env_config_fallback = ddtrace_conf_otel_propagators) \
CONFIG(SET, DD_TRACE_BAGGAGE_TAG_KEYS, "user.id,session.id,account.id") \
CONFIG(SET, DD_TRACE_BAGGAGE_TAG_KEYS, "user.id, session.id, account.id") \
CONFIG(BOOL, DD_TRACE_IGNORE_AGENT_SAMPLING_RATES, "false", .ini_change = zai_config_system_ini_change) \
CONFIG(SET, DD_TRACE_TRACED_INTERNAL_FUNCTIONS, "") \
CONFIG(INT, DD_TRACE_AGENT_TIMEOUT, DD_CFG_EXPSTR(DD_TRACE_AGENT_TIMEOUT_VAL), \
Expand All @@ -190,7 +190,7 @@ enum ddtrace_sampling_rules_format {
CONFIG(BOOL, DD_TRACE_GENERATE_ROOT_SPAN, "true", .ini_change = ddtrace_span_alter_root_span_config) \
CONFIG(INT, DD_TRACE_SPANS_LIMIT, "1000") \
CONFIG(BOOL, DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED, "true") \
CONFIG(BOOL, DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED, "true") \
CONFIG(BOOL, DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED, "true") \
CONFIG(INT, DD_TRACE_BGS_CONNECT_TIMEOUT, DD_CFG_EXPSTR(DD_TRACE_BGS_CONNECT_TIMEOUT_VAL), \
.ini_change = zai_config_system_ini_change) \
CONFIG(INT, DD_TRACE_BGS_TIMEOUT, DD_CFG_EXPSTR(DD_TRACE_BGS_TIMEOUT_VAL), \
Expand Down Expand Up @@ -248,16 +248,16 @@ enum ddtrace_sampling_rules_format {
CONFIG(BOOL, DD_TRACE_WEBSOCKET_MESSAGES_INHERIT_SAMPLING, "true") \
CONFIG(BOOL, DD_TRACE_WEBSOCKET_MESSAGES_SEPARATE_TRACES, "true") \
CONFIG(BOOL, DD_INJECT_FORCE, "false", .ini_change = zai_config_system_ini_change) \
CONFIG(DOUBLE, DD_REMOTE_CONFIG_POLL_INTERVAL_SECONDS, "5", .ini_change = zai_config_system_ini_change) \
CONFIG(BOOL, DD_REMOTE_CONFIG_ENABLED, "true", .ini_change = zai_config_system_ini_change) \
CONFIG(DOUBLE, DD_REMOTE_CONFIG_POLL_INTERVAL_SECONDS, "5.0", .ini_change = zai_config_system_ini_change) \
CONFIG(BOOL, DD_REMOTE_CONFIG_ENABLED, "true", .ini_change = zai_config_system_ini_change) \
CONFIG(BOOL, DD_DYNAMIC_INSTRUMENTATION_ENABLED, "false", .ini_change = ddtrace_alter_dynamic_instrumentation_config) \
CONFIG(SET, DD_DYNAMIC_INSTRUMENTATION_REDACTED_IDENTIFIERS, "", .ini_change = zai_config_system_ini_change) \
CONFIG(BOOL, DD_APM_TRACING_ENABLED, "true") \
CONFIG(SET, DD_DYNAMIC_INSTRUMENTATION_REDACTED_TYPES, "", .ini_change = zai_config_system_ini_change) \
CONFIG(INT, DD_TRACE_BAGGAGE_MAX_ITEMS, "64") \
CONFIG(INT, DD_TRACE_BAGGAGE_MAX_BYTES, "8192") \
CONFIG(BOOL, DD_TRACE_INFERRED_PROXY_SERVICES_ENABLED, "false") \
CONFIG(SET, DD_TRACE_HTTP_CLIENT_ERROR_STATUSES, "500-599", .ini_change = zai_config_system_ini_change) \
CONFIG(SET, DD_TRACE_HTTP_CLIENT_ERROR_STATUSES, "400-499", .ini_change = zai_config_system_ini_change) \
CONFIG(SET, DD_TRACE_HTTP_SERVER_ERROR_STATUSES, "500-599", .ini_change = zai_config_system_ini_change) \
CONFIG(BOOL, DD_CODE_ORIGIN_FOR_SPANS_ENABLED, "true", .ini_change = ddtrace_alter_DD_CODE_ORIGIN_FOR_SPANS_ENABLED) \
CONFIG(INT, DD_CODE_ORIGIN_MAX_USER_FRAMES, "8") \
Expand Down
14 changes: 9 additions & 5 deletions ext/dogstatsd.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,17 @@ ZEND_EXTERN_MODULE_GLOBALS(ddtrace);

char *ddtrace_dogstatsd_url(void) {
zend_string *url = get_DD_DOGSTATSD_URL();
if (ZSTR_LEN(url) > 0) {
if (ZSTR_LEN(url) > 0 && zai_config_memoized_entries[DDTRACE_CONFIG_DD_DOGSTATSD_URL].name_index != ZAI_CONFIG_ORIGIN_DEFAULT) {
return zend_strndup(ZSTR_VAL(url), ZSTR_LEN(url) + 1);
}

zend_string *hostname = get_DD_DOGSTATSD_HOST();
if (ZSTR_LEN(hostname) == 0) {
hostname = get_global_DD_AGENT_HOST();
if (ZSTR_LEN(hostname) == 0 || zai_config_memoized_entries[DDTRACE_CONFIG_DD_DOGSTATSD_HOST].name_index == ZAI_CONFIG_ORIGIN_DEFAULT) {
if (zai_config_memoized_entries[DDTRACE_CONFIG_DD_AGENT_HOST].name_index == ZAI_CONFIG_ORIGIN_DEFAULT) {
hostname = ZSTR_EMPTY_ALLOC();
} else {
hostname = get_global_DD_AGENT_HOST();
}
}

if (ZSTR_LEN(hostname) > 7 && strncmp(ZSTR_VAL(hostname), "unix://", 7) == 0) {
Expand All @@ -25,7 +29,7 @@ char *ddtrace_dogstatsd_url(void) {
if (ZSTR_LEN(hostname) > 0) {
bool isIPv6 = memchr(ZSTR_VAL(hostname), ':', ZSTR_LEN(hostname));

int port = atoi(ZSTR_VAL(get_DD_DOGSTATSD_PORT()));
int port = get_DD_DOGSTATSD_PORT();
if (port <= 0 || port > 65535) {
port = 8125;
}
Expand All @@ -39,7 +43,7 @@ char *ddtrace_dogstatsd_url(void) {
}

int64_t port = get_global_DD_TRACE_AGENT_PORT();
if (port <= 0 || port > 65535) {
if (port <= 0 || port > 65535 || zai_config_memoized_entries[DDTRACE_CONFIG_DD_TRACE_AGENT_PORT].name_index == ZAI_CONFIG_ORIGIN_DEFAULT) {
port = 8125;
}
char *formatted_url;
Expand Down
Loading
Loading