From e1b1f330a66021b428e9dae01599cef76ecec51c Mon Sep 17 00:00:00 2001 From: Alexandre Choura Date: Thu, 20 Jun 2024 16:32:16 +0200 Subject: [PATCH 1/2] fix: Add ddsource attribute to json-formatted logs --- src/DDTrace/Integrations/Logs/LogsIntegration.php | 11 +++++++++++ tests/Integrations/Logs/MonologV2/MonologV2Test.php | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/DDTrace/Integrations/Logs/LogsIntegration.php b/src/DDTrace/Integrations/Logs/LogsIntegration.php index 341cab1cd8..2163fefc59 100644 --- a/src/DDTrace/Integrations/Logs/LogsIntegration.php +++ b/src/DDTrace/Integrations/Logs/LogsIntegration.php @@ -237,6 +237,17 @@ public function init(): int ); \DDTrace\remove_hook($hook, NullLogger::class); + \DDTrace\install_hook( + 'Monolog\Formatter\JsonFormatter::toJson', + function (HookData $hook) { + /** @var array $normalized */ + $normalized = $hook->args[0]; + $normalized['ddsource'] = 'php'; + $hook->args[0] = $normalized; + $hook->overrideArguments($hook->args); + } + ); + return Integration::LOADED; } } diff --git a/tests/Integrations/Logs/MonologV2/MonologV2Test.php b/tests/Integrations/Logs/MonologV2/MonologV2Test.php index 114ce07f22..eaade6fe48 100644 --- a/tests/Integrations/Logs/MonologV2/MonologV2Test.php +++ b/tests/Integrations/Logs/MonologV2/MonologV2Test.php @@ -10,7 +10,7 @@ public function testDebugJsonFormatting() { $this->usingJson( 'debug', $this->getLogger(true), - '/^{"message":"A debug message","context":{"dd.trace_id":"\d+","dd.span_id":"\d+","dd.service":"my-service","dd.version":"4.2","dd.env":"my-env"},"level":100,"level_name":"DEBUG","channel":"test","datetime":".*","extra":{}}/' + '/^{"message":"A debug message","context":{"dd.trace_id":"\d+","dd.span_id":"\d+","dd.service":"my-service","dd.version":"4.2","dd.env":"my-env"},"level":100,"level_name":"DEBUG","channel":"test","datetime":".*","extra":{},"ddsource":"php"}/' ); } @@ -18,7 +18,7 @@ public function testLogJsonFormatting() { $this->usingJson( 'log', $this->getLogger(true), - '/^{"message":"A critical message","context":{"dd.trace_id":"\d+","dd.span_id":"\d+","dd.service":"my-service","dd.version":"4.2","dd.env":"my-env"},"level":500,"level_name":"CRITICAL","channel":"test","datetime":".*","extra":{}}/', + '/^{"message":"A critical message","context":{"dd.trace_id":"\d+","dd.span_id":"\d+","dd.service":"my-service","dd.version":"4.2","dd.env":"my-env"},"level":500,"level_name":"CRITICAL","channel":"test","datetime":".*","extra":{},"ddsource":"php"}/', false, 'critical' ); From 17bd3f349522f0305866e27063480db6630334c4 Mon Sep 17 00:00:00 2001 From: Alexandre Choura <42672104+PROFeNoM@users.noreply.github.com> Date: Tue, 2 Jul 2024 08:50:15 +0200 Subject: [PATCH 2/2] fix: Use `source` instead of `ddsource` --- src/DDTrace/Integrations/Logs/LogsIntegration.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DDTrace/Integrations/Logs/LogsIntegration.php b/src/DDTrace/Integrations/Logs/LogsIntegration.php index 2163fefc59..906987ae31 100644 --- a/src/DDTrace/Integrations/Logs/LogsIntegration.php +++ b/src/DDTrace/Integrations/Logs/LogsIntegration.php @@ -242,7 +242,7 @@ public function init(): int function (HookData $hook) { /** @var array $normalized */ $normalized = $hook->args[0]; - $normalized['ddsource'] = 'php'; + $normalized['source'] = 'php'; $hook->args[0] = $normalized; $hook->overrideArguments($hook->args); }