Skip to content
Merged
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
8 changes: 8 additions & 0 deletions agent/lib_composer.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include "fw_hooks.h"
#include "fw_support.h"
#include "nr_txn.h"
#include "php_globals.h"
#include "util_logging.h"
#include "util_memory.h"
#include "util_syscalls.h"
Expand Down Expand Up @@ -136,6 +137,13 @@ static void nr_execute_handle_autoload_composer_get_packages_information(
__func__);
return;
}

if (NR_PHP_PROCESS_GLOBALS(composer_api_per_process_detection)) {
// set the per-process flag to true to avoid re-running composer api
// detection when the per-process detection is enabled.
NR_PHP_PROCESS_GLOBALS(composer_packages_detected) = 1;
}

if (IS_ARRAY == Z_TYPE(retval)) {
zend_string* package_name = NULL;
zval* package_version = NULL;
Expand Down
7 changes: 7 additions & 0 deletions agent/php_execute.c
Original file line number Diff line number Diff line change
Expand Up @@ -904,6 +904,13 @@ static void nr_execute_handle_autoload(const char* filename,
return;
}

if (NR_PHP_PROCESS_GLOBALS(composer_api_per_process_detection)
&& NR_PHP_PROCESS_GLOBALS(composer_packages_detected)) {
// do nothing if per-process detection is enabled and the flag to track
// detection is true
return;
}

if (!nr_striendswith(STR_AND_LEN(filename), AUTOLOAD_MAGIC_FILE,
AUTOLOAD_MAGIC_FILE_LEN)) {
// not an autoload file
Expand Down
6 changes: 6 additions & 0 deletions agent/php_globals.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,12 @@ typedef struct _nrphpglobals_t {
int apache_threaded; /* 1 if a threaded MPM is in use, 0 otherwise */
int preload_framework_library_detection; /* Enables preloading framework and
library detection */
int composer_api_per_process_detection; /* Enables per-process VM package
detection when Composer API is also
enabled */
int composer_packages_detected; /* Flag to indicate that Composer package
detection has run. Used in conjunction with
composer_api_per_process_detection. */
char* docker_id; /* 64 byte hex docker ID parsed from /proc/self/mountinfo */

/* Original PHP callback pointer contents */
Expand Down
1 change: 1 addition & 0 deletions agent/php_minit.c
Original file line number Diff line number Diff line change
Expand Up @@ -456,6 +456,7 @@ PHP_MINIT_FUNCTION(newrelic) {
= nr_php_check_for_upgrade_license_key();
NR_PHP_PROCESS_GLOBALS(high_security) = 0;
NR_PHP_PROCESS_GLOBALS(preload_framework_library_detection) = 1;
NR_PHP_PROCESS_GLOBALS(composer_packages_detected) = 0;
nr_php_populate_apache_process_globals();
nr_php_api_distributed_trace_register_userland_class(TSRMLS_C);
/*
Expand Down
40 changes: 39 additions & 1 deletion agent/php_nrini.c
Original file line number Diff line number Diff line change
Expand Up @@ -537,6 +537,33 @@ static PHP_INI_MH(nr_preload_framework_library_detection_mh) {
return SUCCESS;
}

static PHP_INI_MH(nr_composer_per_process_detection_mh) {
int val;

(void)entry;
(void)NEW_VALUE_LEN;
(void)mh_arg1;
(void)mh_arg2;
(void)mh_arg3;
(void)stage;
NR_UNUSED_TSRMLS;

val = nr_bool_from_str(NEW_VALUE);

if (-1 == val) {
nrl_warning(NRL_INIT,
"The value \"%s\" is not valid for the "
"newrelic.vulnerability_management.composer_api.per_process_"
"detection setting, using default value instead.",
NEW_VALUE);
return FAILURE;
}

NR_PHP_PROCESS_GLOBALS(composer_api_per_process_detection) = val ? 1 : 0;

return SUCCESS;
}

static PHP_INI_MH(nr_loglevel_mh) {
nr_status_t rv;

Expand Down Expand Up @@ -2055,6 +2082,17 @@ PHP_INI_ENTRY_EX("newrelic.preload_framework_library_detection",
nr_preload_framework_library_detection_mh,
0)

/*
* Enables per-process Composer API package detection and reporting. Depends on
* newrelic.vulnerability_management.composer_api.enabled.
*/
PHP_INI_ENTRY_EX(
"newrelic.vulnerability_management.composer_api.per_process_detection",
"1",
NR_PHP_SYSTEM,
nr_composer_per_process_detection_mh,
0)

/*
* Daemon
*/
Expand Down Expand Up @@ -3135,7 +3173,7 @@ STD_PHP_INI_ENTRY_EX("newrelic.vulnerability_management.package_detection.enable
nr_enabled_disabled_dh)

STD_PHP_INI_ENTRY_EX("newrelic.vulnerability_management.composer_api.enabled",
"0",
"1",
NR_PHP_REQUEST,
nr_boolean_mh,
vulnerability_management_composer_api_enabled,
Expand Down
14 changes: 12 additions & 2 deletions agent/scripts/newrelic.ini.template
Original file line number Diff line number Diff line change
Expand Up @@ -1363,11 +1363,21 @@ newrelic.daemon.logfile = "/var/log/newrelic/newrelic-daemon.log"
; Setting: newrelic.vulnerability_management.composer_api.enabled
; Type : boolean
; Scope : per-directory
; Default: false
; Default: true
; Info : Toggles whether the agent should try using Composer's runtime API
; to gather package information for vulnerability management.
;
;newrelic.vulnerability_management.composer_api.enabled = false
;newrelic.vulnerability_management.composer_api.enabled = true

; Setting: newrelic.vulnerability_management.composer_api.per_process_detection
; Type : boolean
; Scope : system
; Default: true
; Info : Controls the frequency at which Composer API samples the runtime environment
; for package data. When set to `true`, sampling will only occur once per process.
; If false, Composer will sample the environment every request, increasing the frequency which this package detection is performed.
;
;newrelic.vulnerability_management.composer_api.per_process_detection = true

; Setting: newrelic.message_tracer.segment_parameters.enabled
; Type : boolean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
*/

/*INI
newrelic.vulnerability_management.composer_api.enabled = false
*/

/*EXPECT_PHP_PACKAGES null*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
*/

/*INI
newrelic.vulnerability_management.composer_api.enabled = false
*/

/*EXPECT_METRICS_DONT_EXIST
Expand Down
1 change: 1 addition & 0 deletions tests/integration/external/guzzle5/test_cat.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
[{"name":"OtherTransactionTotalTime"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"OtherTransactionTotalTime/php__FILE__"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 4-5/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [3, 0, 0, 0, 0, 0]],
[{"name":"Supportability/Logging/Forwarding/PHP/enabled"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/Metrics/PHP/enabled"}, [1, "??", "??", "??", "??", "??"]],
Expand Down
1 change: 1 addition & 0 deletions tests/integration/external/guzzle5/test_dt.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
[{"name":"OtherTransactionTotalTime"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"OtherTransactionTotalTime/php__FILE__"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 4-5/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [1, 0, 0, 0, 0, 0]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/all"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/allOther"}, [1, "??", "??", "??", "??", "??"]],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
[{"name":"OtherTransactionTotalTime"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"OtherTransactionTotalTime/php__FILE__"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 4-5/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [1, 0, 0, 0, 0, 0]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/all"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/allOther"}, [1, "??", "??", "??", "??", "??"]],
Expand Down
1 change: 1 addition & 0 deletions tests/integration/external/guzzle5/test_dt_synthetics.php
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@
[{"name":"WebTransactionTotalTime/Uri__FILE__"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"HttpDispatcher"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 4-5/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [3, 0, 0, 0, 0, 0]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/all"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/allWeb"}, [1, "??", "??", "??", "??", "??"]],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
[{"name":"WebTransactionTotalTime/Uri__FILE__"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"HttpDispatcher"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 4-5/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [3, 0, 0, 0, 0, 0]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/all"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/allWeb"}, [1, "??", "??", "??", "??", "??"]],
Expand Down
1 change: 1 addition & 0 deletions tests/integration/external/guzzle5/test_no_cat_no_dt.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
[{"name":"OtherTransactionTotalTime"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"OtherTransactionTotalTime/php__FILE__"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 4-5/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/Forwarding/PHP/enabled"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/Metrics/PHP/enabled"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/LocalDecorating/PHP/disabled"},[1, "??", "??", "??", "??", "??"]],
Expand Down
2 changes: 2 additions & 0 deletions tests/integration/external/guzzle6/test_cat.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@
[{"name":"Supportability/PHP/package/guzzlehttp/guzzle/6/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 6/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [3, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Composer/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/Forwarding/PHP/enabled"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/Metrics/PHP/enabled"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/LocalDecorating/PHP/disabled"},[1, "??", "??", "??", "??", "??"]],
Expand Down
2 changes: 2 additions & 0 deletions tests/integration/external/guzzle6/test_dt.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
[{"name":"OtherTransactionTotalTime/php__FILE__"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/PHP/package/guzzlehttp/guzzle/6/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 6/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Composer/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [3, 0, 0, 0, 0, 0]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/all"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/allOther"}, [1, "??", "??", "??", "??", "??"]],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@
[{"name":"OtherTransactionTotalTime/php__FILE__"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/PHP/package/guzzlehttp/guzzle/6/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 6/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Composer/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [3, 0, 0, 0, 0, 0]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/all"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/allOther"}, [1, "??", "??", "??", "??", "??"]],
Expand Down
2 changes: 2 additions & 0 deletions tests/integration/external/guzzle6/test_dt_synthetics.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@
[{"name":"HttpDispatcher"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/PHP/package/guzzlehttp/guzzle/6/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 6/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Composer/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [3, 0, 0, 0, 0, 0]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/all"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/allWeb"}, [1, "??", "??", "??", "??", "??"]],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@
[{"name":"HttpDispatcher"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/PHP/package/guzzlehttp/guzzle/6/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 6/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Composer/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [3, 0, 0, 0, 0, 0]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/all"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/allWeb"}, [1, "??", "??", "??", "??", "??"]],
Expand Down
2 changes: 2 additions & 0 deletions tests/integration/external/guzzle6/test_no_cat_no_dt.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
[{"name":"OtherTransactionTotalTime/php__FILE__"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/PHP/package/guzzlehttp/guzzle/6/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 6/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Composer/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/Forwarding/PHP/enabled"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/Metrics/PHP/enabled"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/LocalDecorating/PHP/disabled"},[1, "??", "??", "??", "??", "??"]],
Expand Down
2 changes: 2 additions & 0 deletions tests/integration/external/guzzle7/test_cat.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@
[{"name":"Supportability/PHP/package/guzzlehttp/guzzle/7/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 6/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [3, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Composer/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/Forwarding/PHP/enabled"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/Metrics/PHP/enabled"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/LocalDecorating/PHP/disabled"}, [1, "??", "??", "??", "??", "??"]],
Expand Down
2 changes: 2 additions & 0 deletions tests/integration/external/guzzle7/test_dt.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
[{"name":"OtherTransactionTotalTime/php__FILE__"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/PHP/package/guzzlehttp/guzzle/7/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 6/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Composer/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [3, 0, 0, 0, 0, 0]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/all"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/allOther"}, [1, "??", "??", "??", "??", "??"]],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@
[{"name":"OtherTransactionTotalTime"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"OtherTransactionTotalTime/php__FILE__"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/PHP/package/guzzlehttp/guzzle/7/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 6/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Guzzle 6/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Composer/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [3, 0, 0, 0, 0, 0]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/all"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/allOther"}, [1, "??", "??", "??", "??", "??"]],
Expand Down
2 changes: 2 additions & 0 deletions tests/integration/external/guzzle7/test_dt_synthetics.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@
[{"name":"HttpDispatcher"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/PHP/package/guzzlehttp/guzzle/7/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 6/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Composer/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Unsupported/curl_setopt/CURLOPT_HEADERFUNCTION/closure"}, [3, 0, 0, 0, 0, 0]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/all"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"DurationByCaller/Unknown/Unknown/Unknown/Unknown/allWeb"}, [1, "??", "??", "??", "??", "??"]],
Expand Down
2 changes: 2 additions & 0 deletions tests/integration/external/guzzle7/test_no_cat_no_dt.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
[{"name":"OtherTransactionTotalTime/php__FILE__"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/PHP/package/guzzlehttp/guzzle/7/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Guzzle 6/detected"}, [1, 0, 0, 0, 0, 0]],
[{"name":"Supportability/library/Autoloader/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/library/Composer/detected"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/Forwarding/PHP/enabled"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/Metrics/PHP/enabled"}, [1, "??", "??", "??", "??", "??"]],
[{"name":"Supportability/Logging/LocalDecorating/PHP/disabled"}, [1, "??", "??", "??", "??", "??"]],
Expand Down