Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
a198018
Draft
PROFeNoM Apr 16, 2023
9c82de9
Implement span links
PROFeNoM Apr 20, 2023
e316e6b
[Draft/WIP] Push changes
PROFeNoM Apr 21, 2023
26a1987
Merge master + Add some basic use cases tests
PROFeNoM Apr 24, 2023
a8a6708
Merge branch 'master' into alex/integration/laravel-queue
PROFeNoM Apr 24, 2023
8bdb72b
Remove laravel queue from deferred loading
PROFeNoM Apr 25, 2023
22f26e1
Fix limiter handling with multiple parallel traces
bwoebi Apr 25, 2023
e656855
Provide tests for laravel queue (no span link checks, wip)
PROFeNoM Apr 26, 2023
039ead2
Test span links / distributed tracing
PROFeNoM Apr 26, 2023
cb925ce
Do some cleaning
PROFeNoM Apr 26, 2023
ec9dc33
Linting + Remove unused methods
PROFeNoM Apr 26, 2023
33621bc
Add jobs migration (Laravel 8x)
PROFeNoM Apr 26, 2023
eb76d29
Change routes order
PROFeNoM Apr 26, 2023
1ff6187
Use %s format check
PROFeNoM Apr 26, 2023
acee80b
Assess internal server error in root span
PROFeNoM Apr 26, 2023
5e71ead
Check for migrations to run
PROFeNoM Apr 26, 2023
b9b0068
Fix laravel.queue.batch.add span's resource
PROFeNoM Apr 26, 2023
9dbaa5d
Remove some loggers
PROFeNoM Apr 26, 2023
3a46898
Force artisan migrations even in production mode
PROFeNoM Apr 26, 2023
43433de
Pipeline Debug output
PROFeNoM Apr 26, 2023
dbfc0b8
Pipeline Debug output
PROFeNoM Apr 26, 2023
ab1bdaa
Remove some unless include/logs
PROFeNoM Apr 26, 2023
72af753
Use a temporary varibale to handle the class entry
PROFeNoM Apr 26, 2023
7ec1fc7
Ensure php_json_serializable_ce is load during bindings
PROFeNoM Apr 26, 2023
814c7d9
Ensure php_json_serializable_ce is load during bindings
PROFeNoM Apr 26, 2023
8d206f5
Check database before trying to run migrations
PROFeNoM Apr 26, 2023
dfbcf06
Create the 'jobs' table manually (bad practice)
PROFeNoM Apr 26, 2023
5fccd80
Create the 'job_batches' table manually (bad practice)
PROFeNoM Apr 26, 2023
0d1ccc3
Try to trigger migrations post autoload
PROFeNoM Apr 26, 2023
ea88e23
Try to trigger migrations post autoload
PROFeNoM Apr 26, 2023
dbd6bc2
Drop all tables and do migrations
PROFeNoM Apr 26, 2023
d73a765
Blindly use a stackoverflow solution
PROFeNoM Apr 26, 2023
68c265d
Sleep after request to prevent flakiness
PROFeNoM Apr 26, 2023
7cf2f03
Allow for nullable fields in the 'users' table
PROFeNoM Apr 26, 2023
09ea1c0
Remove useless variable
PROFeNoM Apr 26, 2023
bdb6474
Ensure PHP7.3 Compatibility
PROFeNoM Apr 26, 2023
2deb2e3
Ensure apache server is stopped when config changes and then restarted
PROFeNoM Apr 27, 2023
0da72f3
(Experiment) Reduce agent auto flush to try and reduce queue's flakiness
PROFeNoM Apr 27, 2023
2e98652
(Experiment) Use the zval directly instead of forcing an array during…
PROFeNoM Apr 27, 2023
23af682
Try to prevent use-after-free on the links
PROFeNoM Apr 27, 2023
21eda47
Revert the previous serialization experiment
PROFeNoM Apr 27, 2023
ff159c7
Remove unused stuff
PROFeNoM Apr 27, 2023
bc72168
Ensure compatibility with Laravel 5.8
PROFeNoM Apr 27, 2023
80ebc7f
Change default string length
PROFeNoM Apr 27, 2023
da95663
Ensure compatibility with Laravel 5.7
PROFeNoM Apr 27, 2023
5e95792
Remove an argument typing (for Laravel 57 compat)
PROFeNoM Apr 27, 2023
ff9ca92
Fix mistakenly removed import in last commit
PROFeNoM Apr 27, 2023
4778ec7
Try to disable distributed tracig in frameworks tests
PROFeNoM Apr 27, 2023
68717e5
Won't check for equality of values AND data type (distributed tracing)
PROFeNoM Apr 27, 2023
f9853f6
Disable Laravel Testsuite + Do some cleaning
PROFeNoM Apr 27, 2023
766f490
Change messaging span attributes
PROFeNoM Apr 28, 2023
7df5a91
Apply some suggested changes
PROFeNoM Apr 28, 2023
f07a013
Remove some dead code
PROFeNoM Apr 28, 2023
6fa736d
Fix typo in deferred loading
PROFeNoM Apr 28, 2023
19f47ce
Add RFC's documentation to the traceId and spanId
PROFeNoM Apr 28, 2023
8e661a4
Exclude laravelqueue from testWeDidNotForgetToRegisterALibraryForAuto…
PROFeNoM Apr 28, 2023
bb8f285
Exclude laminas from testWeDidNotForgetToRegisterALibraryForAutoLoading
PROFeNoM Apr 28, 2023
b102a70
Start writing some error tests cases
PROFeNoM Apr 29, 2023
31fd949
Add jobFailure test for Laravel 8
PROFeNoM Apr 29, 2023
123c4d2
Add jobFailure test for Laravel 5 + instrument later()
PROFeNoM Apr 29, 2023
aa1222f
Add missing route
PROFeNoM Apr 29, 2023
6cd5404
Register laravel constants tag names
PROFeNoM May 2, 2023
bbaa25a
Clearer way to reset properties table
bwoebi May 8, 2023
93d3ace
Modify doc
PROFeNoM May 8, 2023
1ef5657
Merge branch 'master' into alex/integration/laravel-queue
bwoebi May 8, 2023
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
9 changes: 5 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2986,10 +2986,11 @@ workflows:
requires: [ "Framework tests" ]
framework_target: flow_no_ddtrace
name: "Flow baseline testsuite"
- framework_tests:
requires: [ "Framework tests" ]
framework_target: laravel
name: "Laravel testsuite"
# The dd-trace-ci:php-framework-laravel docker image needs to be modified to handle the laravel queue integration
#- framework_tests:
# requires: [ "Framework tests" ]
# framework_target: laravel
# name: "Laravel testsuite"
- framework_tests:
requires: [ "Framework tests" ]
framework_target: laravel_no_ddtrace
Expand Down
1 change: 1 addition & 0 deletions bridge/_files_integrations.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
__DIR__ . '/../src/Integrations/Integrations/ElasticSearch/V8/ElasticSearchIntegration.php',
__DIR__ . '/../src/Integrations/Integrations/Laminas/LaminasIntegration.php',
__DIR__ . '/../src/Integrations/Integrations/Laravel/LaravelIntegration.php',
__DIR__ . '/../src/Integrations/Integrations/LaravelQueue/LaravelQueueIntegration.php',
__DIR__ . '/../src/Integrations/Integrations/Lumen/LumenIntegration.php',
__DIR__ . '/../src/Integrations/Integrations/Guzzle/GuzzleIntegration.php',
__DIR__ . '/../src/Integrations/Integrations/Psr18/Psr18Integration.php',
Expand Down
54 changes: 53 additions & 1 deletion ext/ddtrace.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
Expand Down Expand Up @@ -25,6 +26,7 @@

#include <ext/standard/info.h>
#include <ext/standard/php_string.h>
#include <json/json.h>

#include "auto_flush.h"
#include "circuit_breaker.h"
Expand Down Expand Up @@ -72,6 +74,7 @@
#define ZVAL_EMPTY_STRING(z) ZVAL_NEW_STR(z, zend_string_init("", 0, 1))
#endif
#include "ddtrace_arginfo.h"

#if PHP_VERSION_ID < 70200
#undef ZVAL_EMPTY_STRING
#define ZVAL_EMPTY_STRING(z) ZVAL_INTERNED_STR(z, ZSTR_EMPTY_ALLOC())
Expand Down Expand Up @@ -296,6 +299,40 @@ static PHP_GSHUTDOWN_FUNCTION(ddtrace) {
zai_hook_gshutdown();
}

/* DDTrace\SpanLink */
zend_class_entry *ddtrace_ce_span_link;

PHP_METHOD(DDTrace_SpanLink, jsonSerialize) {
ddtrace_span_link *link = (ddtrace_span_link *)Z_OBJ_P(ZEND_THIS);

zend_array *array = zend_new_array(5);

zend_string *trace_id = zend_string_init("trace_id", sizeof("trace_id") - 1, 0);
zend_string *span_id = zend_string_init("span_id", sizeof("span_id") - 1, 0);
zend_string *trace_state = zend_string_init("trace_state", sizeof("trace_state") - 1, 0);
zend_string *attributes = zend_string_init("attributes", sizeof("attributes") - 1, 0);
zend_string *dropped_attributes_count = zend_string_init("dropped_attributes_count", sizeof("dropped_attributes_count") - 1, 0);

Z_TRY_ADDREF(link->property_trace_id);
zend_hash_add(array, trace_id, &link->property_trace_id);
Z_TRY_ADDREF(link->property_span_id);
zend_hash_add(array, span_id, &link->property_span_id);
Z_TRY_ADDREF(link->property_trace_state);
zend_hash_add(array, trace_state, &link->property_trace_state);
Z_TRY_ADDREF(link->property_attributes);
zend_hash_add(array, attributes, &link->property_attributes);
Z_TRY_ADDREF(link->property_dropped_attributes_count);
zend_hash_add(array, dropped_attributes_count, &link->property_dropped_attributes_count);

zend_string_release(trace_id);
zend_string_release(span_id);
zend_string_release(trace_state);
zend_string_release(attributes);
zend_string_release(dropped_attributes_count);

RETURN_ARR(array);
}

/* DDTrace\SpanData */
zend_class_entry *ddtrace_ce_span_data;
zend_class_entry *ddtrace_ce_span_stack;
Expand All @@ -311,6 +348,7 @@ static zend_object *ddtrace_span_data_create(zend_class_entry *class_type) {
// Not handled in arginfo on these old versions
array_init(ddtrace_spandata_property_meta_zval(span));
array_init(ddtrace_spandata_property_metrics_zval(span));
array_init(ddtrace_spandata_property_links_zval(span));
#endif
// Explicitly assign property-mapped NULLs
span->stack = NULL;
Expand Down Expand Up @@ -398,7 +436,7 @@ static zend_object *ddtrace_span_stack_clone_obj(zend_object *old_obj) {
static void ddtrace_span_data_free_storage(zend_object *object) {
zend_object_std_dtor(object);
// Prevent use after free after zend_objects_store_free_object_storage is called (e.g. preloading) [PHP < 8.1]
memset(object->properties_table, 0, sizeof(((ddtrace_span_data *)NULL)->properties_table_placeholder));
memset(object->properties_table, 0, sizeof(zval) + sizeof(((ddtrace_span_data *)NULL)->properties_table_placeholder));
}

#if PHP_VERSION_ID < 80000
Expand Down Expand Up @@ -481,6 +519,19 @@ PHP_METHOD(DDTrace_SpanData, getStartTime) {
RETURN_LONG(span->start);
}

PHP_METHOD(DDTrace_SpanData, getLink) {
ddtrace_span_data *span = (ddtrace_span_data *)Z_OBJ_P(ZEND_THIS);

zval fci_zv;
object_init_ex(&fci_zv, ddtrace_ce_span_link);
ddtrace_span_link *link = (ddtrace_span_link *)Z_OBJ_P(&fci_zv);

ZVAL_STR(&link->property_trace_id, ddtrace_trace_id_as_hex_string(span->trace_id));
ZVAL_STR(&link->property_span_id, ddtrace_span_id_as_hex_string(span->span_id));

RETURN_OBJ(Z_OBJ(fci_zv));
}

static void dd_register_span_data_ce(void) {
memcpy(&ddtrace_span_data_handlers, &std_object_handlers, sizeof(zend_object_handlers));
ddtrace_span_data_handlers.clone_obj = ddtrace_span_data_clone_obj;
Expand Down Expand Up @@ -600,6 +651,7 @@ static PHP_MINIT_FUNCTION(ddtrace) {

dd_register_span_data_ce();
dd_register_fatal_error_ce();
ddtrace_ce_span_link = register_class_DDTrace_SpanLink(php_json_serializable_ce);

ddtrace_engine_hooks_minit();

Expand Down
12 changes: 11 additions & 1 deletion ext/ddtrace.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ extern zend_module_entry ddtrace_module_entry;
extern zend_class_entry *ddtrace_ce_span_data;
extern zend_class_entry *ddtrace_ce_span_stack;
extern zend_class_entry *ddtrace_ce_fatal_error;
extern zend_class_entry *ddtrace_ce_span_link;

typedef struct ddtrace_span_ids_t ddtrace_span_ids_t;
typedef struct ddtrace_span_data ddtrace_span_data;
typedef struct ddtrace_span_stack ddtrace_span_stack;
typedef struct ddtrace_span_link ddtrace_span_link;

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Warray-bounds" // useful compiler does not like the struct hack
Expand Down Expand Up @@ -56,7 +58,15 @@ static inline zend_array *ddtrace_spandata_property_metrics(ddtrace_span_data *s
static inline zval *ddtrace_spandata_property_exception(ddtrace_span_data *span) {
return OBJ_PROP_NUM((zend_object *)span, 6);
}
static inline zval *ddtrace_spandata_property_id(ddtrace_span_data *span) { return OBJ_PROP_NUM((zend_object *)span, 7); }
static inline zval *ddtrace_spandata_property_id(ddtrace_span_data *span) {
return OBJ_PROP_NUM((zend_object *)span, 7);
}
static inline zval *ddtrace_spandata_property_links_zval(ddtrace_span_data *span) {
return OBJ_PROP_NUM((zend_object *)span, 8);
}
static inline zend_array *ddtrace_spandata_property_links(ddtrace_span_data *span) {
return ddtrace_spandata_property_force_array(ddtrace_spandata_property_links_zval(span));
}
#pragma GCC diagnostic pop

bool ddtrace_tracer_is_limited(void);
Expand Down
44 changes: 44 additions & 0 deletions ext/ddtrace.stub.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,40 @@
*/
const DBM_PROPAGATION_FULL = UNKNOWN;

class SpanLink implements \JsonSerializable {
/**
* @var string $traceId A 32-character, lower-case hexadecimal encoded string of the linked trace ID. This field
* shouldn't be directly assigned an id from SpanData. Use the SpanData::getLinks() method instead.
*/
public string $traceId;

/**
* @var string $spanId A 16-character, lower-case hexadecimal encoded string of the linked span ID. This field
* shouldn't be directly assigned an id from SpanData. Use the SpanData::getLinks() method instead.
*/
public string $spanId;

/**
* @var string $traceState
*/
public string $traceState;

/**
* @var string[] $attributes
*/
public array $attributes;

/**
* @var int $droppedAttributesCount
*/
public int $droppedAttributesCount;

/**
* @return mixed
*/
public function jsonSerialize(): mixed {}
}

class SpanData {
/**
* @var string|null The span name
Expand Down Expand Up @@ -66,6 +100,11 @@ class SpanData {
*/
public readonly string $id = "";

/**
* @var SpanLink[] $spanLinks An array of span links
*/
public array $links = [];

/**
* @var SpanData|null The parent span, or 'null' if there is none
*/
Expand All @@ -85,6 +124,11 @@ public function getDuration(): int {}
* @return int Get the start time of the span
*/
public function getStartTime(): int {}

/**
* @return SpanLink Get a pre-populated SpanLink object with the current span's trace and span IDs
*/
public function getLink(): SpanLink {}
}

/**
Expand Down
64 changes: 63 additions & 1 deletion ext/ddtrace_arginfo.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: 7862e3baa2bb1a55b87a99dba0ec7b2a10897cd0 */
* Stub hash: 5f6b67ed109fbedcbdf1d13e6a082da85515a08c */

ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_DDTrace_trace_method, 0, 3, _IS_BOOL, 0)
ZEND_ARG_TYPE_INFO(0, className, IS_STRING, 0)
Expand Down Expand Up @@ -230,10 +230,16 @@ ZEND_END_ARG_INFO()

#define arginfo_additional_trace_meta arginfo_DDTrace_current_context

ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_DDTrace_SpanLink_jsonSerialize, 0, 0, IS_MIXED, 0)
ZEND_END_ARG_INFO()

#define arginfo_class_DDTrace_SpanData_getDuration arginfo_dd_trace_dd_get_memory_limit

#define arginfo_class_DDTrace_SpanData_getStartTime arginfo_dd_trace_dd_get_memory_limit

ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_DDTrace_SpanData_getLink, 0, 0, DDTrace\\SpanLink, 0)
ZEND_END_ARG_INFO()


ZEND_FUNCTION(DDTrace_trace_method);
ZEND_FUNCTION(DDTrace_trace_function);
Expand Down Expand Up @@ -300,8 +306,10 @@ ZEND_FUNCTION(dd_trace_forward_call);
ZEND_FUNCTION(dd_trace_push_span_id);
ZEND_FUNCTION(dd_trace_pop_span_id);
ZEND_FUNCTION(additional_trace_meta);
ZEND_METHOD(DDTrace_SpanLink, jsonSerialize);
ZEND_METHOD(DDTrace_SpanData, getDuration);
ZEND_METHOD(DDTrace_SpanData, getStartTime);
ZEND_METHOD(DDTrace_SpanData, getLink);


static const zend_function_entry ext_functions[] = {
Expand Down Expand Up @@ -375,9 +383,16 @@ static const zend_function_entry ext_functions[] = {
};


static const zend_function_entry class_DDTrace_SpanLink_methods[] = {
ZEND_ME(DDTrace_SpanLink, jsonSerialize, arginfo_class_DDTrace_SpanLink_jsonSerialize, ZEND_ACC_PUBLIC)
ZEND_FE_END
};


static const zend_function_entry class_DDTrace_SpanData_methods[] = {
ZEND_ME(DDTrace_SpanData, getDuration, arginfo_class_DDTrace_SpanData_getDuration, ZEND_ACC_PUBLIC)
ZEND_ME(DDTrace_SpanData, getStartTime, arginfo_class_DDTrace_SpanData_getStartTime, ZEND_ACC_PUBLIC)
ZEND_ME(DDTrace_SpanData, getLink, arginfo_class_DDTrace_SpanData_getLink, ZEND_ACC_PUBLIC)
ZEND_FE_END
};

Expand All @@ -400,6 +415,47 @@ static void register_ddtrace_symbols(int module_number)
REGISTER_LONG_CONSTANT("DD_TRACE_PRIORITY_SAMPLING_UNSET", DDTRACE_PRIORITY_SAMPLING_UNSET, CONST_PERSISTENT);
}

static zend_class_entry *register_class_DDTrace_SpanLink(zend_class_entry *class_entry_JsonSerializable)
{
zend_class_entry ce, *class_entry;

INIT_NS_CLASS_ENTRY(ce, "DDTrace", "SpanLink", class_DDTrace_SpanLink_methods);
class_entry = zend_register_internal_class_ex(&ce, NULL);
zend_class_implements(class_entry, 1, class_entry_JsonSerializable);

zval property_traceId_default_value;
ZVAL_UNDEF(&property_traceId_default_value);
zend_string *property_traceId_name = zend_string_init("traceId", sizeof("traceId") - 1, 1);
zend_declare_typed_property(class_entry, property_traceId_name, &property_traceId_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING));
zend_string_release(property_traceId_name);

zval property_spanId_default_value;
ZVAL_UNDEF(&property_spanId_default_value);
zend_string *property_spanId_name = zend_string_init("spanId", sizeof("spanId") - 1, 1);
zend_declare_typed_property(class_entry, property_spanId_name, &property_spanId_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING));
zend_string_release(property_spanId_name);

zval property_traceState_default_value;
ZVAL_UNDEF(&property_traceState_default_value);
zend_string *property_traceState_name = zend_string_init("traceState", sizeof("traceState") - 1, 1);
zend_declare_typed_property(class_entry, property_traceState_name, &property_traceState_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING));
zend_string_release(property_traceState_name);

zval property_attributes_default_value;
ZVAL_UNDEF(&property_attributes_default_value);
zend_string *property_attributes_name = zend_string_init("attributes", sizeof("attributes") - 1, 1);
zend_declare_typed_property(class_entry, property_attributes_name, &property_attributes_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_ARRAY));
zend_string_release(property_attributes_name);

zval property_droppedAttributesCount_default_value;
ZVAL_UNDEF(&property_droppedAttributesCount_default_value);
zend_string *property_droppedAttributesCount_name = zend_string_init("droppedAttributesCount", sizeof("droppedAttributesCount") - 1, 1);
zend_declare_typed_property(class_entry, property_droppedAttributesCount_name, &property_droppedAttributesCount_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
zend_string_release(property_droppedAttributesCount_name);

return class_entry;
}

static zend_class_entry *register_class_DDTrace_SpanData(void)
{
zend_class_entry ce, *class_entry;
Expand Down Expand Up @@ -456,6 +512,12 @@ static zend_class_entry *register_class_DDTrace_SpanData(void)
zend_declare_typed_property(class_entry, property_id_name, &property_id_default_value, ZEND_ACC_PUBLIC|ZEND_ACC_READONLY, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING));
zend_string_release(property_id_name);

zval property_links_default_value;
ZVAL_EMPTY_ARRAY(&property_links_default_value);
zend_string *property_links_name = zend_string_init("links", sizeof("links") - 1, 1);
zend_declare_typed_property(class_entry, property_links_name, &property_links_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_ARRAY));
zend_string_release(property_links_name);

zend_string *property_parent_class_DDTrace_SpanData = zend_string_init("DDTrace\\SpanData", sizeof("DDTrace\\SpanData")-1, 1);
zval property_parent_default_value;
ZVAL_NULL(&property_parent_default_value);
Expand Down
11 changes: 11 additions & 0 deletions ext/integrations/integrations.c
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,17 @@ void ddtrace_integrations_minit(void) {
DD_SET_UP_DEFERRED_LOADING_BY_METHOD(DDTRACE_INTEGRATION_SLIM, "Slim\\App", "__construct",
"DDTrace\\Integrations\\Slim\\SlimIntegration");

DD_SET_UP_DEFERRED_LOADING_BY_METHOD(DDTRACE_INTEGRATION_LARAVELQUEUE, "Illuminate\\Queue\\Worker", "__construct",
"DDTrace\\Integrations\\LaravelQueue\\LaravelQueueIntegration");
DD_SET_UP_DEFERRED_LOADING_BY_METHOD(DDTRACE_INTEGRATION_LARAVELQUEUE, "Illuminate\\Contracts\\Queue\\Queue", "push",
"DDTrace\\Integrations\\LaravelQueue\\LaravelQueueIntegration");
DD_SET_UP_DEFERRED_LOADING_BY_METHOD(DDTRACE_INTEGRATION_LARAVELQUEUE, "Illuminate\\Contracts\\Queue\\Queue", "later",
"DDTrace\\Integrations\\LaravelQueue\\LaravelQueueIntegration");
DD_SET_UP_DEFERRED_LOADING_BY_METHOD(DDTRACE_INTEGRATION_LARAVELQUEUE, "Illuminate\\Bus\\PendingBatch", "__construct",
"DDTrace\\Integrations\\LaravelQueue\\LaravelQueueIntegration");
DD_SET_UP_DEFERRED_LOADING_BY_METHOD(DDTRACE_INTEGRATION_LARAVELQUEUE, "Illuminate\\Foundation\\Bus\\PendingChain", "__construct",
"DDTrace\\Integrations\\LaravelQueue\\LaravelQueueIntegration");

DD_SET_UP_DEFERRED_LOADING_BY_METHOD(DDTRACE_INTEGRATION_SYMFONY, "Symfony\\Component\\HttpKernel\\Kernel", "__construct",
"DDTrace\\Integrations\\Symfony\\SymfonyIntegration");
DD_SET_UP_DEFERRED_LOADING_BY_METHOD(DDTRACE_INTEGRATION_SYMFONY, "Symfony\\Component\\HttpKernel\\HttpKernel", "__construct",
Expand Down
1 change: 1 addition & 0 deletions ext/integrations/integrations.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
INTEGRATION(GUZZLE, "guzzle") \
INTEGRATION(LAMINAS, "laminas") \
INTEGRATION(LARAVEL, "laravel") \
INTEGRATION(LARAVELQUEUE, "laravelqueue") \
INTEGRATION(LUMEN, "lumen") \
INTEGRATION(MEMCACHE, "memcache") \
INTEGRATION(MEMCACHED, "memcached") \
Expand Down
Loading