11#include "telemetry.h"
2+ #include "configuration.h"
23#include "ddtrace.h"
34#include "logging.h"
45#include "php_compat.h"
89#define DD_SDK_EVENT "sdk.event"
910static zend_string * _dd_sdk_event_zstr ;
1011
12+ static zend_string * _dd_helper_conn_error_zstr ;
13+ static zend_string * _dd_helper_conn_success_zstr ;
14+ static zend_string * _dd_helper_conn_close_zstr ;
15+
1116void dd_telemetry_startup (void )
1217{
1318 _dd_sdk_event_zstr = zend_string_init_interned (LSTRARG (DD_SDK_EVENT ), 1 );
19+ _dd_helper_conn_error_zstr =
20+ zend_string_init_interned (LSTRARG ("helper.connection_error" ), 1 );
21+ _dd_helper_conn_success_zstr =
22+ zend_string_init_interned (LSTRARG ("helper.connection_success" ), 1 );
23+ _dd_helper_conn_close_zstr =
24+ zend_string_init_interned (LSTRARG ("helper.connection_close" ), 1 );
1425}
1526
1627void dd_telemetry_add_metric (zend_string * nonnull name_zstr , double value ,
@@ -37,3 +48,33 @@ void dd_telemetry_add_sdk_event(char *nonnull event_type, size_t event_type_len)
3748
3849 free (tags );
3950}
51+
52+ static void _add_helper_conn_metric (
53+ zend_string * nonnull name_zstr , const char * nonnull socket_path )
54+ {
55+ if (get_global_DD_APPSEC_TESTING () &&
56+ !get_global_DD_APPSEC_TESTING_HELPER_METRICS ()) {
57+ return ;
58+ }
59+ char * tags = NULL ;
60+ size_t tags_len = spprintf (& tags , 0 , "socket:%s" , socket_path );
61+ zend_string * tags_zstr = zend_string_init (tags , tags_len , 0 );
62+ dd_telemetry_add_metric (name_zstr , 1 , tags_zstr , DDTRACE_METRIC_TYPE_COUNT );
63+ zend_string_release (tags_zstr );
64+ efree (tags );
65+ }
66+
67+ void dd_telemetry_helper_conn_error (const char * nonnull socket_path )
68+ {
69+ _add_helper_conn_metric (_dd_helper_conn_error_zstr , socket_path );
70+ }
71+
72+ void dd_telemetry_helper_conn_success (const char * nonnull socket_path )
73+ {
74+ _add_helper_conn_metric (_dd_helper_conn_success_zstr , socket_path );
75+ }
76+
77+ void dd_telemetry_helper_conn_close (const char * nonnull socket_path )
78+ {
79+ _add_helper_conn_metric (_dd_helper_conn_close_zstr , socket_path );
80+ }
0 commit comments