Skip to content

Commit ecda295

Browse files
committed
Reduce cardinality of helper.connection_*
1 parent 617ba06 commit ecda295

File tree

4 files changed

+25
-16
lines changed

4 files changed

+25
-16
lines changed

appsec/src/extension/helper_process.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,13 +152,13 @@ dd_conn *nullable dd_helper_mgr_acquire_conn(
152152

153153
_mgr.connected_this_req = true;
154154
_release_shared_state_lock(&_mgr.hss);
155-
dd_telemetry_helper_conn_success(_mgr.socket_path);
155+
dd_telemetry_helper_conn_success();
156156

157157
return conn;
158158

159159
error:
160160
_inc_failed_counter(&_mgr.hss);
161-
dd_telemetry_helper_conn_error(_mgr.socket_path);
161+
dd_telemetry_helper_conn_error();
162162
return NULL;
163163
}
164164

@@ -265,7 +265,7 @@ void dd_helper_close_conn(void)
265265
mlog_err(dd_log_warning, "Error closing connection to helper");
266266
}
267267

268-
dd_telemetry_helper_conn_close(_mgr.socket_path);
268+
dd_telemetry_helper_conn_close();
269269

270270
/* we treat closing the connection on the request it was opened a failure
271271
* for the purposes of the connection backoff */

appsec/src/extension/telemetry.c

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,32 +49,33 @@ void dd_telemetry_add_sdk_event(char *nonnull event_type, size_t event_type_len)
4949
free(tags);
5050
}
5151

52-
static void _add_helper_conn_metric(
53-
zend_string *nonnull name_zstr, const char *nonnull socket_path)
52+
static void _add_helper_conn_metric(zend_string *nonnull name_zstr)
5453
{
5554
if (get_global_DD_APPSEC_TESTING() &&
5655
!get_global_DD_APPSEC_TESTING_HELPER_METRICS()) {
5756
return;
5857
}
58+
zend_string *runtime_path = get_DD_APPSEC_HELPER_RUNTIME_PATH();
5959
char *tags = NULL;
60-
size_t tags_len = spprintf(&tags, 0, "socket:%s", socket_path);
60+
size_t tags_len =
61+
spprintf(&tags, 0, "runtime_path:%s", ZSTR_VAL(runtime_path));
6162
zend_string *tags_zstr = zend_string_init(tags, tags_len, 0);
6263
dd_telemetry_add_metric(name_zstr, 1, tags_zstr, DDTRACE_METRIC_TYPE_COUNT);
6364
zend_string_release(tags_zstr);
6465
efree(tags);
6566
}
6667

67-
void dd_telemetry_helper_conn_error(const char *nonnull socket_path)
68+
void dd_telemetry_helper_conn_error(void)
6869
{
69-
_add_helper_conn_metric(_dd_helper_conn_error_zstr, socket_path);
70+
_add_helper_conn_metric(_dd_helper_conn_error_zstr);
7071
}
7172

72-
void dd_telemetry_helper_conn_success(const char *nonnull socket_path)
73+
void dd_telemetry_helper_conn_success(void)
7374
{
74-
_add_helper_conn_metric(_dd_helper_conn_success_zstr, socket_path);
75+
_add_helper_conn_metric(_dd_helper_conn_success_zstr);
7576
}
7677

77-
void dd_telemetry_helper_conn_close(const char *nonnull socket_path)
78+
void dd_telemetry_helper_conn_close(void)
7879
{
79-
_add_helper_conn_metric(_dd_helper_conn_close_zstr, socket_path);
80+
_add_helper_conn_metric(_dd_helper_conn_close_zstr);
8081
}

appsec/src/extension/telemetry.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ void dd_telemetry_add_metric(zend_string *nonnull name_zstr, double value,
1414
void dd_telemetry_add_sdk_event(char *nonnull event_type, size_t event_type_len);
1515
void dd_telemetry_startup(void);
1616

17-
void dd_telemetry_helper_conn_error(const char *nonnull socket_path);
18-
void dd_telemetry_helper_conn_success(const char *nonnull socket_path);
19-
void dd_telemetry_helper_conn_close(const char *nonnull socket_path);
17+
void dd_telemetry_helper_conn_error(void);
18+
void dd_telemetry_helper_conn_success(void);
19+
void dd_telemetry_helper_conn_close(void);

appsec/tests/integration/src/test/groovy/com/datadog/appsec/php/integration/TelemetryTests.groovy

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,16 @@ class TelemetryTests {
9595
TelemetryHelpers.Metric wafInit
9696
TelemetryHelpers.Metric wafReq1
9797
TelemetryHelpers.Metric wafReq2
98+
TelemetryHelpers.Metric connSuccess
9899

99100
waitForMetrics(30) { List<TelemetryHelpers.GenerateMetrics> messages ->
100101
def allSeries = messages.collectMany { it.series }
101102
wafInit = allSeries.find { it.name == 'waf.init' }
102103
wafReq1 = allSeries.find { it.name == 'waf.requests' && it.tags.size() == 2 }
103104
wafReq2 = allSeries.find { it.name == 'waf.requests' && it.tags.size() == 3 }
105+
connSuccess = allSeries.find { it.name == 'helper.connection_success' }
104106

105-
wafInit && wafReq1 && wafReq2
107+
wafInit && wafReq1 && wafReq2 && connSuccess
106108
}
107109

108110
assert wafInit != null
@@ -123,6 +125,12 @@ class TelemetryTests {
123125
assert wafReq2 != null
124126
assert 'rule_triggered:true' in wafReq2.tags
125127
assert wafReq2.points[0][1] >= 1.0
128+
129+
assert connSuccess != null
130+
assert connSuccess.namespace == 'appsec'
131+
assert connSuccess.points[0][1] >= 1.0
132+
assert connSuccess.tags.find { it.startsWith('runtime_path:') } != null
133+
assert connSuccess.type == 'count'
126134
}
127135

128136
@Test

0 commit comments

Comments
 (0)