Skip to content

Commit cdbbdee

Browse files
committed
improve logging when adding named custom tracer
Make log messages easier to understand when adding a named custom tracer by logging only a single message. Instead of logging one message when the wraprec is added, and two messages when wraprec is re-used, log a single message that indicates if the wraprec was added or re-used.
1 parent f6b2914 commit cdbbdee

File tree

4 files changed

+27
-10
lines changed

4 files changed

+27
-10
lines changed

agent/php_user_instrument.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,7 @@ static inline bool nr_php_user_instrument_is_name_valid(const char* namestr,
545545
nruserfn_t* nr_php_add_custom_tracer_named(const char* namestr,
546546
size_t namestrlen) {
547547
nruserfn_t* wraprec;
548+
bool is_new_wraprec = true;
548549

549550
if (!nr_php_user_instrument_is_name_valid(namestr, namestrlen)) {
550551
return NULL;
@@ -571,10 +572,11 @@ nruserfn_t* nr_php_add_custom_tracer_named(const char* namestr,
571572
}
572573
}
573574
#else
574-
wraprec = nr_php_user_instrument_wraprec_hashmap_add(namestr, namestrlen);
575+
wraprec = nr_php_user_instrument_wraprec_hashmap_add(namestr, namestrlen, &is_new_wraprec);
575576
#endif
576577
nrl_verbosedebug(
577-
NRL_INSTRUMENT, "adding custom for '" NRP_FMT_UQ "%.5s" NRP_FMT_UQ "'",
578+
NRL_INSTRUMENT, "%s custom for '" NRP_FMT_UQ "%.5s" NRP_FMT_UQ "'",
579+
is_new_wraprec ? "adding" : "reusing",
578580
NRP_PHP(wraprec->classname),
579581
(0 == wraprec->classname) ? "" : "::", NRP_PHP(wraprec->funcname));
580582

agent/php_user_instrument_wraprec_hashmap.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ void nr_php_user_instrument_wraprec_hashmap_init(void) {
394394
* - namestrlen be greater than 0
395395
* - namestr must not be NULL and must not end with `:` (colon) . */
396396

397-
nruserfn_t* nr_php_user_instrument_wraprec_hashmap_add(const char* namestr, size_t namestrlen) {
397+
nruserfn_t* nr_php_user_instrument_wraprec_hashmap_add(const char* namestr, size_t namestrlen, bool *is_new_wraprec_ptr) {
398398
nr_scope_hashmap_key_t scope_key = {0};
399399
nr_func_hashmap_key_t func_key = {0};
400400
nr_func_hashmap_t* funcs_ht = NULL;
@@ -437,8 +437,10 @@ nruserfn_t* nr_php_user_instrument_wraprec_hashmap_add(const char* namestr, size
437437

438438
wraprec->supportability_metric = nr_txn_create_fn_supportability_metric(
439439
wraprec->funcname, wraprec->classname);
440-
} else {
441-
nrl_verbosedebug(NRL_INSTRUMENT, "reusing custom wrapper for '%s'", namestr);
440+
}
441+
442+
if (NULL != is_new_wraprec_ptr) {
443+
*is_new_wraprec_ptr = is_new_wraprec;
442444
}
443445

444446
return wraprec;

agent/php_user_instrument_wraprec_hashmap.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// clang-format off
1212

1313
extern void nr_php_user_instrument_wraprec_hashmap_init(void);
14-
extern nruserfn_t* nr_php_user_instrument_wraprec_hashmap_add(const char* namestr, size_t namestrlen);
14+
extern nruserfn_t* nr_php_user_instrument_wraprec_hashmap_add(const char* namestr, size_t namestrlen, bool *is_new_wraprec_ptr);
1515
extern nruserfn_t* nr_php_user_instrument_wraprec_hashmap_get(zend_string *func_name, zend_string *scope_name);
1616
extern void nr_php_user_instrument_wraprec_hashmap_destroy(void);
1717

agent/tests/test_user_instrument_wraprec_hashmap.c

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ tlib_parallel_info_t parallel_info
2222
static void test_wraprecs_hashmap() {
2323
nruserfn_t *wraprec, *found_wraprec;
2424
zend_string *func_name, *scope_name, *method_name;
25+
bool is_new_wraprec = false;
2526

2627
func_name = zend_string_init(NR_PSTR(FUNCTION_NAME), 0);
2728
scope_name = zend_string_init(NR_PSTR(SCOPE_NAME), 0);
@@ -32,26 +33,38 @@ static void test_wraprecs_hashmap() {
3233
nr_php_user_instrument_wraprec_hashmap_destroy();
3334

3435
// Test valid operations before initializing the hashmap
35-
wraprec = nr_php_user_instrument_wraprec_hashmap_add(NR_PSTR(FUNCTION_NAME));
36+
wraprec = nr_php_user_instrument_wraprec_hashmap_add(NR_PSTR(FUNCTION_NAME),
37+
&is_new_wraprec);
3638
tlib_pass_if_null("adding valid function before init", wraprec);
37-
wraprec = nr_php_user_instrument_wraprec_hashmap_add(NR_PSTR(SCOPED_METHOD_NAME));
39+
tlib_pass_if_false("adding valid function before init", is_new_wraprec,
40+
"expected false for is_new_wraprec");
41+
wraprec = nr_php_user_instrument_wraprec_hashmap_add(NR_PSTR(SCOPED_METHOD_NAME),
42+
&is_new_wraprec);
3843
tlib_pass_if_null("adding valid method before init", wraprec);
44+
tlib_pass_if_false("adding valid function before init", is_new_wraprec,
45+
"expected false for is_new_wraprec");
3946

4047
// Initialize the hashmap
4148
nr_php_user_instrument_wraprec_hashmap_init();
4249

4350
// Test valid operations after initializing the hashmap
44-
wraprec = nr_php_user_instrument_wraprec_hashmap_add(NR_PSTR(FUNCTION_NAME));
51+
wraprec = nr_php_user_instrument_wraprec_hashmap_add(NR_PSTR(FUNCTION_NAME),
52+
&is_new_wraprec);
4553
tlib_pass_if_not_null("adding valid global function", wraprec);
54+
tlib_pass_if_true("adding valid global function", is_new_wraprec,
55+
"expected true for is_new_wraprec");
4656

4757
found_wraprec = nr_php_user_instrument_wraprec_hashmap_get(func_name, NULL);
4858
tlib_pass_if_ptr_equal("getting valid global function", wraprec, found_wraprec);
4959

5060
found_wraprec = nr_php_user_instrument_wraprec_hashmap_get(func_name, scope_name);
5161
tlib_pass_if_null("getting global function with scope", found_wraprec);
5262

53-
wraprec = nr_php_user_instrument_wraprec_hashmap_add(NR_PSTR(SCOPED_METHOD_NAME));
63+
wraprec = nr_php_user_instrument_wraprec_hashmap_add(NR_PSTR(SCOPED_METHOD_NAME),
64+
&is_new_wraprec);
5465
tlib_pass_if_not_null("adding valid scoped method", wraprec);
66+
tlib_pass_if_true("adding valid scoped function", is_new_wraprec,
67+
"expected true for is_new_wraprec");
5568

5669
found_wraprec = nr_php_user_instrument_wraprec_hashmap_get(method_name, scope_name);
5770
tlib_pass_if_ptr_equal("getting scoped method", wraprec, found_wraprec);

0 commit comments

Comments
 (0)