diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv index 7c3c8833e55..01ccc3ac870 100644 --- a/LICENSE-3rdparty.csv +++ b/LICENSE-3rdparty.csv @@ -133,6 +133,7 @@ core,github.com/DataDog/agent-payload/v5/healthplatform,BSD-3-Clause,"Copyright core,github.com/DataDog/agent-payload/v5/pb,BSD-3-Clause,"Copyright (c) 2017, Datadog, Inc" core,github.com/DataDog/agent-payload/v5/process,BSD-3-Clause,"Copyright (c) 2017, Datadog, Inc" core,github.com/DataDog/agent-payload/v5/sbom,BSD-3-Clause,"Copyright (c) 2017, Datadog, Inc" +core,github.com/DataDog/agent-payload/v5/statefulpb,BSD-3-Clause,"Copyright (c) 2017, Datadog, Inc" core,github.com/DataDog/appsec-internal-go/apisec,Apache-2.0,"Copyright 2016-present Datadog, Inc" core,github.com/DataDog/appsec-internal-go/apisec/internal/config,Apache-2.0,"Copyright 2016-present Datadog, Inc" core,github.com/DataDog/appsec-internal-go/apisec/internal/timed,Apache-2.0,"Copyright 2016-present Datadog, Inc" diff --git a/comp/api/api/def/go.mod b/comp/api/api/def/go.mod index 71503010b90..1a2ed843395 100644 --- a/comp/api/api/def/go.mod +++ b/comp/api/api/def/go.mod @@ -115,6 +115,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/agenttelemetry/def/go.mod b/comp/core/agenttelemetry/def/go.mod index ff878cd0bf0..3daeb8daab9 100644 --- a/comp/core/agenttelemetry/def/go.mod +++ b/comp/core/agenttelemetry/def/go.mod @@ -124,6 +124,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/agenttelemetry/fx/go.mod b/comp/core/agenttelemetry/fx/go.mod index 45fa3344c32..dc21bf35623 100644 --- a/comp/core/agenttelemetry/fx/go.mod +++ b/comp/core/agenttelemetry/fx/go.mod @@ -210,6 +210,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/agenttelemetry/impl/go.mod b/comp/core/agenttelemetry/impl/go.mod index e33cc6733e0..2a52c4e0d2a 100644 --- a/comp/core/agenttelemetry/impl/go.mod +++ b/comp/core/agenttelemetry/impl/go.mod @@ -214,6 +214,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/config/go.mod b/comp/core/config/go.mod index 40e7bf83d04..6673e2f8a6f 100644 --- a/comp/core/config/go.mod +++ b/comp/core/config/go.mod @@ -181,6 +181,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/comp/core/configsync/go.mod b/comp/core/configsync/go.mod index 6d50fcc0b28..d6b2da4f248 100644 --- a/comp/core/configsync/go.mod +++ b/comp/core/configsync/go.mod @@ -201,6 +201,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/comp/core/delegatedauth/api/cloudauth/aws/go.mod b/comp/core/delegatedauth/api/cloudauth/aws/go.mod index 3ecfbe2aaae..35374acaff3 100644 --- a/comp/core/delegatedauth/api/cloudauth/aws/go.mod +++ b/comp/core/delegatedauth/api/cloudauth/aws/go.mod @@ -171,6 +171,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../../../pkg/logs/status/utils diff --git a/comp/core/delegatedauth/go.mod b/comp/core/delegatedauth/go.mod index 92d7999275d..2460a26a0b7 100644 --- a/comp/core/delegatedauth/go.mod +++ b/comp/core/delegatedauth/go.mod @@ -187,6 +187,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/comp/core/flare/builder/go.mod b/comp/core/flare/builder/go.mod index 35c1cba8317..25a6f440056 100644 --- a/comp/core/flare/builder/go.mod +++ b/comp/core/flare/builder/go.mod @@ -103,6 +103,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/flare/types/go.mod b/comp/core/flare/types/go.mod index 6dd63e0b745..93204b40049 100644 --- a/comp/core/flare/types/go.mod +++ b/comp/core/flare/types/go.mod @@ -118,6 +118,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/hostname/hostnameinterface/go.mod b/comp/core/hostname/hostnameinterface/go.mod index 13dd7593d9f..b5bb9b57f20 100644 --- a/comp/core/hostname/hostnameinterface/go.mod +++ b/comp/core/hostname/hostnameinterface/go.mod @@ -125,6 +125,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/ipc/def/go.mod b/comp/core/ipc/def/go.mod index ec1a6e7cf34..09babcc929f 100644 --- a/comp/core/ipc/def/go.mod +++ b/comp/core/ipc/def/go.mod @@ -103,6 +103,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/ipc/httphelpers/go.mod b/comp/core/ipc/httphelpers/go.mod index e5c7b5b7609..343893dcf4c 100644 --- a/comp/core/ipc/httphelpers/go.mod +++ b/comp/core/ipc/httphelpers/go.mod @@ -190,6 +190,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/ipc/impl/go.mod b/comp/core/ipc/impl/go.mod index f7de8b31eaa..a35d17566ad 100644 --- a/comp/core/ipc/impl/go.mod +++ b/comp/core/ipc/impl/go.mod @@ -190,6 +190,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/ipc/mock/go.mod b/comp/core/ipc/mock/go.mod index 8a935dc2b70..5f4d1ea0c99 100644 --- a/comp/core/ipc/mock/go.mod +++ b/comp/core/ipc/mock/go.mod @@ -188,6 +188,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/log/def/go.mod b/comp/core/log/def/go.mod index 1bb3c7b446f..ae7948bfd59 100644 --- a/comp/core/log/def/go.mod +++ b/comp/core/log/def/go.mod @@ -115,6 +115,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/log/fx/go.mod b/comp/core/log/fx/go.mod index f7b3ecddd2d..167eed138d6 100644 --- a/comp/core/log/fx/go.mod +++ b/comp/core/log/fx/go.mod @@ -185,6 +185,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod index de0d53f2605..f991c089ee2 100644 --- a/comp/core/log/impl-trace/go.mod +++ b/comp/core/log/impl-trace/go.mod @@ -188,6 +188,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/log/impl/go.mod b/comp/core/log/impl/go.mod index 283dfe4aef1..585626577ea 100644 --- a/comp/core/log/impl/go.mod +++ b/comp/core/log/impl/go.mod @@ -184,6 +184,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/log/mock/go.mod b/comp/core/log/mock/go.mod index 103d940a35b..630e98b0255 100644 --- a/comp/core/log/mock/go.mod +++ b/comp/core/log/mock/go.mod @@ -117,6 +117,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/secrets/def/go.mod b/comp/core/secrets/def/go.mod index 74e7647fa92..64c1b063512 100644 --- a/comp/core/secrets/def/go.mod +++ b/comp/core/secrets/def/go.mod @@ -103,6 +103,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/secrets/fx/go.mod b/comp/core/secrets/fx/go.mod index 0187040e306..14f4dbde171 100644 --- a/comp/core/secrets/fx/go.mod +++ b/comp/core/secrets/fx/go.mod @@ -202,6 +202,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/secrets/impl/go.mod b/comp/core/secrets/impl/go.mod index 7752e8f842a..2ce7bcfef12 100644 --- a/comp/core/secrets/impl/go.mod +++ b/comp/core/secrets/impl/go.mod @@ -202,6 +202,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/secrets/mock/go.mod b/comp/core/secrets/mock/go.mod index ce60167e378..ccf9d94b23c 100644 --- a/comp/core/secrets/mock/go.mod +++ b/comp/core/secrets/mock/go.mod @@ -111,6 +111,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/secrets/noop-impl/go.mod b/comp/core/secrets/noop-impl/go.mod index 4d63e56375e..b94263f4a1c 100644 --- a/comp/core/secrets/noop-impl/go.mod +++ b/comp/core/secrets/noop-impl/go.mod @@ -126,6 +126,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/secrets/utils/go.mod b/comp/core/secrets/utils/go.mod index bdde48f4f21..99387ec8d2d 100644 --- a/comp/core/secrets/utils/go.mod +++ b/comp/core/secrets/utils/go.mod @@ -118,6 +118,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/status/go.mod b/comp/core/status/go.mod index 5179822d161..8c53ff75c91 100644 --- a/comp/core/status/go.mod +++ b/comp/core/status/go.mod @@ -129,6 +129,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/comp/core/status/statusimpl/go.mod b/comp/core/status/statusimpl/go.mod index 578f4d57aaa..20eae797e19 100644 --- a/comp/core/status/statusimpl/go.mod +++ b/comp/core/status/statusimpl/go.mod @@ -192,6 +192,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/tagger/def/go.mod b/comp/core/tagger/def/go.mod index 962810506e1..6c0509eb55f 100644 --- a/comp/core/tagger/def/go.mod +++ b/comp/core/tagger/def/go.mod @@ -189,6 +189,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/tagger/fx-remote/go.mod b/comp/core/tagger/fx-remote/go.mod index 29a09ab32f5..eb268d895f1 100644 --- a/comp/core/tagger/fx-remote/go.mod +++ b/comp/core/tagger/fx-remote/go.mod @@ -133,8 +133,8 @@ require ( golang.org/x/time v0.14.0 // indirect google.golang.org/api v0.258.0 // indirect google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect ) @@ -240,6 +240,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/tagger/fx-remote/go.sum b/comp/core/tagger/fx-remote/go.sum index 29956a02d1e..419a1779949 100644 --- a/comp/core/tagger/fx-remote/go.sum +++ b/comp/core/tagger/fx-remote/go.sum @@ -179,10 +179,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -279,10 +279,10 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 h1:a12a2/BiVRxRWIqBbfqoSK6tgq8cyUgMnEI81QlPge0= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8/go.mod h1:1Ic78BnpzY8OaTCmzxJDP4qC9INZPbGZl+54RKjtyeI= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= diff --git a/comp/core/tagger/generic_store/go.mod b/comp/core/tagger/generic_store/go.mod index 18a6c96b231..76e8bf88d4b 100644 --- a/comp/core/tagger/generic_store/go.mod +++ b/comp/core/tagger/generic_store/go.mod @@ -117,6 +117,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/tagger/impl-remote/go.mod b/comp/core/tagger/impl-remote/go.mod index b54ba5b93a2..92eebd6ecd0 100644 --- a/comp/core/tagger/impl-remote/go.mod +++ b/comp/core/tagger/impl-remote/go.mod @@ -141,8 +141,8 @@ require ( golang.org/x/time v0.14.0 // indirect google.golang.org/api v0.258.0 // indirect google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/protobuf v1.36.11 // indirect ) @@ -247,6 +247,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/tagger/impl-remote/go.sum b/comp/core/tagger/impl-remote/go.sum index 29956a02d1e..419a1779949 100644 --- a/comp/core/tagger/impl-remote/go.sum +++ b/comp/core/tagger/impl-remote/go.sum @@ -179,10 +179,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -279,10 +279,10 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 h1:a12a2/BiVRxRWIqBbfqoSK6tgq8cyUgMnEI81QlPge0= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8/go.mod h1:1Ic78BnpzY8OaTCmzxJDP4qC9INZPbGZl+54RKjtyeI= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= diff --git a/comp/core/tagger/origindetection/go.mod b/comp/core/tagger/origindetection/go.mod index 596d48b3a21..774d69e4584 100644 --- a/comp/core/tagger/origindetection/go.mod +++ b/comp/core/tagger/origindetection/go.mod @@ -115,6 +115,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/tagger/subscriber/go.mod b/comp/core/tagger/subscriber/go.mod index 1f2731bfbbd..ca9d61feba4 100644 --- a/comp/core/tagger/subscriber/go.mod +++ b/comp/core/tagger/subscriber/go.mod @@ -146,6 +146,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/tagger/tags/go.mod b/comp/core/tagger/tags/go.mod index 5165a539db7..a01a2f22ed7 100644 --- a/comp/core/tagger/tags/go.mod +++ b/comp/core/tagger/tags/go.mod @@ -103,6 +103,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/tagger/telemetry/go.mod b/comp/core/tagger/telemetry/go.mod index 8ddd3d913c8..2a740911a4b 100644 --- a/comp/core/tagger/telemetry/go.mod +++ b/comp/core/tagger/telemetry/go.mod @@ -123,6 +123,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/tagger/types/go.mod b/comp/core/tagger/types/go.mod index 988c0dbe66f..503c662b0a5 100644 --- a/comp/core/tagger/types/go.mod +++ b/comp/core/tagger/types/go.mod @@ -117,6 +117,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/tagger/utils/go.mod b/comp/core/tagger/utils/go.mod index b06cd95a772..b0b499b9281 100644 --- a/comp/core/tagger/utils/go.mod +++ b/comp/core/tagger/utils/go.mod @@ -115,6 +115,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/core/telemetry/go.mod b/comp/core/telemetry/go.mod index 312b03a4fe2..d24d6cd2ea8 100644 --- a/comp/core/telemetry/go.mod +++ b/comp/core/telemetry/go.mod @@ -135,6 +135,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/comp/def/go.mod b/comp/def/go.mod index feca21d03f0..3494b1ae0fc 100644 --- a/comp/def/go.mod +++ b/comp/def/go.mod @@ -115,6 +115,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/comp/forwarder/defaultforwarder/go.mod b/comp/forwarder/defaultforwarder/go.mod index da4a63c848c..ea92d3b1ef2 100644 --- a/comp/forwarder/defaultforwarder/go.mod +++ b/comp/forwarder/defaultforwarder/go.mod @@ -214,6 +214,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.mod b/comp/forwarder/orchestrator/orchestratorinterface/go.mod index 58d4039c3f5..cd4f8d47db0 100644 --- a/comp/forwarder/orchestrator/orchestratorinterface/go.mod +++ b/comp/forwarder/orchestrator/orchestratorinterface/go.mod @@ -213,6 +213,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/logs-library/go.mod b/comp/logs-library/go.mod index f781f71413a..a77897ad080 100644 --- a/comp/logs-library/go.mod +++ b/comp/logs-library/go.mod @@ -126,6 +126,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/comp/logs/agent/config/config.go b/comp/logs/agent/config/config.go index c5e1a70325a..37ec37edb3a 100644 --- a/comp/logs/agent/config/config.go +++ b/comp/logs/agent/config/config.go @@ -133,7 +133,7 @@ func BuildEndpointsWithConfig(coreConfig pkgconfigmodel.Reader, logsConfig *Logs if logsDDURL, defined := logsConfig.logsDDURL(); defined { haveHTTPProxy = strings.HasPrefix(logsDDURL, "http://") || strings.HasPrefix(logsDDURL, "https://") } - if logsConfig.isForceHTTPUse() || haveHTTPProxy || logsConfig.obsPipelineWorkerEnabled() || (bool(httpConnectivity) && !logsConfig.shouldUseTCP()) { + if logsConfig.isGRPCUse() || logsConfig.isForceHTTPUse() || haveHTTPProxy || logsConfig.obsPipelineWorkerEnabled() || (bool(httpConnectivity) && !(logsConfig.isForceTCPUse() || logsConfig.isSocks5ProxySet() || logsConfig.hasAdditionalEndpoints())) { return BuildHTTPEndpointsWithConfig(coreConfig, logsConfig, endpointPrefix, intakeTrackType, intakeProtocol, intakeOrigin) } log.Warnf("You are currently sending Logs to Datadog through TCP (either because %s or %s is set or the HTTP connectivity test has failed) "+ @@ -434,7 +434,7 @@ func buildHTTPEndpoints(coreConfig pkgconfigmodel.Reader, logsConfig *LogsConfig batchMaxContentSize := logsConfig.batchMaxContentSize() inputChanSize := logsConfig.inputChanSize() - return NewEndpointsWithBatchSettings(main, additionals, false, true, batchWait, batchMaxConcurrentSend, batchMaxSize, batchMaxContentSize, inputChanSize), nil + return NewEndpointsWithBatchSettings(main, additionals, false, true, logsConfig.isGRPCUse(), batchWait, batchMaxConcurrentSend, batchMaxSize, batchMaxContentSize, inputChanSize), nil } type defaultParseAddressFunc func(string) (host string, port int, err error) @@ -508,6 +508,11 @@ func TaggerWarmupDuration(coreConfig pkgconfigmodel.Reader) time.Duration { return defaultLogsConfigKeys(coreConfig).taggerWarmupDuration() } +// StreamLifetime returns the duration for gRPC stream lifetime before rotation. +func StreamLifetime(coreConfig pkgconfigmodel.Reader) time.Duration { + return defaultLogsConfigKeys(coreConfig).streamLifetime() +} + // AggregationTimeout is used when performing aggregation operations func AggregationTimeout(coreConfig pkgconfigmodel.Reader) time.Duration { return defaultLogsConfigKeys(coreConfig).aggregationTimeout() diff --git a/comp/logs/agent/config/config_keys.go b/comp/logs/agent/config/config_keys.go index 4c3d1fceaf2..19827e269ba 100644 --- a/comp/logs/agent/config/config_keys.go +++ b/comp/logs/agent/config/config_keys.go @@ -101,6 +101,10 @@ func (l *LogsConfigKeys) isForceHTTPUse() bool { l.getConfig().GetBool(l.getConfigKey("force_use_http")) } +func (l *LogsConfigKeys) isGRPCUse() bool { + return l.getConfig().GetBool(l.getConfigKey("use_grpc")) +} + func (l *LogsConfigKeys) logsNoSSL() bool { return l.getConfig().GetBool(l.getConfigKey("logs_no_ssl")) } @@ -303,6 +307,16 @@ func (l *LogsConfigKeys) senderRecoveryReset() bool { return l.getConfig().GetBool(l.getConfigKey("sender_recovery_reset")) } +func (l *LogsConfigKeys) streamLifetime() time.Duration { + key := l.getConfigKey("stream_lifetime") + streamLifetime := l.getConfig().GetInt(key) + if streamLifetime <= 0 { + log.Warnf("Invalid %s: %v should be > 0, fallback on %v", key, streamLifetime, pkgconfigsetup.DefaultLogsStreamLifetime) + return time.Duration(pkgconfigsetup.DefaultLogsStreamLifetime) * time.Second + } + return time.Duration(streamLifetime) * time.Second +} + // AggregationTimeout is used when performing aggregation operations func (l *LogsConfigKeys) aggregationTimeout() time.Duration { return l.getConfig().GetDuration(l.getConfigKey("aggregation_timeout")) * time.Millisecond diff --git a/comp/logs/agent/config/config_test.go b/comp/logs/agent/config/config_test.go index 2a92d2d4a11..98a3fa50105 100644 --- a/comp/logs/agent/config/config_test.go +++ b/comp/logs/agent/config/config_test.go @@ -303,7 +303,7 @@ func (suite *ConfigTestSuite) TestMultipleHttpEndpointsEnvVar() { isReliable: true, } - expectedEndpoints := NewEndpointsWithBatchSettings(expectedMainEndpoint, []Endpoint{expectedAdditionalEndpoint1, expectedAdditionalEndpoint2}, false, true, 1*time.Second, pkgconfigsetup.DefaultBatchMaxConcurrentSend, pkgconfigsetup.DefaultBatchMaxSize, pkgconfigsetup.DefaultBatchMaxContentSize, pkgconfigsetup.DefaultInputChanSize) + expectedEndpoints := NewEndpointsWithBatchSettings(expectedMainEndpoint, []Endpoint{expectedAdditionalEndpoint1, expectedAdditionalEndpoint2}, false, true, false, 1*time.Second, pkgconfigsetup.DefaultBatchMaxConcurrentSend, pkgconfigsetup.DefaultBatchMaxSize, pkgconfigsetup.DefaultBatchMaxContentSize, pkgconfigsetup.DefaultInputChanSize) endpoints, err := BuildHTTPEndpoints(suite.config, "test-track", "test-proto", "test-source") suite.Nil(err) @@ -430,7 +430,7 @@ func (suite *ConfigTestSuite) TestMultipleHttpEndpointsInConfig() { isReliable: true, } - expectedEndpoints := NewEndpointsWithBatchSettings(expectedMainEndpoint, []Endpoint{expectedAdditionalEndpoint1, expectedAdditionalEndpoint2}, false, true, 1*time.Second, pkgconfigsetup.DefaultBatchMaxConcurrentSend, pkgconfigsetup.DefaultBatchMaxSize, pkgconfigsetup.DefaultBatchMaxContentSize, pkgconfigsetup.DefaultInputChanSize) + expectedEndpoints := NewEndpointsWithBatchSettings(expectedMainEndpoint, []Endpoint{expectedAdditionalEndpoint1, expectedAdditionalEndpoint2}, false, true, false, 1*time.Second, pkgconfigsetup.DefaultBatchMaxConcurrentSend, pkgconfigsetup.DefaultBatchMaxSize, pkgconfigsetup.DefaultBatchMaxContentSize, pkgconfigsetup.DefaultInputChanSize) endpoints, err := BuildHTTPEndpoints(suite.config, "test-track", "test-proto", "test-source") suite.Nil(err) @@ -520,7 +520,7 @@ func (suite *ConfigTestSuite) TestMultipleHttpEndpointsInConfig2() { isReliable: true, } - expectedEndpoints := NewEndpointsWithBatchSettings(expectedMainEndpoint, []Endpoint{expectedAdditionalEndpoint1, expectedAdditionalEndpoint2}, false, true, 1*time.Second, pkgconfigsetup.DefaultBatchMaxConcurrentSend, pkgconfigsetup.DefaultBatchMaxSize, pkgconfigsetup.DefaultBatchMaxContentSize, pkgconfigsetup.DefaultInputChanSize) + expectedEndpoints := NewEndpointsWithBatchSettings(expectedMainEndpoint, []Endpoint{expectedAdditionalEndpoint1, expectedAdditionalEndpoint2}, false, true, false, 1*time.Second, pkgconfigsetup.DefaultBatchMaxConcurrentSend, pkgconfigsetup.DefaultBatchMaxSize, pkgconfigsetup.DefaultBatchMaxContentSize, pkgconfigsetup.DefaultInputChanSize) endpoints, err := BuildHTTPEndpoints(suite.config, "test-track", "test-proto", "test-source") suite.Nil(err) diff --git a/comp/logs/agent/config/endpoints.go b/comp/logs/agent/config/endpoints.go index 3c7abec531c..5e897e176cc 100644 --- a/comp/logs/agent/config/endpoints.go +++ b/comp/logs/agent/config/endpoints.go @@ -387,6 +387,7 @@ type Endpoints struct { Endpoints []Endpoint UseProto bool UseHTTP bool + UseGRPC bool BatchWait time.Duration BatchMaxConcurrentSend int BatchMaxSize int @@ -413,6 +414,23 @@ func NewEndpoints(main Endpoint, additionalEndpoints []Endpoint, useProto bool, additionalEndpoints, useProto, useHTTP, + false, // useGRPC defaults to false for backward compatibility + pkgconfigsetup.DefaultBatchWait, + pkgconfigsetup.DefaultBatchMaxConcurrentSend, + pkgconfigsetup.DefaultBatchMaxSize, + pkgconfigsetup.DefaultBatchMaxContentSize, + pkgconfigsetup.DefaultInputChanSize, + ) +} + +// NewEndpointsWithGRPC returns a new endpoints composite with gRPC support +func NewEndpointsWithGRPC(main Endpoint, additionalEndpoints []Endpoint, useProto bool, useHTTP bool, useGRPC bool) *Endpoints { + return NewEndpointsWithBatchSettings( + main, + additionalEndpoints, + useProto, + useHTTP, + useGRPC, pkgconfigsetup.DefaultBatchWait, pkgconfigsetup.DefaultBatchMaxConcurrentSend, pkgconfigsetup.DefaultBatchMaxSize, @@ -422,12 +440,13 @@ func NewEndpoints(main Endpoint, additionalEndpoints []Endpoint, useProto bool, } // NewEndpointsWithBatchSettings returns a new endpoints composite with non-default batching settings specified -func NewEndpointsWithBatchSettings(main Endpoint, additionalEndpoints []Endpoint, useProto bool, useHTTP bool, batchWait time.Duration, batchMaxConcurrentSend int, batchMaxSize int, batchMaxContentSize int, inputChanSize int) *Endpoints { +func NewEndpointsWithBatchSettings(main Endpoint, additionalEndpoints []Endpoint, useProto bool, useHTTP bool, useGRPC bool, batchWait time.Duration, batchMaxConcurrentSend int, batchMaxSize int, batchMaxContentSize int, inputChanSize int) *Endpoints { return &Endpoints{ Main: main, Endpoints: append([]Endpoint{main}, additionalEndpoints...), UseProto: useProto, UseHTTP: useHTTP, + UseGRPC: useGRPC, BatchWait: batchWait, BatchMaxConcurrentSend: batchMaxConcurrentSend, BatchMaxSize: batchMaxSize, diff --git a/comp/logs/agent/config/endpoints_test.go b/comp/logs/agent/config/endpoints_test.go index 050cbddea6f..14984c0bc14 100644 --- a/comp/logs/agent/config/endpoints_test.go +++ b/comp/logs/agent/config/endpoints_test.go @@ -136,6 +136,24 @@ func (suite *EndpointsTestSuite) TestBuildEndpointsShouldSucceedWithValidHTTPCon suite.Equal("agent-http-intake.logs.datadoghq.com.", endpoint.Host) } +func (suite *EndpointsTestSuite) TestBuildEndpointsShouldSucceedWithValidGRPCConfig() { + var endpoints *Endpoints + var endpoint Endpoint + var err error + + suite.config.SetWithoutSource("logs_config.use_grpc", true) + + endpoints, err = BuildEndpoints(suite.config, HTTPConnectivityFailure, "test-track", "test-proto", "test-source") + suite.Nil(err) + suite.True(endpoints.UseGRPC) + suite.True(endpoints.UseHTTP) + suite.Equal(endpoints.BatchWait, 5*time.Second) + + endpoint = endpoints.Main + suite.True(endpoint.UseSSL()) + suite.Equal("agent-http-intake.logs.datadoghq.com.", endpoint.Host) +} + func (suite *EndpointsTestSuite) TestBuildEndpointsShouldSucceedWithValidHTTPConfigAndCompression() { var endpoints *Endpoints var endpoint Endpoint @@ -260,6 +278,7 @@ func (suite *EndpointsTestSuite) TestBuildEndpointsShouldTakeIntoAccountHTTPConn suite.config.SetWithoutSource("logs_config.force_use_tcp", "false") suite.config.SetWithoutSource("logs_config.use_http", "false") suite.config.SetWithoutSource("logs_config.force_use_http", "false") + suite.config.SetWithoutSource("logs_config.use_grpc", "false") suite.config.SetWithoutSource("logs_config.socks5_proxy_address", "") suite.config.SetWithoutSource("logs_config.additional_endpoints", []map[string]interface{}{}) } @@ -330,6 +349,19 @@ func (suite *EndpointsTestSuite) TestBuildEndpointsShouldTakeIntoAccountHTTPConn suite.config.SetWithoutSource("logs_config.socks5_proxy_address", "") }) + suite.Run("When use_grpc is true always create gRPC endpoints", func() { + defer resetHTTPConfigValuesToFalse() + suite.config.SetWithoutSource("logs_config.use_grpc", "true") + endpoints, err := BuildEndpoints(suite.config, HTTPConnectivitySuccess, "test-track", "test-proto", "test-source") + suite.Nil(err) + suite.True(endpoints.UseGRPC) + suite.True(endpoints.UseHTTP) + endpoints, err = BuildEndpoints(suite.config, HTTPConnectivityFailure, "test-track", "test-proto", "test-source") + suite.Nil(err) + suite.True(endpoints.UseGRPC) + suite.True(endpoints.UseHTTP) + }) + suite.Run("When additional_endpoints is not empty always create TCP endpoints", func() { defer resetHTTPConfigValuesToFalse() suite.config.SetWithoutSource("logs_config.additional_endpoints", []map[string]interface{}{ diff --git a/comp/logs/agent/config/go.mod b/comp/logs/agent/config/go.mod index 947d0a03384..6d4ce08608c 100644 --- a/comp/logs/agent/config/go.mod +++ b/comp/logs/agent/config/go.mod @@ -185,6 +185,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/netflow/payload/go.mod b/comp/netflow/payload/go.mod index 50cab6fe357..82a498da120 100644 --- a/comp/netflow/payload/go.mod +++ b/comp/netflow/payload/go.mod @@ -103,6 +103,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/comp/otelcol/collector-contrib/def/go.mod b/comp/otelcol/collector-contrib/def/go.mod index 5bc7fc4a2b0..30150db2d1c 100644 --- a/comp/otelcol/collector-contrib/def/go.mod +++ b/comp/otelcol/collector-contrib/def/go.mod @@ -103,8 +103,8 @@ require ( go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.16.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.40.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 // indirect go.opentelemetry.io/otel/exporters/prometheus v0.60.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.16.0 // indirect @@ -112,9 +112,9 @@ require ( go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.40.0 // indirect go.opentelemetry.io/otel/log v0.16.0 // indirect go.opentelemetry.io/otel/metric v1.42.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect go.opentelemetry.io/otel/sdk/log v0.16.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.opentelemetry.io/proto/otlp v1.10.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -125,8 +125,8 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect gonum.org/v1/gonum v0.17.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect ) @@ -232,6 +232,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/otelcol/collector-contrib/def/go.sum b/comp/otelcol/collector-contrib/def/go.sum index db0a12b5e75..8d1fc6865fa 100644 --- a/comp/otelcol/collector-contrib/def/go.sum +++ b/comp/otelcol/collector-contrib/def/go.sum @@ -247,10 +247,10 @@ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.40.0 h1:NOy go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.40.0/go.mod h1:VL6EgVikRLcJa9ftukrHu/ZkkhFBSo1lzvdBC9CF1ss= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0 h1:9y5sHvAxWzft1WQ4BwqcvA+IFVUJ1Ya75mSAUnFEVwE= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0/go.mod h1:eQqT90eR3X5Dbs1g9YSM30RavwLF725Ris5/XSXWvqE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 h1:DvJDOPmSWQHWywQS6lKL+pb8s3gBLOZUtw4N+mavW1I= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0/go.mod h1:EtekO9DEJb4/jRyN4v4Qjc2yA7AtfCBuz2FynRUWTXs= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 h1:ao6Oe+wSebTlQ1OEht7jlYTzQKE+pnx/iNywFvTbuuI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0/go.mod h1:u3T6vz0gh/NVzgDgiwkgLxpsSF6PaPmo2il0apGJbls= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 h1:mq/Qcf28TWz719lE3/hMB4KkyDuLJIvgJnFGcd0kEUI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0/go.mod h1:yk5LXEYhsL2htyDNJbEq7fWzNEigeEdV5xBF/Y+kAv0= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 h1:wVZXIWjQSeSmMoxF74LzAnpVQOAFDo3pPji9Y4SOFKc= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0/go.mod h1:khvBS2IggMFNwZK/6lEeHg/W57h/IX6J4URh57fuI40= go.opentelemetry.io/otel/exporters/prometheus v0.60.0 h1:cGtQxGvZbnrWdC2GyjZi0PDKVSLWP/Jocix3QWfXtbo= @@ -265,14 +265,14 @@ go.opentelemetry.io/otel/log v0.16.0 h1:DeuBPqCi6pQwtCK0pO4fvMB5eBq6sNxEnuTs88pj go.opentelemetry.io/otel/log v0.16.0/go.mod h1:rWsmqNVTLIA8UnwYVOItjyEZDbKIkMxdQunsIhpUMes= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= go.opentelemetry.io/otel/sdk/log v0.16.0 h1:e/b4bdlQwC5fnGtG3dlXUrNOnP7c8YLVSpSfEBIkTnI= go.opentelemetry.io/otel/sdk/log v0.16.0/go.mod h1:JKfP3T6ycy7QEuv3Hj8oKDy7KItrEkus8XJE6EoSzw4= go.opentelemetry.io/otel/sdk/log/logtest v0.16.0 h1:/XVkpZ41rVRTP4DfMgYv1nEtNmf65XPPyAdqV90TMy4= go.opentelemetry.io/otel/sdk/log/logtest v0.16.0/go.mod h1:iOOPgQr5MY9oac/F5W86mXdeyWZGleIx3uXO98X2R6Y= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= @@ -308,10 +308,10 @@ golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= diff --git a/comp/otelcol/collector-contrib/impl/go.mod b/comp/otelcol/collector-contrib/impl/go.mod index 10f02b5f68f..cc2d273842c 100644 --- a/comp/otelcol/collector-contrib/impl/go.mod +++ b/comp/otelcol/collector-contrib/impl/go.mod @@ -5,7 +5,7 @@ module github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/impl go 1.25.0 require ( - github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/def v0.0.0-00010101000000-000000000000 + github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/def v0.77.0-devel.0.20260211235139-a5361978c2b6 github.com/open-telemetry/opentelemetry-collector-contrib/connector/routingconnector v0.147.0 github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.147.0 github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.147.0 @@ -54,7 +54,38 @@ require ( go.opentelemetry.io/collector/service v0.147.0 ) -require github.com/puzpuzpuz/xsync/v4 v4.4.0 // indirect +require ( + github.com/go-openapi/swag/cmdutils v0.25.4 // indirect + github.com/go-openapi/swag/conv v0.25.4 // indirect + github.com/go-openapi/swag/fileutils v0.25.4 // indirect + github.com/go-openapi/swag/jsonname v0.25.4 // indirect + github.com/go-openapi/swag/jsonutils v0.25.4 // indirect + github.com/go-openapi/swag/loading v0.25.4 // indirect + github.com/go-openapi/swag/mangling v0.25.4 // indirect + github.com/go-openapi/swag/netutils v0.25.4 // indirect + github.com/go-openapi/swag/stringutils v0.25.4 // indirect + github.com/go-openapi/swag/typeutils v0.25.4 // indirect + github.com/go-openapi/swag/yamlutils v0.25.4 // indirect + go.opentelemetry.io/collector/internal/componentalias v0.147.0 // indirect +) + +require ( + github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260213154712-e02b9359151a // indirect + github.com/DataDog/datadog-agent/pkg/config/helper v0.77.0-devel.0.20260213154712-e02b9359151a // indirect + github.com/DataDog/datadog-agent/pkg/trace/log v0.77.0-devel.0.20260213154712-e02b9359151a // indirect + github.com/DataDog/datadog-agent/pkg/trace/traceutil v0.77.0-devel.0.20260213154712-e02b9359151a // indirect + github.com/alecthomas/repr v0.5.2 // indirect + github.com/aws/aws-sdk-go-v2/service/signin v1.0.8 // indirect + github.com/benbjohnson/clock v1.3.5 // indirect + github.com/hashicorp/consul/sdk v0.16.2 // indirect + github.com/hashicorp/go-msgpack v1.1.5 // indirect + github.com/hashicorp/go-msgpack/v2 v2.1.2 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/healthcheck v0.147.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/status v0.147.0 // indirect + github.com/prometheus/client_golang/exp v0.0.0-20260101091701-2cd067eb23c9 // indirect + google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 // indirect +) require ( cloud.google.com/go/auth v0.17.0 // indirect @@ -66,10 +97,9 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0 // indirect github.com/Code-Hex/go-generics-cache v1.5.1 // indirect - github.com/DataDog/agent-payload/v5 v5.0.184 // indirect + github.com/DataDog/agent-payload/v5 v5.0.191 // indirect github.com/DataDog/datadog-agent/comp/core/config v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.77.0-devel.0.20260213154712-e02b9359151a // indirect @@ -91,10 +121,8 @@ require ( github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/api v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/config/create v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/config/env v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/helper v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/config/mock v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/config/model v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.77.0-devel.0.20260213154712-e02b9359151a // indirect @@ -118,8 +146,6 @@ require ( github.com/DataDog/datadog-agent/pkg/tagset v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/telemetry v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/template v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/trace/log v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/trace/traceutil v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/util/backoff v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/util/buf v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/util/common v0.77.0-devel.0.20260213154712-e02b9359151a // indirect @@ -152,7 +178,6 @@ require ( github.com/Microsoft/go-winio v0.6.2 // indirect github.com/Showmax/go-fqdn v1.0.0 // indirect github.com/alecthomas/participle/v2 v2.1.4 // indirect - github.com/alecthomas/repr v0.5.2 // indirect github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b // indirect github.com/antchfx/xmlquery v1.5.0 // indirect github.com/antchfx/xpath v1.3.6 // indirect @@ -171,13 +196,11 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.20 // indirect github.com/aws/aws-sdk-go-v2/service/lightsail v1.50.10 // indirect github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.39.23 // indirect - github.com/aws/aws-sdk-go-v2/service/signin v1.0.8 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.30.13 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.17 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.41.9 // indirect github.com/aws/smithy-go v1.24.2 // indirect github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect - github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bmatcuk/doublestar/v4 v4.10.0 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect @@ -225,17 +248,6 @@ require ( github.com/go-openapi/spec v0.22.1 // indirect github.com/go-openapi/strfmt v0.25.0 // indirect github.com/go-openapi/swag v0.25.4 // indirect - github.com/go-openapi/swag/cmdutils v0.25.4 // indirect - github.com/go-openapi/swag/conv v0.25.4 // indirect - github.com/go-openapi/swag/fileutils v0.25.4 // indirect - github.com/go-openapi/swag/jsonname v0.25.4 // indirect - github.com/go-openapi/swag/jsonutils v0.25.4 // indirect - github.com/go-openapi/swag/loading v0.25.4 // indirect - github.com/go-openapi/swag/mangling v0.25.4 // indirect - github.com/go-openapi/swag/netutils v0.25.4 // indirect - github.com/go-openapi/swag/stringutils v0.25.4 // indirect - github.com/go-openapi/swag/typeutils v0.25.4 // indirect - github.com/go-openapi/swag/yamlutils v0.25.4 // indirect github.com/go-openapi/validate v0.25.1 // indirect github.com/go-resty/resty/v2 v2.17.1 // indirect github.com/go-viper/mapstructure/v2 v2.5.0 // indirect @@ -264,14 +276,11 @@ require ( github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect github.com/hashicorp/consul/api v1.32.1 // indirect - github.com/hashicorp/consul/sdk v0.16.2 // indirect github.com/hashicorp/cronexpr v1.1.3 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect - github.com/hashicorp/go-msgpack v1.1.5 // indirect - github.com/hashicorp/go-msgpack/v2 v2.1.2 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.8 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect @@ -336,7 +345,6 @@ require ( github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.147.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.147.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/internal/gopsutilenv v0.147.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/healthcheck v0.147.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.147.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.147.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.147.0 // indirect @@ -351,7 +359,6 @@ require ( github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.147.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.147.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.147.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/status v0.147.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.147.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.147.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.147.0 // indirect @@ -374,7 +381,6 @@ require ( github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect github.com/prometheus/alertmanager v0.30.0 // indirect github.com/prometheus/client_golang v1.23.2 // indirect - github.com/prometheus/client_golang/exp v0.0.0-20260101091701-2cd067eb23c9 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.67.5 // indirect github.com/prometheus/common/assets v0.2.0 // indirect @@ -383,6 +389,7 @@ require ( github.com/prometheus/procfs v0.20.1 // indirect github.com/prometheus/prometheus v0.309.2-0.20260113170727-c7bc56cf6c8f // indirect github.com/prometheus/sigv4 v0.3.0 // indirect + github.com/puzpuzpuz/xsync/v4 v4.4.0 // indirect github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 // indirect github.com/rs/cors v1.11.1 // indirect github.com/scaleway/scaleway-sdk-go v1.0.0-beta.36 // indirect @@ -448,7 +455,6 @@ require ( go.opentelemetry.io/collector/extension/xextension v0.147.0 // indirect go.opentelemetry.io/collector/featuregate v1.53.0 // indirect go.opentelemetry.io/collector/filter v0.147.0 // indirect - go.opentelemetry.io/collector/internal/componentalias v0.147.0 // indirect go.opentelemetry.io/collector/internal/fanoutconsumer v0.147.0 // indirect go.opentelemetry.io/collector/internal/memorylimiter v0.147.0 // indirect go.opentelemetry.io/collector/internal/sharedcomponent v0.147.0 // indirect @@ -482,8 +488,8 @@ require ( go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.16.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.40.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 // indirect go.opentelemetry.io/otel/exporters/prometheus v0.60.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.16.0 // indirect @@ -491,9 +497,9 @@ require ( go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.40.0 // indirect go.opentelemetry.io/otel/log v0.16.0 // indirect go.opentelemetry.io/otel/metric v1.42.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect go.opentelemetry.io/otel/sdk/log v0.16.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.opentelemetry.io/proto/otlp v1.10.0 // indirect go.uber.org/atomic v1.11.0 // indirect @@ -518,9 +524,8 @@ require ( golang.org/x/tools v0.43.0 // indirect gonum.org/v1/gonum v0.17.0 // indirect google.golang.org/api v0.258.0 // indirect - google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect @@ -550,9 +555,6 @@ replace github.com/mattn/go-ieproxy => github.com/mattn/go-ieproxy v0.0.1 replace github.com/openshift/api => github.com/openshift/api v0.0.0-20230726162818-81f778f3b3ec -// TODO: Remove this replace once v0.148.0 is released -replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/datadogextension v0.147.0 => github.com/DataDog/opentelemetry-collector-contrib/extension/datadogextension v0.147.1-0.20260319095942-6b90e15b61ca - // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually replace ( @@ -654,6 +656,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/otelcol/collector-contrib/impl/go.sum b/comp/otelcol/collector-contrib/impl/go.sum index c983bfc2aea..5e996458223 100644 --- a/comp/otelcol/collector-contrib/impl/go.sum +++ b/comp/otelcol/collector-contrib/impl/go.sum @@ -35,8 +35,8 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0/go.mod h1:HKpQ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Code-Hex/go-generics-cache v1.5.1 h1:6vhZGc5M7Y/YD8cIUcY8kcuQLB4cHR7U+0KMqAA0KcU= github.com/Code-Hex/go-generics-cache v1.5.1/go.mod h1:qxcC9kRVrct9rHeiYpFWSoW1vxyillCVzX13KZG8dl4= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/datadog-api-client-go/v2 v2.55.0 h1:wRwBJJpNRoyBJXdKtInfHXeXIo+nTn5DSIayaovRYVY= github.com/DataDog/datadog-api-client-go/v2 v2.55.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= @@ -44,8 +44,6 @@ github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee h1:tXibLZk3G6HncIFJK github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee/go.mod h1:nTot/Iy0kW16bXgXr6blEc8gFeAS7vTqYlhAxh+dbc0= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= -github.com/DataDog/opentelemetry-collector-contrib/extension/datadogextension v0.147.1-0.20260319095942-6b90e15b61ca h1:zGGt6/Ylp7+i4xop9XpOyC1LCv+TLVARo6TFMqpvMjY= -github.com/DataDog/opentelemetry-collector-contrib/extension/datadogextension v0.147.1-0.20260319095942-6b90e15b61ca/go.mod h1:X2RsZAzB4956LB2UFWcz6GG9MF3X/paAZtIEnzmkL4c= github.com/DataDog/sketches-go v1.4.8 h1:pFk9BNn+Rzv8IMIoPUttoOpOr3bJOqU3P6EP5wK+Lv8= github.com/DataDog/sketches-go v1.4.8/go.mod h1:a/wjRUqzqtGS8qRHRPDCs4EAQfmvPDZGDlMIF5mxXOE= github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs= @@ -580,6 +578,8 @@ github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusrem github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.147.0/go.mod h1:D3DB/PjNFYlR55EedzK2GIOUzpiBjPuvp4B4ykABPIA= github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.147.0 h1:sd8NTDoFHhjyo8MApx5f7KPNMyQZIZ7uyWwymPoKIKA= github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.147.0/go.mod h1:aVmsD2wCy0mf5ip57XJDLxg/V0JuSU/ON/SBgp7pz5U= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/datadogextension v0.147.0 h1:ko9NECw/NvfijhXuF4Jlg/E4vrhIilQW5Qq7qRUmGc0= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/datadogextension v0.147.0/go.mod h1:oEtnx72ZTngBi9ZRg/peukG8v6PZ95qunECMuzOesYA= github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.147.0 h1:pfSn3AhNXu+YWDPidCVWRAZcjAk0rPImioBF9P/Uv7M= github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.147.0/go.mod h1:m6GGqZbwf2okyQtylKTU/0cT56E6xdftYAkg3TE9jWE= github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.147.0 h1:6tIXAmOQQvTa/e323EPhetYIWWbNZ3ABKrVzqseqVnA= @@ -1085,10 +1085,10 @@ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.40.0 h1:NOy go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.40.0/go.mod h1:VL6EgVikRLcJa9ftukrHu/ZkkhFBSo1lzvdBC9CF1ss= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0 h1:9y5sHvAxWzft1WQ4BwqcvA+IFVUJ1Ya75mSAUnFEVwE= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0/go.mod h1:eQqT90eR3X5Dbs1g9YSM30RavwLF725Ris5/XSXWvqE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 h1:DvJDOPmSWQHWywQS6lKL+pb8s3gBLOZUtw4N+mavW1I= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0/go.mod h1:EtekO9DEJb4/jRyN4v4Qjc2yA7AtfCBuz2FynRUWTXs= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 h1:ao6Oe+wSebTlQ1OEht7jlYTzQKE+pnx/iNywFvTbuuI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0/go.mod h1:u3T6vz0gh/NVzgDgiwkgLxpsSF6PaPmo2il0apGJbls= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 h1:mq/Qcf28TWz719lE3/hMB4KkyDuLJIvgJnFGcd0kEUI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0/go.mod h1:yk5LXEYhsL2htyDNJbEq7fWzNEigeEdV5xBF/Y+kAv0= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 h1:wVZXIWjQSeSmMoxF74LzAnpVQOAFDo3pPji9Y4SOFKc= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0/go.mod h1:khvBS2IggMFNwZK/6lEeHg/W57h/IX6J4URh57fuI40= go.opentelemetry.io/otel/exporters/prometheus v0.60.0 h1:cGtQxGvZbnrWdC2GyjZi0PDKVSLWP/Jocix3QWfXtbo= @@ -1105,14 +1105,14 @@ go.opentelemetry.io/otel/log/logtest v0.16.0 h1:jr1CG3Z6FD9pwUaL/D0s0X4lY2ZVm1jP go.opentelemetry.io/otel/log/logtest v0.16.0/go.mod h1:qeeZw+cI/rAtCzZ03Kq1ozq6C4z/PCa+K+bb0eJfKNs= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= go.opentelemetry.io/otel/sdk/log v0.16.0 h1:e/b4bdlQwC5fnGtG3dlXUrNOnP7c8YLVSpSfEBIkTnI= go.opentelemetry.io/otel/sdk/log v0.16.0/go.mod h1:JKfP3T6ycy7QEuv3Hj8oKDy7KItrEkus8XJE6EoSzw4= go.opentelemetry.io/otel/sdk/log/logtest v0.16.0 h1:/XVkpZ41rVRTP4DfMgYv1nEtNmf65XPPyAdqV90TMy4= go.opentelemetry.io/otel/sdk/log/logtest v0.16.0/go.mod h1:iOOPgQr5MY9oac/F5W86mXdeyWZGleIx3uXO98X2R6Y= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= @@ -1292,10 +1292,10 @@ google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAs google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 h1:a12a2/BiVRxRWIqBbfqoSK6tgq8cyUgMnEI81QlPge0= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8/go.mod h1:1Ic78BnpzY8OaTCmzxJDP4qC9INZPbGZl+54RKjtyeI= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= diff --git a/comp/otelcol/converter/def/go.mod b/comp/otelcol/converter/def/go.mod index 595be6d4933..8c0418d21ec 100644 --- a/comp/otelcol/converter/def/go.mod +++ b/comp/otelcol/converter/def/go.mod @@ -124,6 +124,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/otelcol/converter/impl/go.mod b/comp/otelcol/converter/impl/go.mod index 1395ee6606f..58eb5d9c144 100644 --- a/comp/otelcol/converter/impl/go.mod +++ b/comp/otelcol/converter/impl/go.mod @@ -200,6 +200,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/otelcol/ddflareextension/def/go.mod b/comp/otelcol/ddflareextension/def/go.mod index a426bc8d641..cf9044876b5 100644 --- a/comp/otelcol/ddflareextension/def/go.mod +++ b/comp/otelcol/ddflareextension/def/go.mod @@ -127,6 +127,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod index da8c5b94044..f1a713a9fa8 100644 --- a/comp/otelcol/ddflareextension/impl/go.mod +++ b/comp/otelcol/ddflareextension/impl/go.mod @@ -44,11 +44,8 @@ require ( go.opentelemetry.io/collector/receiver/nopreceiver v0.147.0 go.opentelemetry.io/collector/receiver/otlpreceiver v0.147.0 go.uber.org/zap v1.27.1 - go.yaml.in/yaml/v2 v2.4.3 ) -require github.com/puzpuzpuz/xsync/v4 v4.4.0 // indirect - require ( github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/go-openapi/swag/cmdutils v0.25.4 // indirect @@ -70,6 +67,7 @@ require ( github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/config/helper v0.77.0-devel.0.20260213154712-e02b9359151a // indirect + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/pkg/orchestrator/util v0.0.0-20251120165911-0b75c97e8b50 // indirect github.com/DataDog/datadog-agent/pkg/trace/log v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/trace/otel v0.77.0-devel.0.20260213154712-e02b9359151a // indirect @@ -93,10 +91,10 @@ require ( github.com/open-telemetry/opentelemetry-collector-contrib/pkg/status v0.147.0 // indirect github.com/outcaste-io/ristretto v0.2.3 // indirect github.com/prometheus/client_golang/exp v0.0.0-20260101091701-2cd067eb23c9 // indirect + github.com/puzpuzpuz/xsync/v4 v4.4.0 // indirect github.com/sirupsen/logrus v1.9.4 // indirect github.com/zeebo/xxh3 v1.1.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect sigs.k8s.io/randfill v1.0.0 // indirect sigs.k8s.io/structured-merge-diff/v6 v6.3.2-0.20260122202528-d9cc6641c482 // indirect ) @@ -113,7 +111,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0 // indirect github.com/Code-Hex/go-generics-cache v1.5.1 // indirect - github.com/DataDog/agent-payload/v5 v5.0.184 // indirect + github.com/DataDog/agent-payload/v5 v5.0.191 // indirect github.com/DataDog/datadog-agent/comp/api/api/def v0.76.0-rc.4 // indirect github.com/DataDog/datadog-agent/comp/core/config v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.77.0-devel.0.20260213154712-e02b9359151a // indirect @@ -477,8 +475,8 @@ require ( go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.16.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.40.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 // indirect go.opentelemetry.io/otel/exporters/prometheus v0.60.0 // indirect go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.16.0 // indirect @@ -486,9 +484,9 @@ require ( go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.40.0 // indirect go.opentelemetry.io/otel/log v0.16.0 // indirect go.opentelemetry.io/otel/metric v1.42.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect go.opentelemetry.io/otel/sdk/log v0.16.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.opentelemetry.io/proto/otlp v1.10.0 // indirect go.uber.org/atomic v1.11.0 // indirect @@ -497,6 +495,7 @@ require ( go.uber.org/goleak v1.3.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap/exp v0.3.0 // indirect + go.yaml.in/yaml/v2 v2.4.3 go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.49.0 // indirect golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 // indirect @@ -512,13 +511,14 @@ require ( gonum.org/v1/gonum v0.17.0 // indirect google.golang.org/api v0.258.0 // indirect google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.2 // indirect k8s.io/api v0.35.1 // indirect k8s.io/apimachinery v0.35.1 // indirect @@ -631,6 +631,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/otelcol/ddflareextension/impl/go.sum b/comp/otelcol/ddflareextension/impl/go.sum index 48d40556980..cac3ddd7632 100644 --- a/comp/otelcol/ddflareextension/impl/go.sum +++ b/comp/otelcol/ddflareextension/impl/go.sum @@ -36,8 +36,8 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0/go.mod h1:HKpQ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Code-Hex/go-generics-cache v1.5.1 h1:6vhZGc5M7Y/YD8cIUcY8kcuQLB4cHR7U+0KMqAA0KcU= github.com/Code-Hex/go-generics-cache v1.5.1/go.mod h1:qxcC9kRVrct9rHeiYpFWSoW1vxyillCVzX13KZG8dl4= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/datadog-api-client-go/v2 v2.55.0 h1:wRwBJJpNRoyBJXdKtInfHXeXIo+nTn5DSIayaovRYVY= github.com/DataDog/datadog-api-client-go/v2 v2.55.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= @@ -963,10 +963,10 @@ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.40.0 h1:NOy go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.40.0/go.mod h1:VL6EgVikRLcJa9ftukrHu/ZkkhFBSo1lzvdBC9CF1ss= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0 h1:9y5sHvAxWzft1WQ4BwqcvA+IFVUJ1Ya75mSAUnFEVwE= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0/go.mod h1:eQqT90eR3X5Dbs1g9YSM30RavwLF725Ris5/XSXWvqE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 h1:DvJDOPmSWQHWywQS6lKL+pb8s3gBLOZUtw4N+mavW1I= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0/go.mod h1:EtekO9DEJb4/jRyN4v4Qjc2yA7AtfCBuz2FynRUWTXs= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 h1:ao6Oe+wSebTlQ1OEht7jlYTzQKE+pnx/iNywFvTbuuI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0/go.mod h1:u3T6vz0gh/NVzgDgiwkgLxpsSF6PaPmo2il0apGJbls= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 h1:mq/Qcf28TWz719lE3/hMB4KkyDuLJIvgJnFGcd0kEUI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0/go.mod h1:yk5LXEYhsL2htyDNJbEq7fWzNEigeEdV5xBF/Y+kAv0= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 h1:wVZXIWjQSeSmMoxF74LzAnpVQOAFDo3pPji9Y4SOFKc= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0/go.mod h1:khvBS2IggMFNwZK/6lEeHg/W57h/IX6J4URh57fuI40= go.opentelemetry.io/otel/exporters/prometheus v0.60.0 h1:cGtQxGvZbnrWdC2GyjZi0PDKVSLWP/Jocix3QWfXtbo= @@ -983,14 +983,14 @@ go.opentelemetry.io/otel/log/logtest v0.16.0 h1:jr1CG3Z6FD9pwUaL/D0s0X4lY2ZVm1jP go.opentelemetry.io/otel/log/logtest v0.16.0/go.mod h1:qeeZw+cI/rAtCzZ03Kq1ozq6C4z/PCa+K+bb0eJfKNs= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= go.opentelemetry.io/otel/sdk/log v0.16.0 h1:e/b4bdlQwC5fnGtG3dlXUrNOnP7c8YLVSpSfEBIkTnI= go.opentelemetry.io/otel/sdk/log v0.16.0/go.mod h1:JKfP3T6ycy7QEuv3Hj8oKDy7KItrEkus8XJE6EoSzw4= go.opentelemetry.io/otel/sdk/log/logtest v0.16.0 h1:/XVkpZ41rVRTP4DfMgYv1nEtNmf65XPPyAdqV90TMy4= go.opentelemetry.io/otel/sdk/log/logtest v0.16.0/go.mod h1:iOOPgQr5MY9oac/F5W86mXdeyWZGleIx3uXO98X2R6Y= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= @@ -1201,10 +1201,10 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 h1:a12a2/BiVRxRWIqBbfqoSK6tgq8cyUgMnEI81QlPge0= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8/go.mod h1:1Ic78BnpzY8OaTCmzxJDP4qC9INZPbGZl+54RKjtyeI= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= diff --git a/comp/otelcol/ddflareextension/types/go.mod b/comp/otelcol/ddflareextension/types/go.mod index 98041e4079c..51a384d2104 100644 --- a/comp/otelcol/ddflareextension/types/go.mod +++ b/comp/otelcol/ddflareextension/types/go.mod @@ -103,6 +103,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/otelcol/ddprofilingextension/def/go.mod b/comp/otelcol/ddprofilingextension/def/go.mod index 20a51b3dba4..59d593f08b5 100644 --- a/comp/otelcol/ddprofilingextension/def/go.mod +++ b/comp/otelcol/ddprofilingextension/def/go.mod @@ -127,6 +127,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/otelcol/ddprofilingextension/impl/go.mod b/comp/otelcol/ddprofilingextension/impl/go.mod index 17e740f9368..7c407cfae08 100644 --- a/comp/otelcol/ddprofilingextension/impl/go.mod +++ b/comp/otelcol/ddprofilingextension/impl/go.mod @@ -240,8 +240,8 @@ require ( go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 // indirect go.opentelemetry.io/otel v1.42.0 // indirect go.opentelemetry.io/otel/metric v1.42.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.19.0 // indirect @@ -261,7 +261,7 @@ require ( golang.org/x/time v0.14.0 // indirect golang.org/x/tools v0.43.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect @@ -379,6 +379,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/otelcol/ddprofilingextension/impl/go.sum b/comp/otelcol/ddprofilingextension/impl/go.sum index b155a3bb059..dfcb2b80d05 100644 --- a/comp/otelcol/ddprofilingextension/impl/go.sum +++ b/comp/otelcol/ddprofilingextension/impl/go.sum @@ -479,10 +479,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= @@ -583,8 +583,8 @@ gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod index 6d956fb2b82..f4f000dd60d 100644 --- a/comp/otelcol/logsagentpipeline/go.mod +++ b/comp/otelcol/logsagentpipeline/go.mod @@ -4,10 +4,8 @@ go 1.25.0 require github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.64.0-rc.3 -require gopkg.in/yaml.v3 v3.0.1 // indirect - require ( - github.com/DataDog/agent-payload/v5 v5.0.184 // indirect + github.com/DataDog/agent-payload/v5 v5.0.191 // indirect github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.64.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.64.0-rc.3 // indirect @@ -35,6 +33,7 @@ require ( github.com/DataDog/datadog-agent/pkg/logs/metrics v0.64.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/processor v0.64.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/sender v0.64.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/pkg/logs/sources v0.64.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.64.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.64.0-rc.3 // indirect @@ -104,7 +103,10 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -208,6 +210,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/comp/otelcol/logsagentpipeline/go.sum b/comp/otelcol/logsagentpipeline/go.sum index 9f326841482..18f7b3457a4 100644 --- a/comp/otelcol/logsagentpipeline/go.sum +++ b/comp/otelcol/logsagentpipeline/go.sum @@ -1,6 +1,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs= github.com/DataDog/viper v1.15.1/go.mod h1:rDLDREOPd+gpEbA8y4Y/5wTvyLqvUiCmDXX0jRZy8mw= github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE= @@ -25,6 +25,10 @@ github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7z github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -35,8 +39,12 @@ github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 h1:0G5JVG0aJDpWvH1r8idd+wbPcAH14UqIuUMepx3v9rE= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94/go.mod h1:MvF7bZQy5lD2WcLXjFytRVvnTrFvrjo/qGka1MIBOPE= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -113,6 +121,18 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= +go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= +go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= +go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= +go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= +go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.19.0 h1:BACLhebsYdpQ7IROQ1AGPjrXcP5dF80U3gKoFzbaq/4= @@ -168,6 +188,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= +google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod index 05d6706f512..47c6f2c3f4a 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod @@ -29,10 +29,8 @@ require ( go.uber.org/zap v1.27.1 ) -require gopkg.in/yaml.v3 v3.0.1 // indirect - require ( - github.com/DataDog/agent-payload/v5 v5.0.184 // indirect + github.com/DataDog/agent-payload/v5 v5.0.191 // indirect github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.64.0-rc.3 // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.72.0-rc.1 // indirect @@ -53,6 +51,7 @@ require ( github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.72.2 // indirect github.com/DataDog/datadog-agent/pkg/fips v0.64.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/processor v0.64.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.64.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/types v0.71.0-rc.1 // indirect github.com/DataDog/datadog-agent/pkg/telemetry v0.64.1 // indirect @@ -117,7 +116,10 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -221,6 +223,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum index 9f326841482..18f7b3457a4 100644 --- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum +++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.sum @@ -1,6 +1,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs= github.com/DataDog/viper v1.15.1/go.mod h1:rDLDREOPd+gpEbA8y4Y/5wTvyLqvUiCmDXX0jRZy8mw= github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE= @@ -25,6 +25,10 @@ github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7z github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -35,8 +39,12 @@ github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 h1:0G5JVG0aJDpWvH1r8idd+wbPcAH14UqIuUMepx3v9rE= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94/go.mod h1:MvF7bZQy5lD2WcLXjFytRVvnTrFvrjo/qGka1MIBOPE= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -113,6 +121,18 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= +go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= +go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= +go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= +go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= +go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.19.0 h1:BACLhebsYdpQ7IROQ1AGPjrXcP5dF80U3gKoFzbaq/4= @@ -168,6 +188,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= +google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod index 635fd2a1556..7edbb92ed42 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod @@ -40,17 +40,14 @@ require ( google.golang.org/protobuf v1.36.11 ) -require github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect - require ( go.opentelemetry.io/collector/internal/componentalias v0.147.0 // indirect go.opentelemetry.io/collector/pipeline/xpipeline v0.147.0 // indirect go.yaml.in/yaml/v2 v2.4.3 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect ) require ( - github.com/DataDog/agent-payload/v5 v5.0.184 // indirect + github.com/DataDog/agent-payload/v5 v5.0.191 // indirect github.com/DataDog/datadog-agent/comp/core/config v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.77.0-devel.0.20260213154712-e02b9359151a // indirect @@ -91,6 +88,7 @@ require ( github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.64.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/processor v0.64.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/sender v0.64.0-rc.3 // indirect + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/pkg/logs/sources v0.64.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.64.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.64.0-rc.3 // indirect @@ -117,7 +115,7 @@ require ( github.com/DataDog/datadog-agent/pkg/util/cgroups v0.64.0-rc.3 // indirect github.com/DataDog/datadog-agent/pkg/util/common v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/util/compression v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.64.0-devel // indirect + github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.70.0 // indirect github.com/DataDog/datadog-agent/pkg/util/executable v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/util/filesystem v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/util/flavor v0.71.0-rc.1 // indirect @@ -171,6 +169,7 @@ require ( github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-version v1.8.0 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -245,8 +244,8 @@ require ( go.opentelemetry.io/collector/receiver/xreceiver v0.147.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 // indirect go.opentelemetry.io/otel v1.42.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.19.0 // indirect go.uber.org/fx v1.24.0 // indirect @@ -259,8 +258,9 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -364,6 +364,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../../../pkg/logs/status/utils diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum index 80b55438ad7..44f684b7df0 100644 --- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum @@ -1,6 +1,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/datadog-api-client-go/v2 v2.55.0 h1:wRwBJJpNRoyBJXdKtInfHXeXIo+nTn5DSIayaovRYVY= github.com/DataDog/datadog-api-client-go/v2 v2.55.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/datadog-go/v5 v5.8.3 h1:s58CUJ9s8lezjhTNJO/SxkPBv2qZjS3ktpRSqGF5n0s= @@ -361,10 +361,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= @@ -456,8 +456,8 @@ gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod index ea16b0a1606..4099b35e0d8 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod @@ -3,7 +3,7 @@ module github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/lo go 1.25.0 require ( - github.com/DataDog/agent-payload/v5 v5.0.184 + github.com/DataDog/agent-payload/v5 v5.0.191 github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.73.0-devel.0.20251030121902-cd89eab046d6 github.com/DataDog/datadog-agent/comp/core/telemetry v0.77.0-devel.0.20260213154712-e02b9359151a github.com/DataDog/datadog-agent/comp/logs/agent/config v0.77.0-devel.0.20260213154712-e02b9359151a @@ -30,13 +30,10 @@ require ( go.uber.org/zap v1.27.1 ) -require github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect - require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect go.opentelemetry.io/collector/internal/componentalias v0.147.0 // indirect go.opentelemetry.io/collector/pipeline/xpipeline v0.147.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect ) require ( @@ -108,6 +105,7 @@ require ( github.com/google/go-tpm v0.9.8 // indirect github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/go-version v1.8.0 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/json-iterator/go v1.1.12 // indirect @@ -177,8 +175,8 @@ require ( go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 // indirect go.opentelemetry.io/otel v1.42.0 // indirect go.opentelemetry.io/otel/metric v1.42.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.19.0 // indirect @@ -193,9 +191,10 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -299,6 +298,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../../../pkg/logs/status/utils diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum index 434b16104e0..290d5c9317d 100644 --- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum @@ -1,6 +1,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/datadog-api-client-go/v2 v2.55.0 h1:wRwBJJpNRoyBJXdKtInfHXeXIo+nTn5DSIayaovRYVY= github.com/DataDog/datadog-api-client-go/v2 v2.55.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= @@ -286,10 +286,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= @@ -361,8 +361,8 @@ gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod index e5bcf9bc126..abdecefa100 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod @@ -50,8 +50,6 @@ require ( golang.org/x/net v0.52.0 ) -require github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect - require ( github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/config/helper v0.77.0-devel.0.20260213154712-e02b9359151a // indirect @@ -60,16 +58,16 @@ require ( github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.64.0-devel // indirect github.com/DataDog/datadog-agent/pkg/util/flavor v0.70.0 // indirect github.com/benbjohnson/clock v1.3.5 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/mdlayher/socket v0.5.1 // indirect github.com/mdlayher/vsock v1.2.1 // indirect go.opentelemetry.io/collector/internal/componentalias v0.147.0 // indirect go.opentelemetry.io/collector/pipeline/xpipeline v0.147.0 // indirect go.yaml.in/yaml/v2 v2.4.3 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect ) require ( - github.com/DataDog/agent-payload/v5 v5.0.184 // indirect + github.com/DataDog/agent-payload/v5 v5.0.191 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/comp/core/secrets/def v0.77.0-devel.0.20260213154712-e02b9359151a @@ -207,8 +205,8 @@ require ( go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 // indirect go.opentelemetry.io/otel v1.42.0 // indirect go.opentelemetry.io/otel/metric v1.42.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.19.0 // indirect @@ -218,9 +216,10 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -324,6 +323,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../../../pkg/logs/status/utils diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum index 3acecb9831a..b0f2d2e27cd 100644 --- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum +++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum @@ -1,6 +1,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= github.com/DataDog/sketches-go v1.4.8 h1:pFk9BNn+Rzv8IMIoPUttoOpOr3bJOqU3P6EP5wK+Lv8= @@ -312,10 +312,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= @@ -386,8 +386,8 @@ gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= diff --git a/comp/otelcol/otlp/components/metricsclient/go.mod b/comp/otelcol/otlp/components/metricsclient/go.mod index d4d0e7f3e4a..5f23889d53d 100644 --- a/comp/otelcol/otlp/components/metricsclient/go.mod +++ b/comp/otelcol/otlp/components/metricsclient/go.mod @@ -8,7 +8,7 @@ require ( github.com/stretchr/testify v1.11.1 go.opentelemetry.io/otel v1.42.0 go.opentelemetry.io/otel/metric v1.42.0 - go.opentelemetry.io/otel/sdk/metric v1.40.0 + go.opentelemetry.io/otel/sdk/metric v1.41.0 ) require gopkg.in/yaml.v3 v3.0.1 // indirect @@ -22,7 +22,7 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.uber.org/atomic v1.11.0 // indirect golang.org/x/sys v0.42.0 // indirect @@ -129,6 +129,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../../pkg/logs/status/utils diff --git a/comp/otelcol/otlp/components/metricsclient/go.sum b/comp/otelcol/otlp/components/metricsclient/go.sum index e5cffb4f584..b97d0a4eeb0 100644 --- a/comp/otelcol/otlp/components/metricsclient/go.sum +++ b/comp/otelcol/otlp/components/metricsclient/go.sum @@ -48,10 +48,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= diff --git a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod index 73817666c20..17ce9604516 100644 --- a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod +++ b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod @@ -162,8 +162,8 @@ require ( go.opentelemetry.io/collector/pdata/testdata v0.147.0 // indirect go.opentelemetry.io/collector/pipeline v1.53.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.19.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -177,8 +177,8 @@ require ( golang.org/x/time v0.14.0 // indirect google.golang.org/api v0.258.0 // indirect google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect ) @@ -284,6 +284,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../../../pkg/logs/status/utils diff --git a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum index f2aa39008fb..8ce938274ce 100644 --- a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum +++ b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.sum @@ -252,10 +252,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= @@ -360,10 +360,10 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 h1:a12a2/BiVRxRWIqBbfqoSK6tgq8cyUgMnEI81QlPge0= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8/go.mod h1:1Ic78BnpzY8OaTCmzxJDP4qC9INZPbGZl+54RKjtyeI= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod index 47e2731cd71..217314a58ca 100644 --- a/comp/otelcol/otlp/testutil/go.mod +++ b/comp/otelcol/otlp/testutil/go.mod @@ -186,6 +186,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/otelcol/status/def/go.mod b/comp/otelcol/status/def/go.mod index 30b9b117d52..c60039e2369 100644 --- a/comp/otelcol/status/def/go.mod +++ b/comp/otelcol/status/def/go.mod @@ -103,6 +103,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/otelcol/status/impl/go.mod b/comp/otelcol/status/impl/go.mod index 305be2fa188..6d7cb6bba91 100644 --- a/comp/otelcol/status/impl/go.mod +++ b/comp/otelcol/status/impl/go.mod @@ -213,6 +213,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/otelcol/status/impl/go.sum b/comp/otelcol/status/impl/go.sum index f11aa00481b..d128bec0d7f 100644 --- a/comp/otelcol/status/impl/go.sum +++ b/comp/otelcol/status/impl/go.sum @@ -263,8 +263,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.258.0 h1:IKo1j5FBlN74fe5isA2PVozN3Y5pwNKriEgAXPOkDAc= google.golang.org/api v0.258.0/go.mod h1:qhOMTQEZ6lUps63ZNq9jhODswwjkjYYguA7fA3TBFww= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= diff --git a/comp/serializer/logscompression/go.mod b/comp/serializer/logscompression/go.mod index 6d70829388f..c4ae8eac375 100644 --- a/comp/serializer/logscompression/go.mod +++ b/comp/serializer/logscompression/go.mod @@ -184,6 +184,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/comp/serializer/metricscompression/go.mod b/comp/serializer/metricscompression/go.mod index e16389f4b72..92042ba1b23 100644 --- a/comp/serializer/metricscompression/go.mod +++ b/comp/serializer/metricscompression/go.mod @@ -184,6 +184,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/comp/trace/agent/def/go.mod b/comp/trace/agent/def/go.mod index 8c59861a89e..af8707afba6 100644 --- a/comp/trace/agent/def/go.mod +++ b/comp/trace/agent/def/go.mod @@ -135,6 +135,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/trace/agent/def/go.sum b/comp/trace/agent/def/go.sum index e00df75e0ce..7d292c4500c 100644 --- a/comp/trace/agent/def/go.sum +++ b/comp/trace/agent/def/go.sum @@ -60,10 +60,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= diff --git a/comp/trace/compression/def/go.mod b/comp/trace/compression/def/go.mod index 93c16e52ded..b59266f4d19 100644 --- a/comp/trace/compression/def/go.mod +++ b/comp/trace/compression/def/go.mod @@ -103,6 +103,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/trace/compression/impl-gzip/go.mod b/comp/trace/compression/impl-gzip/go.mod index d7a1951f147..02e5b11fa96 100644 --- a/comp/trace/compression/impl-gzip/go.mod +++ b/comp/trace/compression/impl-gzip/go.mod @@ -105,6 +105,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/comp/trace/compression/impl-zstd/go.mod b/comp/trace/compression/impl-zstd/go.mod index 8f849cb107b..367ca388c64 100644 --- a/comp/trace/compression/impl-zstd/go.mod +++ b/comp/trace/compression/impl-zstd/go.mod @@ -108,6 +108,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/go.mod b/go.mod index 38cd722a10e..ce352554c3a 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( code.cloudfoundry.org/lager v2.0.0+incompatible github.com/CycloneDX/cyclonedx-go v0.9.3 github.com/DATA-DOG/go-sqlmock v1.5.2 - github.com/DataDog/agent-payload/v5 v5.0.184 + github.com/DataDog/agent-payload/v5 v5.0.191 github.com/DataDog/datadog-agent/comp/api/api/def v0.76.0-rc.4 github.com/DataDog/datadog-agent/comp/core/agenttelemetry/def v0.0.0 github.com/DataDog/datadog-agent/comp/core/agenttelemetry/fx v0.0.0-20251027120702-0e91eee9852f @@ -111,6 +111,7 @@ require ( github.com/DataDog/datadog-agent/pkg/logs/message v0.64.0-rc.12 github.com/DataDog/datadog-agent/pkg/logs/metrics v0.64.0-rc.12 github.com/DataDog/datadog-agent/pkg/logs/sender v0.64.0-rc.12 + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/pkg/logs/sources v0.64.0-rc.12 github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.64.0-rc.12 github.com/DataDog/datadog-agent/pkg/logs/types v0.77.0-devel.0.20260213154712-e02b9359151a @@ -372,10 +373,10 @@ require ( go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0 go.opentelemetry.io/ebpf-profiler v0.0.202547 go.opentelemetry.io/otel v1.42.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 - go.opentelemetry.io/otel/sdk v1.40.0 + go.opentelemetry.io/otel/sdk v1.41.0 go.opentelemetry.io/otel/trace v1.42.0 go.uber.org/atomic v1.11.0 go.uber.org/automaxprocs v1.6.0 @@ -911,7 +912,7 @@ require ( go.opentelemetry.io/otel/log v0.16.0 // indirect go.opentelemetry.io/otel/metric v1.42.0 // indirect go.opentelemetry.io/otel/sdk/log v0.16.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 + go.opentelemetry.io/otel/sdk/metric v1.41.0 go.opentelemetry.io/proto/otlp v1.10.0 // indirect go.uber.org/goleak v1.3.0 go.uber.org/zap/exp v0.3.0 @@ -926,8 +927,8 @@ require ( google.golang.org/api v0.258.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect gopkg.in/Knetic/govaluate.v3 v3.0.0 // indirect gopkg.in/cheggaaa/pb.v1 v1.0.28 // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect @@ -1361,6 +1362,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ./pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ./pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ./pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ./pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ./pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ./pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ./pkg/logs/status/utils diff --git a/go.sum b/go.sum index 2e6a5bde5da..a36017f6b94 100644 --- a/go.sum +++ b/go.sum @@ -181,8 +181,8 @@ github.com/CycloneDX/cyclonedx-go v0.9.3 h1:Pyk/lwavPz7AaZNvugKFkdWOm93MzaIyWmBw github.com/CycloneDX/cyclonedx-go v0.9.3/go.mod h1:vcK6pKgO1WanCdd61qx4bFnSsDJQ6SbM2ZuMIgq86Jg= github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/appsec-internal-go v1.14.0 h1:MIEZ015kdpeSZSFYBQteSmg8f7zkQTWbMDHbSL9zBx8= github.com/DataDog/appsec-internal-go v1.14.0/go.mod h1:9YppRCpElfGX+emXOKruShFYsdPq7WEPq/Fen4tYYpk= github.com/DataDog/aptly v1.5.3 h1:oLsRvjuXSVM4ia0N83dU3KiQeiJ6BaszYbTZOkSfDlw= @@ -2867,10 +2867,10 @@ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.40.0 h1:NOy go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.40.0/go.mod h1:VL6EgVikRLcJa9ftukrHu/ZkkhFBSo1lzvdBC9CF1ss= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0 h1:9y5sHvAxWzft1WQ4BwqcvA+IFVUJ1Ya75mSAUnFEVwE= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0/go.mod h1:eQqT90eR3X5Dbs1g9YSM30RavwLF725Ris5/XSXWvqE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 h1:DvJDOPmSWQHWywQS6lKL+pb8s3gBLOZUtw4N+mavW1I= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0/go.mod h1:EtekO9DEJb4/jRyN4v4Qjc2yA7AtfCBuz2FynRUWTXs= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 h1:ao6Oe+wSebTlQ1OEht7jlYTzQKE+pnx/iNywFvTbuuI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0/go.mod h1:u3T6vz0gh/NVzgDgiwkgLxpsSF6PaPmo2il0apGJbls= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 h1:mq/Qcf28TWz719lE3/hMB4KkyDuLJIvgJnFGcd0kEUI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0/go.mod h1:yk5LXEYhsL2htyDNJbEq7fWzNEigeEdV5xBF/Y+kAv0= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 h1:wVZXIWjQSeSmMoxF74LzAnpVQOAFDo3pPji9Y4SOFKc= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0/go.mod h1:khvBS2IggMFNwZK/6lEeHg/W57h/IX6J4URh57fuI40= go.opentelemetry.io/otel/exporters/prometheus v0.60.0 h1:cGtQxGvZbnrWdC2GyjZi0PDKVSLWP/Jocix3QWfXtbo= @@ -2887,14 +2887,14 @@ go.opentelemetry.io/otel/log/logtest v0.16.0 h1:jr1CG3Z6FD9pwUaL/D0s0X4lY2ZVm1jP go.opentelemetry.io/otel/log/logtest v0.16.0/go.mod h1:qeeZw+cI/rAtCzZ03Kq1ozq6C4z/PCa+K+bb0eJfKNs= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= go.opentelemetry.io/otel/sdk/log v0.16.0 h1:e/b4bdlQwC5fnGtG3dlXUrNOnP7c8YLVSpSfEBIkTnI= go.opentelemetry.io/otel/sdk/log v0.16.0/go.mod h1:JKfP3T6ycy7QEuv3Hj8oKDy7KItrEkus8XJE6EoSzw4= go.opentelemetry.io/otel/sdk/log/logtest v0.16.0 h1:/XVkpZ41rVRTP4DfMgYv1nEtNmf65XPPyAdqV90TMy4= go.opentelemetry.io/otel/sdk/log/logtest v0.16.0/go.mod h1:iOOPgQr5MY9oac/F5W86mXdeyWZGleIx3uXO98X2R6Y= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= @@ -3434,10 +3434,10 @@ google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 h1:a12a2/BiVRxRWIqBbfqoSK6tgq8cyUgMnEI81QlPge0= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8/go.mod h1:1Ic78BnpzY8OaTCmzxJDP4qC9INZPbGZl+54RKjtyeI= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/go.work b/go.work index e559f1ed072..bf03b6034a2 100644 --- a/go.work +++ b/go.work @@ -113,6 +113,7 @@ use ( pkg/logs/pipeline pkg/logs/processor pkg/logs/sender + pkg/logs/sender/grpc pkg/logs/sources pkg/logs/status/statusinterface pkg/logs/status/utils diff --git a/internal/tools/go.mod b/internal/tools/go.mod index d1b09ac411c..c6d3ee12491 100644 --- a/internal/tools/go.mod +++ b/internal/tools/go.mod @@ -72,13 +72,14 @@ require ( github.com/ccojocar/zxcvbn-go v1.0.4 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/charithe/durationcheck v0.0.11 // indirect - github.com/charmbracelet/colorprofile v0.3.1 // indirect + github.com/charmbracelet/colorprofile v0.4.2 // indirect github.com/charmbracelet/lipgloss v1.1.0 // indirect - github.com/charmbracelet/x/ansi v0.10.1 // indirect - github.com/charmbracelet/x/cellbuf v0.0.13 // indirect - github.com/charmbracelet/x/term v0.2.1 // indirect + github.com/charmbracelet/x/ansi v0.11.6 // indirect + github.com/charmbracelet/x/cellbuf v0.0.15 // indirect + github.com/charmbracelet/x/term v0.2.2 // indirect github.com/ckaznocha/intrange v0.3.1 // indirect - github.com/clipperhouse/uax29/v2 v2.2.0 // indirect + github.com/clipperhouse/displaywidth v0.11.0 // indirect + github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/cloudflare/circl v1.6.3 // indirect github.com/curioswitch/go-reassign v0.3.0 // indirect github.com/cyphar/filepath-securejoin v0.6.0 // indirect @@ -175,7 +176,7 @@ require ( github.com/ldez/tagliatelle v0.7.2 // indirect github.com/ldez/usetesting v0.5.0 // indirect github.com/leonklingele/grouper v1.1.2 // indirect - github.com/lucasb-eyer/go-colorful v1.2.0 // indirect + github.com/lucasb-eyer/go-colorful v1.3.0 // indirect github.com/macabu/inamedparam v0.2.0 // indirect github.com/manuelarte/embeddedstructfieldcheck v0.4.0 // indirect github.com/manuelarte/funcorder v0.5.0 // indirect @@ -184,7 +185,7 @@ require ( github.com/matoous/godox v1.1.0 // indirect github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.19 // indirect + github.com/mattn/go-runewidth v0.0.20 // indirect github.com/mattn/go-zglob v0.0.2-0.20191112051448-a8912a37f9e7 // indirect github.com/mgechev/revive v1.14.0 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect diff --git a/internal/tools/go.sum b/internal/tools/go.sum index a49c1bd5494..5c3993c1e87 100644 --- a/internal/tools/go.sum +++ b/internal/tools/go.sum @@ -112,20 +112,22 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/charithe/durationcheck v0.0.11 h1:g1/EX1eIiKS57NTWsYtHDZ/APfeXKhye1DidBcABctk= github.com/charithe/durationcheck v0.0.11/go.mod h1:x5iZaixRNl8ctbM+3B2RrPG5t856TxRyVQEnbIEM2X4= -github.com/charmbracelet/colorprofile v0.3.1 h1:k8dTHMd7fgw4bnFd7jXTLZrSU/CQrKnL3m+AxCzDz40= -github.com/charmbracelet/colorprofile v0.3.1/go.mod h1:/GkGusxNs8VB/RSOh3fu0TJmQ4ICMMPApIIVn0KszZ0= +github.com/charmbracelet/colorprofile v0.4.2 h1:BdSNuMjRbotnxHSfxy+PCSa4xAmz7szw70ktAtWRYrY= +github.com/charmbracelet/colorprofile v0.4.2/go.mod h1:0rTi81QpwDElInthtrQ6Ni7cG0sDtwAd4C4le060fT8= github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY= github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30= -github.com/charmbracelet/x/ansi v0.10.1 h1:rL3Koar5XvX0pHGfovN03f5cxLbCF2YvLeyz7D2jVDQ= -github.com/charmbracelet/x/ansi v0.10.1/go.mod h1:3RQDQ6lDnROptfpWuUVIUG64bD2g2BgntdxH0Ya5TeE= -github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k= -github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= -github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= -github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= +github.com/charmbracelet/x/ansi v0.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8= +github.com/charmbracelet/x/ansi v0.11.6/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ= +github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI= +github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q= +github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk= +github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI= github.com/ckaznocha/intrange v0.3.1 h1:j1onQyXvHUsPWujDH6WIjhyH26gkRt/txNlV7LspvJs= github.com/ckaznocha/intrange v0.3.1/go.mod h1:QVepyz1AkUoFQkpEqksSYpNpUo3c5W7nWh/s6SHIJJk= -github.com/clipperhouse/uax29/v2 v2.2.0 h1:ChwIKnQN3kcZteTXMgb1wztSgaU+ZemkgWdohwgs8tY= -github.com/clipperhouse/uax29/v2 v2.2.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= +github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSEFgwIwO+UVM8= +github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0= +github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk= +github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8= github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= @@ -381,8 +383,8 @@ github.com/ldez/usetesting v0.5.0 h1:3/QtzZObBKLy1F4F8jLuKJiKBjjVFi1IavpoWbmqLwc github.com/ldez/usetesting v0.5.0/go.mod h1:Spnb4Qppf8JTuRgblLrEWb7IE6rDmUpGvxY3iRrzvDQ= github.com/leonklingele/grouper v1.1.2 h1:o1ARBDLOmmasUaNDesWqWCIFH3u7hoFlM84YrjT3mIY= github.com/leonklingele/grouper v1.1.2/go.mod h1:6D0M/HVkhs2yRKRFZUoGjeDy7EZTfFBE9gl4kjmIGkA= -github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= -github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag= +github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/macabu/inamedparam v0.2.0 h1:VyPYpOc10nkhI2qeNUdh3Zket4fcZjEWe35poddBCpE= github.com/macabu/inamedparam v0.2.0/go.mod h1:+Pee9/YfGe5LJ62pYXqB89lJ+0k5bsR8Wgz/C0Zlq3U= github.com/manuelarte/embeddedstructfieldcheck v0.4.0 h1:3mAIyaGRtjK6EO9E73JlXLtiy7ha80b2ZVGyacxgfww= @@ -404,8 +406,8 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/ github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= -github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= +github.com/mattn/go-runewidth v0.0.20 h1:WcT52H91ZUAwy8+HUkdM3THM6gXqXuLJi9O3rjcQQaQ= +github.com/mattn/go-runewidth v0.0.20/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mattn/go-sqlite3 v1.14.5/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI= github.com/mattn/go-zglob v0.0.2-0.20191112051448-a8912a37f9e7 h1:6HgbBMgs3hI9y1/MYG0r9j6daUubUskZNsEW4fkWR/k= github.com/mattn/go-zglob v0.0.2-0.20191112051448-a8912a37f9e7/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= diff --git a/internal/tools/proto/go.mod b/internal/tools/proto/go.mod index 52056628982..4bbb77b14ca 100644 --- a/internal/tools/proto/go.mod +++ b/internal/tools/proto/go.mod @@ -15,7 +15,7 @@ require ( require ( github.com/philhofer/fwd v1.2.0 // indirect go.opentelemetry.io/otel v1.42.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect golang.org/x/mod v0.34.0 // indirect golang.org/x/net v0.52.0 // indirect golang.org/x/sync v0.20.0 // indirect @@ -23,5 +23,5 @@ require ( golang.org/x/text v0.35.0 // indirect golang.org/x/tools v0.43.0 // indirect gonum.org/v1/gonum v0.17.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect ) diff --git a/internal/tools/proto/go.sum b/internal/tools/proto/go.sum index 0646f5778eb..4b44d71bef3 100644 --- a/internal/tools/proto/go.sum +++ b/internal/tools/proto/go.sum @@ -27,10 +27,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -70,8 +70,8 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= diff --git a/modules.yml b/modules.yml index 288a9208284..2beba436c03 100644 --- a/modules.yml +++ b/modules.yml @@ -228,6 +228,8 @@ modules: used_by_otel: true pkg/logs/sender: used_by_otel: true + pkg/logs/sender/grpc: + used_by_otel: true pkg/logs/sources: used_by_otel: true pkg/logs/status/statusinterface: diff --git a/pkg/aggregator/ckey/go.mod b/pkg/aggregator/ckey/go.mod index 2bed5fa881a..957d64fc209 100644 --- a/pkg/aggregator/ckey/go.mod +++ b/pkg/aggregator/ckey/go.mod @@ -117,6 +117,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/api/go.mod b/pkg/api/go.mod index cb6cf97244c..ff79573b36f 100644 --- a/pkg/api/go.mod +++ b/pkg/api/go.mod @@ -172,6 +172,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/pkg/collector/check/defaults/go.mod b/pkg/collector/check/defaults/go.mod index 2b218aa99bd..91ab21fde1c 100644 --- a/pkg/collector/check/defaults/go.mod +++ b/pkg/collector/check/defaults/go.mod @@ -103,6 +103,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/pkg/config/basic/go.mod b/pkg/config/basic/go.mod index d4a99904b64..4c56c81bb4a 100644 --- a/pkg/config/basic/go.mod +++ b/pkg/config/basic/go.mod @@ -115,6 +115,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/config/create/go.mod b/pkg/config/create/go.mod index 0532d9e8b9d..9993e46a193 100644 --- a/pkg/config/create/go.mod +++ b/pkg/config/create/go.mod @@ -138,6 +138,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/config/env/go.mod b/pkg/config/env/go.mod index a93497da3a0..1ca1013b9bb 100644 --- a/pkg/config/env/go.mod +++ b/pkg/config/env/go.mod @@ -142,6 +142,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/config/helper/go.mod b/pkg/config/helper/go.mod index d7a1fa7474e..b5aa0eef711 100644 --- a/pkg/config/helper/go.mod +++ b/pkg/config/helper/go.mod @@ -135,6 +135,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/config/mock/go.mod b/pkg/config/mock/go.mod index 7c4aad28a51..7c004b0535c 100644 --- a/pkg/config/mock/go.mod +++ b/pkg/config/mock/go.mod @@ -166,6 +166,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/config/model/go.mod b/pkg/config/model/go.mod index 1b1ce6d64e2..37f224bb092 100644 --- a/pkg/config/model/go.mod +++ b/pkg/config/model/go.mod @@ -103,6 +103,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/config/nodetreemodel/go.mod b/pkg/config/nodetreemodel/go.mod index 3117f8d4346..83319046111 100644 --- a/pkg/config/nodetreemodel/go.mod +++ b/pkg/config/nodetreemodel/go.mod @@ -139,6 +139,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/config/remote/go.mod b/pkg/config/remote/go.mod index 158ffc3f996..e54002b91e0 100644 --- a/pkg/config/remote/go.mod +++ b/pkg/config/remote/go.mod @@ -127,8 +127,8 @@ require ( golang.org/x/time v0.14.0 google.golang.org/api v0.258.0 // indirect google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 ) @@ -233,6 +233,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/config/remote/go.sum b/pkg/config/remote/go.sum index 96f6d4d30e5..bf772dcd32c 100644 --- a/pkg/config/remote/go.sum +++ b/pkg/config/remote/go.sum @@ -193,10 +193,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -293,10 +293,10 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 h1:a12a2/BiVRxRWIqBbfqoSK6tgq8cyUgMnEI81QlPge0= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8/go.mod h1:1Ic78BnpzY8OaTCmzxJDP4qC9INZPbGZl+54RKjtyeI= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= diff --git a/pkg/config/render_config/go.mod b/pkg/config/render_config/go.mod index 264082c5abf..98f7f8a20fa 100644 --- a/pkg/config/render_config/go.mod +++ b/pkg/config/render_config/go.mod @@ -114,6 +114,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go index 30895ed762d..6bdf806091a 100644 --- a/pkg/config/setup/config.go +++ b/pkg/config/setup/config.go @@ -131,6 +131,9 @@ const ( // DefaultLogsSenderBackoffRecoveryInterval is the default logs sender backoff recovery interval DefaultLogsSenderBackoffRecoveryInterval = 2 + // DefaultLogsStreamLifetime is the default gRPC stream lifetime in seconds (15 minutes) + DefaultLogsStreamLifetime = 900 + // maxExternalMetricsProviderChunkSize ensures batch queries are limited in size. maxExternalMetricsProviderChunkSize = 35 @@ -1462,6 +1465,8 @@ func bindEnvAndSetLogsConfigKeys(config pkgconfigmodel.Setup, prefix string) { config.BindEnvAndSetDefault(prefix+"sender_recovery_interval", DefaultForwarderRecoveryInterval) config.BindEnvAndSetDefault(prefix+"sender_recovery_reset", false) config.BindEnvAndSetDefault(prefix+"use_v2_api", true) + config.BindEnvAndSetDefault(prefix+"use_grpc", false) + config.BindEnvAndSetDefault(prefix+"stream_lifetime", DefaultLogsStreamLifetime) config.SetDefault(prefix+"dev_mode_no_ssl", false) } diff --git a/pkg/config/setup/go.mod b/pkg/config/setup/go.mod index 6a4ae5f7c04..5c131805c9e 100644 --- a/pkg/config/setup/go.mod +++ b/pkg/config/setup/go.mod @@ -170,6 +170,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/config/structure/go.mod b/pkg/config/structure/go.mod index 24a4b7f6464..9e5cc8d27c0 100644 --- a/pkg/config/structure/go.mod +++ b/pkg/config/structure/go.mod @@ -142,6 +142,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/config/teeconfig/go.mod b/pkg/config/teeconfig/go.mod index 5c944883bce..0a636f48eb1 100644 --- a/pkg/config/teeconfig/go.mod +++ b/pkg/config/teeconfig/go.mod @@ -121,6 +121,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/config/utils/go.mod b/pkg/config/utils/go.mod index 92a0497a0ac..57615af94b5 100644 --- a/pkg/config/utils/go.mod +++ b/pkg/config/utils/go.mod @@ -168,6 +168,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/config/viperconfig/go.mod b/pkg/config/viperconfig/go.mod index 70071e9ac1c..fc4bdb3c668 100644 --- a/pkg/config/viperconfig/go.mod +++ b/pkg/config/viperconfig/go.mod @@ -135,6 +135,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/discovery/tracermetadata/model/go.mod b/pkg/discovery/tracermetadata/model/go.mod index 11207317214..2d126375134 100644 --- a/pkg/discovery/tracermetadata/model/go.mod +++ b/pkg/discovery/tracermetadata/model/go.mod @@ -118,6 +118,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/pkg/errors/go.mod b/pkg/errors/go.mod index b03de27d526..9f9a3eff033 100644 --- a/pkg/errors/go.mod +++ b/pkg/errors/go.mod @@ -115,6 +115,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/pkg/fips/go.mod b/pkg/fips/go.mod index f1596427c25..f3bf9d6b047 100644 --- a/pkg/fips/go.mod +++ b/pkg/fips/go.mod @@ -103,6 +103,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/pkg/gohai/go.mod b/pkg/gohai/go.mod index e2d472c6764..607a7081089 100644 --- a/pkg/gohai/go.mod +++ b/pkg/gohai/go.mod @@ -133,6 +133,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/pkg/logs/client/go.mod b/pkg/logs/client/go.mod index d51da2b7c94..941c5413d46 100644 --- a/pkg/logs/client/go.mod +++ b/pkg/logs/client/go.mod @@ -22,9 +22,8 @@ require ( golang.org/x/net v0.52.0 ) -require gopkg.in/yaml.v3 v3.0.1 // indirect - require ( + github.com/DataDog/agent-payload/v5 v5.0.191 // indirect github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect github.com/DataDog/datadog-agent/comp/def v0.73.0-rc.5 // indirect @@ -85,6 +84,9 @@ require ( github.com/tklauser/go-sysconf v0.3.16 // indirect github.com/tklauser/numcpus v0.11.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opentelemetry.io/otel/metric v1.42.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect + go.opentelemetry.io/otel/trace v1.42.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.19.0 // indirect go.uber.org/fx v1.24.0 // indirect @@ -96,7 +98,10 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -200,6 +205,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/logs/client/go.sum b/pkg/logs/client/go.sum index 9f4b8d91662..4a042cee040 100644 --- a/pkg/logs/client/go.sum +++ b/pkg/logs/client/go.sum @@ -1,4 +1,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs= github.com/DataDog/viper v1.15.1/go.mod h1:rDLDREOPd+gpEbA8y4Y/5wTvyLqvUiCmDXX0jRZy8mw= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= @@ -21,6 +23,10 @@ github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7z github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -29,8 +35,12 @@ github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPE github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 h1:0G5JVG0aJDpWvH1r8idd+wbPcAH14UqIuUMepx3v9rE= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94/go.mod h1:MvF7bZQy5lD2WcLXjFytRVvnTrFvrjo/qGka1MIBOPE= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -103,6 +113,18 @@ github.com/tklauser/numcpus v0.11.0 h1:nSTwhKH5e1dMNsCdVBukSZrURJRoHbSEQjdEbY+9R github.com/tklauser/numcpus v0.11.0/go.mod h1:z+LwcLq54uWZTX0u/bGobaV34u6V7KNlTZejzM6/3MQ= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= +go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= +go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= +go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= +go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= +go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.19.0 h1:BACLhebsYdpQ7IROQ1AGPjrXcP5dF80U3gKoFzbaq/4= @@ -133,6 +155,12 @@ golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= +google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/logs/diagnostic/go.mod b/pkg/logs/diagnostic/go.mod index 40cdf91a397..855957aa8a6 100644 --- a/pkg/logs/diagnostic/go.mod +++ b/pkg/logs/diagnostic/go.mod @@ -11,9 +11,8 @@ require ( github.com/stretchr/testify v1.11.1 ) -require gopkg.in/yaml.v3 v3.0.1 // indirect - require ( + github.com/DataDog/agent-payload/v5 v5.0.191 // indirect github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect github.com/DataDog/datadog-agent/comp/def v0.73.0-rc.5 // indirect @@ -69,6 +68,9 @@ require ( github.com/tklauser/go-sysconf v0.3.16 // indirect github.com/tklauser/numcpus v0.11.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opentelemetry.io/otel/metric v1.42.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect + go.opentelemetry.io/otel/trace v1.42.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.19.0 // indirect go.uber.org/fx v1.24.0 // indirect @@ -81,6 +83,10 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/grpc v1.79.3 // indirect + google.golang.org/protobuf v1.36.11 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -184,6 +190,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/logs/diagnostic/go.sum b/pkg/logs/diagnostic/go.sum index 4c7b244e97f..5da55472293 100644 --- a/pkg/logs/diagnostic/go.sum +++ b/pkg/logs/diagnostic/go.sum @@ -1,8 +1,12 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs= github.com/DataDog/viper v1.15.1/go.mod h1:rDLDREOPd+gpEbA8y4Y/5wTvyLqvUiCmDXX0jRZy8mw= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -15,6 +19,10 @@ github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7z github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -23,8 +31,12 @@ github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPE github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 h1:0G5JVG0aJDpWvH1r8idd+wbPcAH14UqIuUMepx3v9rE= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94/go.mod h1:MvF7bZQy5lD2WcLXjFytRVvnTrFvrjo/qGka1MIBOPE= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -83,6 +95,18 @@ github.com/tklauser/numcpus v0.11.0 h1:nSTwhKH5e1dMNsCdVBukSZrURJRoHbSEQjdEbY+9R github.com/tklauser/numcpus v0.11.0/go.mod h1:z+LwcLq54uWZTX0u/bGobaV34u6V7KNlTZejzM6/3MQ= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= +go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= +go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= +go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= +go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= +go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.19.0 h1:BACLhebsYdpQ7IROQ1AGPjrXcP5dF80U3gKoFzbaq/4= @@ -113,6 +137,14 @@ golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= +google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/pkg/logs/message/go.mod b/pkg/logs/message/go.mod index 937746ba093..c4ed4ac356b 100644 --- a/pkg/logs/message/go.mod +++ b/pkg/logs/message/go.mod @@ -3,6 +3,7 @@ module github.com/DataDog/datadog-agent/pkg/logs/message go 1.25.0 require ( + github.com/DataDog/agent-payload/v5 v5.0.191 github.com/DataDog/datadog-agent/comp/logs/agent/config v0.61.0 github.com/DataDog/datadog-agent/pkg/logs/sources v0.61.0 github.com/DataDog/datadog-agent/pkg/logs/types v0.71.0-rc.1 @@ -10,8 +11,6 @@ require ( github.com/stretchr/testify v1.11.1 ) -require gopkg.in/yaml.v3 v3.0.1 // indirect - require ( github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect @@ -62,6 +61,8 @@ require ( github.com/tklauser/go-sysconf v0.3.16 // indirect github.com/tklauser/numcpus v0.11.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opentelemetry.io/otel v1.42.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect @@ -70,6 +71,11 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect + gonum.org/v1/gonum v0.17.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/grpc v1.79.3 // indirect + google.golang.org/protobuf v1.36.11 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -173,6 +179,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/logs/message/go.sum b/pkg/logs/message/go.sum index 871d203ec26..6ae1bffb4da 100644 --- a/pkg/logs/message/go.sum +++ b/pkg/logs/message/go.sum @@ -1,8 +1,12 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs= github.com/DataDog/viper v1.15.1/go.mod h1:rDLDREOPd+gpEbA8y4Y/5wTvyLqvUiCmDXX0jRZy8mw= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -14,6 +18,10 @@ github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7z github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -22,8 +30,12 @@ github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPE github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 h1:0G5JVG0aJDpWvH1r8idd+wbPcAH14UqIuUMepx3v9rE= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94/go.mod h1:MvF7bZQy5lD2WcLXjFytRVvnTrFvrjo/qGka1MIBOPE= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -80,6 +92,18 @@ github.com/tklauser/numcpus v0.11.0 h1:nSTwhKH5e1dMNsCdVBukSZrURJRoHbSEQjdEbY+9R github.com/tklauser/numcpus v0.11.0/go.mod h1:z+LwcLq54uWZTX0u/bGobaV34u6V7KNlTZejzM6/3MQ= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= +go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= +go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= +go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= +go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= +go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.19.0 h1:BACLhebsYdpQ7IROQ1AGPjrXcP5dF80U3gKoFzbaq/4= @@ -108,6 +132,14 @@ golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= +google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/pkg/logs/message/message.go b/pkg/logs/message/message.go index 6c137ccae6d..cc11b32249f 100644 --- a/pkg/logs/message/message.go +++ b/pkg/logs/message/message.go @@ -11,6 +11,7 @@ import ( "errors" "time" + "github.com/DataDog/agent-payload/v5/statefulpb" "github.com/DataDog/datadog-agent/pkg/logs/sources" "github.com/DataDog/datadog-agent/pkg/util/log" ) @@ -38,6 +39,8 @@ type Payload struct { Encoding string // The size of the unencoded payload UnencodedSize int + // Extra information for Stateful gRPC streaming (batch-level state changes) + StatefulExtra any } // NewPayload creates a new payload with the given message metadata, encoded content, encoding type and unencoded size @@ -70,6 +73,13 @@ type Message struct { MessageMetadata } +// StatefulMessage represents a log message for gRPC stateful streaming +// It contains a Datum (from stateful_encoding.proto) and associated metadata +type StatefulMessage struct { + Datum *statefulpb.Datum + Metadata *MessageMetadata +} + // MessageMetadata contains metadata information about a log message // //nolint:revive // exported: ignore package name struct conflict diff --git a/pkg/logs/metrics/go.mod b/pkg/logs/metrics/go.mod index f8fd2c78443..843a9e929b9 100644 --- a/pkg/logs/metrics/go.mod +++ b/pkg/logs/metrics/go.mod @@ -138,6 +138,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod index 45df6b6fba8..e596c44230f 100644 --- a/pkg/logs/pipeline/go.mod +++ b/pkg/logs/pipeline/go.mod @@ -15,6 +15,7 @@ require ( github.com/DataDog/datadog-agent/pkg/logs/metrics v0.61.0 github.com/DataDog/datadog-agent/pkg/logs/processor v0.61.0 github.com/DataDog/datadog-agent/pkg/logs/sender v0.61.0 + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc v0.0.0-00010101000000-000000000000 github.com/DataDog/datadog-agent/pkg/logs/sources v0.61.0 github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.61.0 github.com/DataDog/datadog-agent/pkg/util/compression v0.56.0-rc.3 @@ -23,10 +24,8 @@ require ( go.uber.org/atomic v1.11.0 ) -require gopkg.in/yaml.v3 v3.0.1 // indirect - require ( - github.com/DataDog/agent-payload/v5 v5.0.184 // indirect + github.com/DataDog/agent-payload/v5 v5.0.191 // indirect github.com/DataDog/datadog-agent/comp/core/config v0.64.0-devel // indirect github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.61.0 // indirect @@ -112,7 +111,10 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -216,6 +218,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/logs/pipeline/go.sum b/pkg/logs/pipeline/go.sum index 9f326841482..18f7b3457a4 100644 --- a/pkg/logs/pipeline/go.sum +++ b/pkg/logs/pipeline/go.sum @@ -1,6 +1,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs= github.com/DataDog/viper v1.15.1/go.mod h1:rDLDREOPd+gpEbA8y4Y/5wTvyLqvUiCmDXX0jRZy8mw= github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE= @@ -25,6 +25,10 @@ github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7z github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -35,8 +39,12 @@ github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 h1:0G5JVG0aJDpWvH1r8idd+wbPcAH14UqIuUMepx3v9rE= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94/go.mod h1:MvF7bZQy5lD2WcLXjFytRVvnTrFvrjo/qGka1MIBOPE= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -113,6 +121,18 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= +go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= +go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= +go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= +go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= +go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.19.0 h1:BACLhebsYdpQ7IROQ1AGPjrXcP5dF80U3gKoFzbaq/4= @@ -168,6 +188,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= +google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/logs/pipeline/pipeline.go b/pkg/logs/pipeline/pipeline.go index 6524aec9e13..e98cccbda06 100644 --- a/pkg/logs/pipeline/pipeline.go +++ b/pkg/logs/pipeline/pipeline.go @@ -13,11 +13,13 @@ import ( "github.com/DataDog/datadog-agent/comp/logs/agent/config" logscompression "github.com/DataDog/datadog-agent/comp/serializer/logscompression/def" pkgconfigmodel "github.com/DataDog/datadog-agent/pkg/config/model" + pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup" "github.com/DataDog/datadog-agent/pkg/logs/diagnostic" "github.com/DataDog/datadog-agent/pkg/logs/message" "github.com/DataDog/datadog-agent/pkg/logs/metrics" "github.com/DataDog/datadog-agent/pkg/logs/processor" "github.com/DataDog/datadog-agent/pkg/logs/sender" + grpcsender "github.com/DataDog/datadog-agent/pkg/logs/sender/grpc" compressioncommon "github.com/DataDog/datadog-agent/pkg/util/compression" ) @@ -48,6 +50,10 @@ func NewPipeline( var encoder processor.Encoder if serverlessMeta.IsEnabled() { encoder = processor.JSONServerlessInitEncoder + } else if endpoints.UseGRPC { + // Throwaway code to test with existing pipelines + // TODO change to real encoder once State component is ready + encoder = grpcsender.MockEncoder } else if endpoints.UseHTTP { encoder = processor.JSONEncoder } else if endpoints.UseProto { @@ -99,13 +105,24 @@ func getStrategy( compressor logscompression.Component, instanceID string, ) sender.Strategy { - if endpoints.UseHTTP || serverlessMeta.IsEnabled() { + if endpoints.UseGRPC || endpoints.UseHTTP || serverlessMeta.IsEnabled() { var encoder compressioncommon.Compressor encoder = compressor.NewCompressor(compressioncommon.NoneKind, 0) if endpoints.Main.UseCompression { encoder = compressor.NewCompressor(endpoints.Main.CompressionKind, endpoints.Main.CompressionLevel) } + if endpoints.UseGRPC { + // Throwaway code to test with existing pipelines + // TODO: Remove this once we have a real State component + // The interface of stateful transport layer is input channel to the GRPCBatchStrategy + // The input type is StatefulMessage, which should be emitted by the State component + // Here is the temporary translation from Message to StatefulMessage + statefulInputChan := make(chan *message.StatefulMessage, pkgconfigsetup.Datadog().GetInt("logs_config.message_channel_size")) + grpcsender.StartMessageTranslator(inputChan, statefulInputChan) + + return grpcsender.NewBatchStrategy(statefulInputChan, outputChan, flushChan, endpoints.BatchWait, endpoints.BatchMaxSize, endpoints.BatchMaxContentSize, "logs", encoder, pipelineMonitor, instanceID) + } return sender.NewBatchStrategy( inputChan, outputChan, diff --git a/pkg/logs/pipeline/provider.go b/pkg/logs/pipeline/provider.go index 02381d99811..e64376e9f5d 100644 --- a/pkg/logs/pipeline/provider.go +++ b/pkg/logs/pipeline/provider.go @@ -23,6 +23,7 @@ import ( "github.com/DataDog/datadog-agent/pkg/logs/message" "github.com/DataDog/datadog-agent/pkg/logs/metrics" "github.com/DataDog/datadog-agent/pkg/logs/sender" + grpcsender "github.com/DataDog/datadog-agent/pkg/logs/sender/grpc" httpsender "github.com/DataDog/datadog-agent/pkg/logs/sender/http" tcpsender "github.com/DataDog/datadog-agent/pkg/logs/sender/tcp" "github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface" @@ -94,7 +95,9 @@ func NewProvider( var senderImpl sender.PipelineComponent serverlessMeta := sender.NewServerlessMeta(serverless) - if endpoints.UseHTTP { + if endpoints.UseGRPC { + senderImpl = grpcsender.NewSender(numberOfPipelines, cfg, sink, endpoints, destinationsContext, compression) + } else if endpoints.UseHTTP { senderImpl = httpSender(numberOfPipelines, cfg, sink, endpoints, destinationsContext, serverlessMeta, legacyMode) } else { senderImpl = tcpSender(numberOfPipelines, cfg, sink, endpoints, destinationsContext, status, serverlessMeta, legacyMode) diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod index 670ce229915..aae215460de 100644 --- a/pkg/logs/processor/go.mod +++ b/pkg/logs/processor/go.mod @@ -3,7 +3,7 @@ module github.com/DataDog/datadog-agent/pkg/logs/processor go 1.25.0 require ( - github.com/DataDog/agent-payload/v5 v5.0.184 + github.com/DataDog/agent-payload/v5 v5.0.191 github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.61.0 github.com/DataDog/datadog-agent/comp/logs/agent/config v0.61.0 github.com/DataDog/datadog-agent/pkg/config/model v0.73.0-rc.5 @@ -15,8 +15,6 @@ require ( github.com/stretchr/testify v1.11.1 ) -require gopkg.in/yaml.v3 v3.0.1 // indirect - require ( github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect @@ -95,7 +93,10 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -199,6 +200,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/logs/processor/go.sum b/pkg/logs/processor/go.sum index de8293503db..3eb3f5df809 100644 --- a/pkg/logs/processor/go.sum +++ b/pkg/logs/processor/go.sum @@ -1,6 +1,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs= github.com/DataDog/viper v1.15.1/go.mod h1:rDLDREOPd+gpEbA8y4Y/5wTvyLqvUiCmDXX0jRZy8mw= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= @@ -23,6 +23,10 @@ github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7z github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -33,8 +37,12 @@ github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 h1:0G5JVG0aJDpWvH1r8idd+wbPcAH14UqIuUMepx3v9rE= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94/go.mod h1:MvF7bZQy5lD2WcLXjFytRVvnTrFvrjo/qGka1MIBOPE= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -111,6 +119,18 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= +go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= +go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= +go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= +go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= +go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.19.0 h1:BACLhebsYdpQ7IROQ1AGPjrXcP5dF80U3gKoFzbaq/4= @@ -166,6 +186,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= +google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/logs/sender/go.mod b/pkg/logs/sender/go.mod index 2b69d545fbb..7b411b854b6 100644 --- a/pkg/logs/sender/go.mod +++ b/pkg/logs/sender/go.mod @@ -20,9 +20,8 @@ require ( go.uber.org/atomic v1.11.0 ) -require gopkg.in/yaml.v3 v3.0.1 // indirect - require ( + github.com/DataDog/agent-payload/v5 v5.0.191 // indirect github.com/DataDog/datadog-agent/comp/core/config v0.64.0-devel // indirect github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.61.0 // indirect @@ -105,7 +104,10 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -209,6 +211,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/logs/sender/go.sum b/pkg/logs/sender/go.sum index 104c7f04226..cacb5cebbdc 100644 --- a/pkg/logs/sender/go.sum +++ b/pkg/logs/sender/go.sum @@ -1,4 +1,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs= github.com/DataDog/viper v1.15.1/go.mod h1:rDLDREOPd+gpEbA8y4Y/5wTvyLqvUiCmDXX0jRZy8mw= github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE= @@ -23,6 +25,10 @@ github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7z github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= @@ -31,8 +37,12 @@ github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPE github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 h1:0G5JVG0aJDpWvH1r8idd+wbPcAH14UqIuUMepx3v9rE= github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94/go.mod h1:MvF7bZQy5lD2WcLXjFytRVvnTrFvrjo/qGka1MIBOPE= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -105,6 +115,18 @@ github.com/tklauser/numcpus v0.11.0 h1:nSTwhKH5e1dMNsCdVBukSZrURJRoHbSEQjdEbY+9R github.com/tklauser/numcpus v0.11.0/go.mod h1:z+LwcLq54uWZTX0u/bGobaV34u6V7KNlTZejzM6/3MQ= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= +go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= +go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= +go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= +go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= +go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.19.0 h1:BACLhebsYdpQ7IROQ1AGPjrXcP5dF80U3gKoFzbaq/4= @@ -135,6 +157,12 @@ golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= +google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/logs/sender/grpc/DESIGN.md b/pkg/logs/sender/grpc/DESIGN.md new file mode 100644 index 00000000000..2497be84883 --- /dev/null +++ b/pkg/logs/sender/grpc/DESIGN.md @@ -0,0 +1,401 @@ +# Stateful Transport Layer for Logs Agent + +## Overview + +This document describes the new gRPC-based stateful transport layer introduced in `pkg/logs/sender/grpc/`. This transport provides a bidirectional streaming alternative to the existing HTTP and TCP transports, with support for stateful encoding, delta compression, and stream lifecycle management. + +## Architecture Summary + +### Data Flow (per Pipeline) + +Each pipeline has its own dedicated processing chain connected 1:1 to a streamWorker: + +``` +┌────────────────────────────────────────────────────────────────────────────────┐ +│ Pipeline i │ +│ │ +│ InputChan ──► Processor ──► MessageTranslator ──► BatchStrategy ──────────────┼──┐ +│ (encodes) (pattern extraction, (batches datums, │ │ +│ stateful conversion) delta encoding, │ │ +│ compression) │ │ +└────────────────────────────────────────────────────────────────────────────────┘ │ + │ + senderImpl.In() │ + (returns Queue i) │ + ▼ +┌─────────────────────────────────────────────────────────────────────────────────────┐ +│ Sender │ +│ │ +│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ +│ │ Queue 0 │ │ Queue 1 │ │ Queue 2 │ ... │ Queue N │ │ +│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │ +│ │ │ │ │ │ +│ ▼ ▼ ▼ ▼ │ +│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ +│ │Worker 0 │ │Worker 1 │ │Worker 2 │ ... │Worker N │ │ +│ │ │ │ │ │ │ │ │ │ +│ │ Superv. │ │ Superv. │ │ Superv. │ │ Superv. │ │ +│ │ ┌─┴─┐ │ │ ┌─┴─┐ │ │ ┌─┴─┐ │ │ ┌─┴─┐ │ │ +│ │ ▼ ▼ │ │ ▼ ▼ │ │ ▼ ▼ │ │ ▼ ▼ │ │ +│ │ Snd Rcv │ │ Snd Rcv │ │ Snd Rcv │ │ Snd Rcv │ │ +│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │ +│ │ │ │ │ │ +│ └─────────────────┴─────────────────┴───────────────────────────┘ │ +│ │ │ +│ Shared gRPC ClientConn │ +└──────────────────────────────────────┼──────────────────────────────────────────────┘ + │ + ▼ + ┌──────────────────────┐ + │ Intake Server │ + │ (StatefulLogsService)│ + └──────────────────────┘ +``` + + +### streamWorker Internal Architecture (Master-2-Slave Model) + +``` + ┌───────────────────────────────────────┐ + │ streamWorker │ + inputChan ───────────────►│ │ + (from BatchStrategy) │ ┌─────────────────────────────────┐ │ + │ │ Supervisor Goroutine │ │ + │ │ │ │ + │ │ • Manages inflight tracker │ │ + │ │ • State machine control │ │ + │ │ • Stream lifecycle/rotation │ │ + │ │ • Backpressure management │ │ + │ │ • Retransmission on rotation │ │ + │ └───────────────┬─────────────────┘ │ + │ ┌─────┴─────┐ │ + │ ▼ ▼ │ + │ ┌───────────┐ ┌───────────┐ │ + │ │ Sender │ │ Receiver │ │ + │ │ Goroutine │ │ Goroutine │ │ + │ │ │ │ │ │ + │ │ stream. │ │ stream. │ │ + │ │ Send() │ │ Recv() │ │ + │ └─────┬─────┘ └─────┬─────┘ │ + │ │ │ │ + └───────────┼─────────────┼─────────────┘ + │ │ + ▼ ▼ + ┌───────────────────────────────────────┐ + │ Bidirectional gRPC Stream │ + │ (StatefulLogsService.LogsStream) │ + └───────────────────────────────────────┘ +``` + +## Key Components + +### 1. Sender (`sender.go`) + +The `Sender` implements `PipelineComponent` interface and serves as the entry point. + +**Key Design Decisions:** +- **Shared Connection**: All workers share a single `grpc.ClientConn` to reduce resource overhead +- **Round-Robin Distribution**: Uses `atomic.Uint32` for thread-safe input distribution +- **Lazy Connection**: Uses `grpc.NewClient()` which doesn't block + +**Per-RPC Headers** (via `headerCredentials`): +- `dd-api-key`: API authentication +- `dd-protocol`: Protocol identifier (if specified) +- `dd-evp-origin` / `dd-evp-origin-version`: Origin tracking +- `dd-content-encoding`: Compression type or "identity" + +### 2. Stream Worker (`stream_worker.go`) + +Implements a **Master-2-Slave threading model**: one supervisor + one sender + one receiver per stream. + +**State Machine:** + +``` + ┌──────────────┐ + ┌──────────►│ connecting │◄─────────────────┐ + │ backoff └──┬─────┬─────┘ │ + │ fail │ │ success │ + │ ┌───────┘ │ │ + │ ▼ ▼ ltm exp | +┌───────┴───────┐ ┌──────────┐ w/o unacked│ +│ disconnected │◄───────┤ active ├─────────────────┤ +└───────────────┘ fail └────┬─────┘ │ + ▲ │ ltm exp w/unacked │ + │ ▼ │ + │ ┌──────────┐ drain done │ + └──────────────┤ draining ├───────────────────┘ + fail └──────────┘ or timeout +``` + +**State Transitions:** +| From | To | Trigger | +| -------------- | -------------- | ----------------------------------------- | +| `disconnected` | `connecting` | Backoff timer expires | +| `connecting` | `active` | Stream creation succeeds | +| `connecting` | `disconnected` | Stream creation fails | +| `active` | `connecting` | Lifetime expires without unacked payloads | +| `active` | `disconnected` | Failure (send/recv error, protocol error) | +| `active` | `draining` | Lifetime expires with unacked payloads | +| `draining` | `connecting` | All acks received, OR drain timeout | +| `draining` | `disconnected` | Failure (send/recv error, protocol error) | + +**State Descriptions:** +| State | Description | +| -------------- | ------------------------------------------------------------------------------ | +| `disconnected` | Waiting for backoff timer after failure (not initial - starts in `connecting`) | +| `connecting` | Waiting for async stream creation to complete | +| `active` | Normal operation - sending batches, receiving acks | +| `draining` | Stream lifetime expired, waiting for pending acks before rotation | + +**Supervisor Loop:** +The main select loop handles: +- Input from upstream (gated by `inflight.hasSpace()` for backpressure) +- Sending batches (enabled when `active` state + unsent items) +- Batch acknowledgments from receiver +- Stream failures from sender/receiver +- Stream creation results +- Stream lifetime timer (soft rotation) +- Drain timer (for unacked payloads) +- Backoff timer (retry after failure) + +**Critical Flow - Batch Acknowledgment:** +1. Validates ack is for current stream (ignores stale signals) +2. Handles batch 0 (snapshot) separately - no payload to pop +3. Verifies BatchID matches expected sequence +4. On BatchID==1: triggers `DecError()` to reset backoff (stream proven operational) +5. Pops acknowledged payload, update the snapshot (details see later) +6. Sends payload to auditor + +**Stream Lifetime Rotation and Draining:** + +Streams are rotated periodically (default: 15 minutes). When the lifetime timer expires, the worker must transition to a new stream. The challenge is handling payloads that have been sent but not yet acknowledged. If we rotated immediately while acks were still in-flight, those payloads would be retransmitted unnecessarily, causing **duplicate logs on the server side**. The drain state exists to wait for pending acks before rotating, minimizing unnecessary retransmissions. If there are no unacked payloads when the lifetime timer fires, the worker skips the drain state entirely and transitions directly to `connecting`. Draining works as follow: + +1. **Lifetime expires with unacked payloads** → enter `draining` state, start drain timer (5s) +2. **During draining:** + - **No new batches are sent** - the send channel is disabled (`sendChan = nil` when state ≠ active) + - **New input is still accepted** - payloads continue buffering in the inflight tracker + - **Acks continue arriving** - the receiver goroutine is still running, forwarding acks to supervisor + - **Each ack pops a payload** - reducing the unacked count +3. **Exit draining when:** + - All acks received (`!inflight.hasUnacked()`) → rotate with zero retransmissions, OR + - Drain timer expires → rotate anyway, retransmitting any remaining unacked payloads + + + + +### 3. Inflight Tracker (`inflight.go`) + +A bounded FIFO queue with two regions: + +``` +[--sent awaiting ack--][--buffered not sent--] +^ ^ ^ +head sentTail tail +``` + +**Key Features:** +- **Capacity**: 10,000 payloads (`maxInflight` constant) +- **Ring buffer**: Uses "waste one slot" pattern (capacity+1 slots) +- **BatchID tracking**: Sequential IDs starting at 1 (0 reserved for snapshot) +- **Snapshot state**: Maintains accumulated pattern/dictionary definitions + +**Snapshot Management:** +When payloads are acknowledged (popped), their `StatefulExtra.StateChanges` are applied to the snapshot. On stream rotation, this snapshot is serialized and sent as batch 0 to bootstrap the new stream's state. For details on snapshot management, see the [design doc](https://docs.google.com/document/d/1E6BsjzOS36e7TZBN2p1KJoPNymUM-0I8bGQIAhLjoho/edit?pli=1&tab=t.vy32dxhupwgk#bookmark=id.lyk8wjlnsr2). + +### 4. Batch Strategy (`batch_strategy.go`) + +Collects `StatefulMessage` datums and creates compressed `Payload` objects. The batching algorithm is exactly the same as the existing HTTP one. + +**Delta Encoding:** +| Field | Encoding Strategy | +| ---------- | ------------------------------------------------------------------------------------------- | +| Timestamp | First message: absolute. Same as previous: omit (0). Clock skew: absolute. Otherwise: delta | +| Pattern ID | Omit if same as previous | +| Tags | Omit if same dictionary index as previous | + +**Flush Process:** +1. Collect message metadata and datums +2. Reset delta encoding state for next batch +3. Extract state changes for snapshot management +4. Create `DatumSequence` protobuf +5. Marshal and compress +6. Create `Payload` with `StatefulExtra` containing state changes + +### 5. Protocol Buffer Definitions (`stateful_encoding.proto`) + +**Service Definition:** +```protobuf +service StatefulLogsService { + rpc LogsStream(stream StatefulBatch) returns (stream BatchStatus); +} +``` + +**Message Hierarchy:** +``` +StatefulBatch (batch_id, compressed data) + └── DatumSequence (ordered array) + └── Datum (oneof) + ├── PatternDefine (pattern_id, template, param_count, pos_list) + ├── PatternDelete + ├── DictEntryDefine (id, value) + ├── DictEntryDelete + └── Log (timestamp, structured/raw content, tags) + └── StructuredLog (pattern_id, dynamic_values, json_context) +``` + +## streamWorker Concurrency Model + +### Why Master-2-Slave? + +The streamWorker uses a **Master-2-Slave threading model** (1 supervisor + 2 I/O goroutines) because both directions of gRPC streaming I/O can block: + +| Operation | Blocking Behavior | +| --------------------------- | ------------------------------------------------------------------ | +| `stream.Send()` | Blocks on flow control, network backpressure, or connection issues | +| `stream.Recv()` | Blocks indefinitely waiting for server responses | +| `conn.WaitForStateChange()` | Blocks until connection state changes or timeout | + +If the supervisor performed I/O directly, it could not respond to: +- New input from upstream (would cause upstream backpressure) +- Timer events (stream lifetime, drain timeout, backoff) +- Shutdown signals (would delay graceful termination) + +The same reasoning applies to **stream creation** - `WaitForStateChange()` can block up to `connectionTimeout` (10s), so it runs in a separate one-shot goroutine (`asyncCreateNewStream`). + +### Goroutine Responsibilities + +| Goroutine | Lifetime | Responsibility | +| ------------------ | ----------------------------------------- | ---------------------------------------------------------------------------- | +| **Supervisor** | Entire worker lifetime | Owns all state & inflight, makes all decisions, coordinates I/O goroutines | +| **Sender** | Per-stream (created on stream activation) | Stateless; reads batches from channel, calls `Send()`, reports failures | +| **Receiver** | Per-stream (created on stream activation) | Stateless; calls `Recv()` in loop, forwards acks, detects stream termination | +| **Stream Creator** | One-shot per creation attempt | Waits for connection ready, creates stream, signals result | + +**Key insight**: Sender and Receiver goroutines are **stateless** - they don't make decisions, only perform I/O and report results. All state transitions happen in the Supervisor. + +### Resource Ownership + +``` +Supervisor owns: +├── streamState (disconnected/connecting/active/draining) +├── currentStream (*streamInfo - the active gRPC stream) +├── inflight (*inflightTracker - all payload state) +├── timers (streamTimer, drainTimer, backoffTimer) +├── backoff state (nbErrors, backoffPolicy) +└── channels (creates and closes batchToSendCh) + +Shared (thread-safe): +├── grpc.ClientConn (shared across all workers, thread-safe by design) +└── StatefulLogsServiceClient (derived from conn, thread-safe) + +Per-stream (owned by streamInfo): +├── stream (gRPC bidirectional stream) +├── ctx (per-stream context) +└── cancel (cancellation function for cleanup) +``` + +### Synchronization Mechanisms + +**No mutexes are used.** All synchronization is achieved through channels: + +| Channel | Direction | Buffer | Purpose | +| ----------------- | ---------------------------- | ------ | ---------------------------------------------- | +| `inputChan` | BatchStrategy → Supervisor | 100 | Incoming payloads from upstream | +| `batchToSendCh` | Supervisor → Sender | 10 | Batches ready to send | +| `batchAckCh` | Receiver → Supervisor | 10 | Acknowledgments from server | +| `streamFailureCh` | Sender/Receiver → Supervisor | 0 | Failure signals (blocking intentional) | +| `streamReadyCh` | Creator → Supervisor | 0 | Stream creation results (blocking intentional) | +| `stopChan` | External → All | 0 | Shutdown signal (close to broadcast) | + +**Why unbuffered for failure/ready channels?** These are blocking by design - when a sender/receiver fails or a stream is created, the goroutine should wait until the supervisor acknowledges. This prevents race conditions during stream rotation. + +### Conditional Channel Selection + +The supervisor uses Go's pattern of setting channels to `nil` to conditionally enable/disable operations: + +```go +// Backpressure: only read input when inflight has capacity +var inputChan <-chan *message.Payload +if s.inflight.hasSpace() { + inputChan = s.inputChan // Enable +} else { + inputChan = nil // Disable - select will skip this case +} + +// Only send when active with unsent payloads +var sendChan chan<- *statefulpb.StatefulBatch +if s.streamState == active && s.inflight.hasUnSent() { + sendChan = s.batchToSendCh + nextBatch = s.getNextBatch() // Idempotent peek +} else { + sendChan = nil +} +``` + +### Stale Signal Handling + +During stream rotation, the old stream's sender/receiver goroutines may still be running and could send signals. To prevent these stale signals from corrupting state: + +1. **All signals carry stream identity** (`*streamInfo` pointer) +2. **Supervisor validates before processing**: + ```go + if ack.stream != s.currentStream { + return // Ignore stale ack from old stream + } + ``` +3. **Context cancellation** ensures old goroutines exit promptly + +### Lifecycle: Stream Rotation + +When rotating streams (soft or hard): + +1. **Close `batchToSendCh`** - signals Sender to exit after draining +2. **Cancel stream context** - causes `Send()`/`Recv()` to return with context error +3. **Old goroutines detect cancellation and exit** (no failure signal sent for context errors) +4. **Create new `batchToSendCh`** for new stream +5. **`finishStreamRotation()`** spawns new Sender/Receiver goroutines +6. **`inflight.resetOnRotation()`** converts unacked payloads back to unsent for retransmission + +After these steps, the new stream is considered ready. The first message onto the new stream is a state snapshot to initialize the new backend, then any unsent messages in the inflight queue can be transmitted. + +## Integration with Logs Agent + +**Configuration:** +- `logs_config.use_grpc`: Enable gRPC transport (default: `false`) +- `logs_config.stream_lifetime`: Stream rotation interval (default: 900s / 15 minutes) +- Environment: `DD_LOGS_CONFIG_USE_GRPC=true` + + +## Future Works + +1. **Irrecoverable Errors**: + Currently treated as stream errors causing retry loops. maybe block ingestion for auth/protocol errors? + +2. **Graceful Shutdown**: + Current implementation may lose some acks during shutdown. + +3. **Stream Jitter**: + All streams rotate at the same time without jitter, potentially causing thundering herd. + +4. **Single Endpoint Support**: + Currently only uses first reliable endpoint. TODO: support multiple endpoints with failover. + +5. **No Stream Negotiation**: + Currently no capability to downgrade to HTTP transport if gRPC fails. + +6. **Proper Backpressure**: + Evaluating if gRPC/HTTP2 flow control is adequate, if not implement flow control at application level + + +## Constants Worth Noting + +These constants are subjected to tweaking after benchmarking (especially the `maxInflight`) + +| Constant | Value | +| --------------------- | ------ | +| `inputChanBufferSize` | 100 | +| `ioChanBufferSize` | 10 | +| `maxInflight` | 10,000 | +| `connectionTimeout` | 10s | +| `drainTimeout` | 5s | + diff --git a/pkg/logs/sender/grpc/batch_strategy.go b/pkg/logs/sender/grpc/batch_strategy.go new file mode 100644 index 00000000000..4ea2d331dd7 --- /dev/null +++ b/pkg/logs/sender/grpc/batch_strategy.go @@ -0,0 +1,321 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//nolint:revive // TODO(AML) Fix revive linter +package grpc + +import ( + "time" + + "github.com/benbjohnson/clock" + "google.golang.org/protobuf/proto" + + "github.com/DataDog/agent-payload/v5/statefulpb" + "github.com/DataDog/datadog-agent/pkg/logs/message" + "github.com/DataDog/datadog-agent/pkg/logs/metrics" + "github.com/DataDog/datadog-agent/pkg/logs/sender" + "github.com/DataDog/datadog-agent/pkg/telemetry" + "github.com/DataDog/datadog-agent/pkg/util/compression" + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +var ( + tlmDroppedTooLarge = telemetry.NewCounter("logs_sender_grpc_batch_strategy", "dropped_too_large", []string{"pipeline"}, "Number of payloads dropped due to being too large") +) + +// StatefulExtra holds state changes (non-Log datums) from a batch +// Used by inflight tracker to maintain snapshot state for stream rotation +type StatefulExtra struct { + StateChanges []*statefulpb.Datum +} + +// isStateDatum returns true if the datum represents a state change +// (pattern/dict define/delete operations) +func isStateDatum(datum *statefulpb.Datum) bool { + switch datum.Data.(type) { + case *statefulpb.Datum_PatternDefine, *statefulpb.Datum_PatternDelete, + *statefulpb.Datum_DictEntryDefine, *statefulpb.Datum_DictEntryDelete: + return true + default: + return false + } +} + +// batchStrategy contains batching logic for gRPC sender without serializer +// It collects Datum objects from StatefulMessages and creates Payload with serialized DatumSequence +// Note: Serverless logs are not supported in this PoC implementation +type batchStrategy struct { + inputChan chan *message.StatefulMessage + outputChan chan *message.Payload + flushChan chan struct{} + buffer *sender.MessageBuffer + pipelineName string + batchWait time.Duration + compression compression.Compressor + stopChan chan struct{} // closed when the goroutine has finished + clock clock.Clock + + // For gRPC: store Datums separately since MessageBuffer only stores metadata + grpcDatums []*statefulpb.Datum + + // Delta encoding state - tracks previous values within current batch + lastTimestamp int64 // milliseconds since epoch + lastPatternID uint64 // pattern identifier + lastTagsDictIndex uint64 // dictionary index of tag string + + // Telemetry + pipelineMonitor metrics.PipelineMonitor + utilization metrics.UtilizationMonitor + instanceID string +} + +// NewBatchStrategy returns a new gRPC batch strategy +func NewBatchStrategy(inputChan chan *message.StatefulMessage, + outputChan chan *message.Payload, + flushChan chan struct{}, + batchWait time.Duration, + maxBatchSize int, + maxContentSize int, + pipelineName string, + compression compression.Compressor, + pipelineMonitor metrics.PipelineMonitor, + instanceID string, +) sender.Strategy { + return newBatchStrategyWithClock(inputChan, outputChan, flushChan, batchWait, maxBatchSize, maxContentSize, pipelineName, clock.New(), compression, pipelineMonitor, instanceID) +} + +func newBatchStrategyWithClock(inputChan chan *message.StatefulMessage, + outputChan chan *message.Payload, + flushChan chan struct{}, + batchWait time.Duration, + maxBatchSize int, + maxContentSize int, + pipelineName string, + clock clock.Clock, + compression compression.Compressor, + pipelineMonitor metrics.PipelineMonitor, + instanceID string, +) sender.Strategy { + + return &batchStrategy{ + inputChan: inputChan, + outputChan: outputChan, + flushChan: flushChan, + buffer: sender.NewMessageBuffer(maxBatchSize, maxContentSize), + batchWait: batchWait, + compression: compression, + stopChan: make(chan struct{}), + pipelineName: pipelineName, + clock: clock, + grpcDatums: make([]*statefulpb.Datum, 0), + pipelineMonitor: pipelineMonitor, + utilization: pipelineMonitor.MakeUtilizationMonitor(metrics.StrategyTlmName, instanceID), + instanceID: instanceID, + } +} + +// Mostly copy/pasted from sender/bactch_strategy.go +func (s *batchStrategy) Stop() { + close(s.inputChan) + <-s.stopChan +} + +// Mostly copy/pasted from sender/bactch_strategy.go +func (s *batchStrategy) Start() { + go func() { + flushTicker := s.clock.Ticker(s.batchWait) + defer func() { + s.flushBuffer(s.outputChan) + flushTicker.Stop() + close(s.stopChan) + }() + for { + select { + case m, isOpen := <-s.inputChan: + if !isOpen { + // inputChan has been closed, no more payloads are expected + return + } + s.processMessage(m, s.outputChan) + case <-flushTicker.C: + // flush the payloads at a regular interval so pending messages don't wait here for too long. + s.flushBuffer(s.outputChan) + case <-s.flushChan: + // flush payloads on demand, used for infrequently running serverless functions + s.flushBuffer(s.outputChan) + } + } + }() +} + +func (s *batchStrategy) addMessage(m *message.StatefulMessage) bool { + // No utilization tracking here - just trivial slice operations + // Real work (proto marshaling) is tracked in sendMessagesWithDatums() + + // Defensive check - should never happen with proper message construction + if m.Datum == nil { + return false + } + + // Update delta state when PatternDefine passes through + // This ensures the first log after a pattern definition correctly omits pattern_id + if patternDefine := m.Datum.GetPatternDefine(); patternDefine != nil { + s.lastPatternID = patternDefine.PatternId + } + + // Apply delta encoding to Log datums before adding to batch + if logDatum := m.Datum.GetLogs(); logDatum != nil { + s.applyDeltaEncoding(logDatum) + } + + // Try to add to buffer + if s.buffer.AddMessageWithSize(m.Metadata, m.Metadata.RawDataLen) { + s.grpcDatums = append(s.grpcDatums, m.Datum) + return true + } + + // Buffer full (not an error) + return false +} + +// applyDeltaEncoding applies delta encoding to a Log datum within the current batch +// Computes deltas for timestamp, omits unchanged pattern_id and tags +func (s *batchStrategy) applyDeltaEncoding(logDatum *statefulpb.Log) { + // Timestamp delta encoding + currentTimestamp := logDatum.Timestamp + + // First message in batch: send absolute timestamp + if s.lastTimestamp == 0 { + s.lastTimestamp = currentTimestamp + // Keep absolute value in logDatum.Timestamp + } else { + // Normal case: compute and send delta + delta := currentTimestamp - s.lastTimestamp + s.lastTimestamp = currentTimestamp + logDatum.Timestamp = delta // Note that when delta is 0, proto3 omits the timestamp field + } + + // Pattern ID delta encoding (for structured logs only) + if structured := logDatum.GetStructured(); structured != nil { + if structured.PatternId == s.lastPatternID { + structured.PatternId = 0 // proto3 omits zero values + } else { + s.lastPatternID = structured.PatternId + } + } + + // Tag delta encoding (extract dict index from TagSet) + if tagSet := logDatum.Tags; tagSet != nil { + if tagSetValue := tagSet.Tagset; tagSetValue != nil { + if dictIndex := tagSetValue.GetDictIndex(); dictIndex != 0 { + if dictIndex == s.lastTagsDictIndex { + logDatum.Tags = nil // omit unchanged tags + } else { + s.lastTagsDictIndex = dictIndex + } + } + } + } +} + +// Mostly copy/pasted from batch.go +func (s *batchStrategy) processMessage(m *message.StatefulMessage, outputChan chan *message.Payload) { + // Track latency stats from metadata + if m.Metadata.Origin != nil { + m.Metadata.Origin.LogSource.LatencyStats.Add(m.Metadata.GetLatency()) + } + + added := s.addMessage(m) + if !added || s.buffer.IsFull() { + s.flushBuffer(outputChan) + } + if !added { + // it's possible that the m could not be added because the buffer was full + // so we need to retry once again + added = s.addMessage(m) + if !added { + log.Warnf("Dropped message in pipeline=%s reason=too-large ContentLength=%d ContentSizeLimit=%d", s.pipelineName, m.Metadata.RawDataLen, s.buffer.ContentSizeLimit()) + tlmDroppedTooLarge.Inc(s.pipelineName) + } + } +} + +// flushBuffer sends all the messages that are stored in the buffer and forwards them +// to the next stage of the pipeline. +func (s *batchStrategy) flushBuffer(outputChan chan *message.Payload) { + if s.buffer.IsEmpty() { + return + } + + s.utilization.Start() + + messagesMetadata := s.buffer.GetMessages() + s.buffer.Clear() + + // Use the collected Datums and clear them + grpcDatums := s.grpcDatums + s.grpcDatums = make([]*statefulpb.Datum, 0) + + // Reset delta encoding state for next batch + s.lastTimestamp = 0 + s.lastPatternID = 0 + s.lastTagsDictIndex = 0 + + s.sendMessagesWithDatums(messagesMetadata, grpcDatums, outputChan) +} + +func (s *batchStrategy) sendMessagesWithDatums(messagesMetadata []*message.MessageMetadata, grpcDatums []*statefulpb.Datum, outputChan chan *message.Payload) { + defer s.utilization.Stop() + + unencodedSize := 0 + for _, msgMeta := range messagesMetadata { + unencodedSize += msgMeta.RawDataLen + } + + // Extract all state changes from this batch for snapshot management + var stateChanges []*statefulpb.Datum + for _, datum := range grpcDatums { + if isStateDatum(datum) { + stateChanges = append(stateChanges, datum) + } + } + + // Create DatumSequence and marshal to bytes + datumSeq := &statefulpb.DatumSequence{ + Data: grpcDatums, + } + + serialized, err := proto.Marshal(datumSeq) + if err != nil { + log.Errorf("Failed to marshal DatumSequence: %v", err) + return + } + + // Compress the serialized protobuf data + compressed, err := s.compression.Compress(serialized) + if err != nil { + log.Errorf("Failed to compress DatumSequence: %v", err) + return + } + + // Create payload with compressed data + p := &message.Payload{ + MessageMetas: messagesMetadata, + Encoded: compressed, + Encoding: s.compression.ContentEncoding(), + UnencodedSize: unencodedSize, + } + + // Store batch-level state changes in payload + if len(stateChanges) > 0 { + p.StatefulExtra = &StatefulExtra{ + StateChanges: stateChanges, + } + } + + outputChan <- p + s.pipelineMonitor.ReportComponentEgress(p, metrics.StrategyTlmName, s.instanceID) + s.pipelineMonitor.ReportComponentIngress(p, metrics.SenderTlmName, metrics.SenderTlmInstanceID) +} diff --git a/pkg/logs/sender/grpc/batch_strategy_test.go b/pkg/logs/sender/grpc/batch_strategy_test.go new file mode 100644 index 00000000000..e46d5e8537a --- /dev/null +++ b/pkg/logs/sender/grpc/batch_strategy_test.go @@ -0,0 +1,654 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build test + +package grpc + +import ( + "testing" + "time" + + "github.com/benbjohnson/clock" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "google.golang.org/protobuf/proto" + + "github.com/DataDog/agent-payload/v5/statefulpb" + compressionfx "github.com/DataDog/datadog-agent/comp/serializer/logscompression/fx-mock" + "github.com/DataDog/datadog-agent/pkg/logs/message" + "github.com/DataDog/datadog-agent/pkg/logs/metrics" + "github.com/DataDog/datadog-agent/pkg/util/compression" +) + +// Helper to create test StatefulMessage with Datum +func createTestStatefulMessage(content string) *message.StatefulMessage { + msg := message.NewMessage([]byte(content), nil, "", 0) + msg.MessageMetadata.RawDataLen = len(content) + + datum := &statefulpb.Datum{ + Data: &statefulpb.Datum_Logs{ + Logs: &statefulpb.Log{ + Timestamp: 12345, + Content: &statefulpb.Log_Raw{ + Raw: content, + }, + }, + }, + } + + return &message.StatefulMessage{ + Metadata: &msg.MessageMetadata, + Datum: datum, + } +} + +func TestBatchStrategySendsPayloadWhenBufferIsFull(t *testing.T) { + input := make(chan *message.StatefulMessage) + output := make(chan *message.Payload) + flushChan := make(chan struct{}) + + s := NewBatchStrategy( + input, + output, + flushChan, + 100*time.Millisecond, + 2, // maxBatchSize + 1000, + "test", + compressionfx.NewMockCompressor().NewCompressor(compression.NoneKind, 1), + metrics.NewNoopPipelineMonitor(""), + "test") + s.Start() + + message1 := createTestStatefulMessage("a") + input <- message1 + + message2 := createTestStatefulMessage("b") + input <- message2 + + // Expect payload to be sent because buffer is full + payload := <-output + assert.Equal(t, 2, len(payload.MessageMetas)) + assert.Equal(t, message1.Metadata, payload.MessageMetas[0]) + assert.Equal(t, message2.Metadata, payload.MessageMetas[1]) + assert.Equal(t, "identity", payload.Encoding) + assert.Equal(t, 2, payload.UnencodedSize) + + // Verify the payload contains valid DatumSequence + var datumSeq statefulpb.DatumSequence + err := proto.Unmarshal(payload.Encoded, &datumSeq) + require.NoError(t, err) + assert.Equal(t, 2, len(datumSeq.Data)) + assert.Equal(t, "a", datumSeq.Data[0].GetLogs().GetRaw()) + assert.Equal(t, "b", datumSeq.Data[1].GetLogs().GetRaw()) + + s.Stop() + + if _, isOpen := <-input; isOpen { + assert.Fail(t, "input should be closed") + } +} + +func TestBatchStrategySendsPayloadWhenBufferIsOutdated(t *testing.T) { + input := make(chan *message.StatefulMessage) + output := make(chan *message.Payload) + flushChan := make(chan struct{}) + timerInterval := 100 * time.Millisecond + + clk := clock.NewMock() + s := newBatchStrategyWithClock( + input, + output, + flushChan, + timerInterval, + 100, // maxBatchSize + 1000, + "test", + clk, + compressionfx.NewMockCompressor().NewCompressor(compression.NoneKind, 1), + metrics.NewNoopPipelineMonitor(""), + "test") + s.Start() + + for round := 0; round < 3; round++ { + m := createTestStatefulMessage("test") + input <- m + + // It should flush in this time + clk.Add(2 * timerInterval) + + payload := <-output + assert.EqualValues(t, m.Metadata, payload.MessageMetas[0]) + + // Verify payload contains valid DatumSequence + var datumSeq statefulpb.DatumSequence + err := proto.Unmarshal(payload.Encoded, &datumSeq) + require.NoError(t, err) + assert.Equal(t, 1, len(datumSeq.Data)) + } + + s.Stop() + if _, isOpen := <-input; isOpen { + assert.Fail(t, "input should be closed") + } +} + +func TestBatchStrategySendsPayloadWhenClosingInput(t *testing.T) { + input := make(chan *message.StatefulMessage) + output := make(chan *message.Payload) + flushChan := make(chan struct{}) + + clk := clock.NewMock() + s := newBatchStrategyWithClock( + input, + output, + flushChan, + 100*time.Millisecond, + 2, + 1000, + "test", + clk, + compressionfx.NewMockCompressor().NewCompressor(compression.NoneKind, 1), + metrics.NewNoopPipelineMonitor(""), + "test") + s.Start() + + message := createTestStatefulMessage("test") + input <- message + + go func() { + s.Stop() + }() + + if _, isOpen := <-input; isOpen { + assert.Fail(t, "input should be closed") + } + + // Expect payload to be sent before timer, so we never advance the clock; if this + // doesn't work, the test will hang + payload := <-output + assert.Equal(t, message.Metadata, payload.MessageMetas[0]) +} + +func TestBatchStrategyShouldNotBlockWhenStoppingGracefully(t *testing.T) { + input := make(chan *message.StatefulMessage) + output := make(chan *message.Payload) + flushChan := make(chan struct{}) + + s := NewBatchStrategy( + input, + output, + flushChan, + 100*time.Millisecond, + 2, + 1000, + "test", + compressionfx.NewMockCompressor().NewCompressor(compression.NoneKind, 1), + metrics.NewNoopPipelineMonitor(""), + "test") + s.Start() + + message := createTestStatefulMessage("test") + input <- message + + go func() { + s.Stop() + }() + + if _, isOpen := <-input; isOpen { + assert.Fail(t, "input should be closed") + } + + payload := <-output + assert.Equal(t, message.Metadata, payload.MessageMetas[0]) +} + +func TestBatchStrategySynchronousFlush(t *testing.T) { + input := make(chan *message.StatefulMessage) + output := make(chan *message.Payload) + flushChan := make(chan struct{}) + + // Batch size is large so it will not flush until we trigger it manually + // Flush time is large so it won't automatically trigger during this test + strategy := NewBatchStrategy( + input, + output, + flushChan, + time.Hour, + 100, + 10000, + "test", + compressionfx.NewMockCompressor().NewCompressor(compression.NoneKind, 1), + metrics.NewNoopPipelineMonitor(""), + "test") + strategy.Start() + + // All of these messages will get buffered + messages := []*message.StatefulMessage{ + createTestStatefulMessage("a"), + createTestStatefulMessage("b"), + createTestStatefulMessage("c"), + } + + messageMeta := make([]*message.MessageMetadata, len(messages)) + for idx, m := range messages { + input <- m + messageMeta[idx] = m.Metadata + } + + // Since the batch size is large there should be nothing on the output yet + select { + case <-output: + assert.Fail(t, "there should be nothing on the output channel yet") + default: + } + + go func() { + // Stop triggers the flush and make sure we can read the messages out now + strategy.Stop() + }() + + if _, isOpen := <-input; isOpen { + assert.Fail(t, "input should be closed") + } + + payload := <-output + assert.ElementsMatch(t, messageMeta, payload.MessageMetas) + + select { + case <-output: + assert.Fail(t, "the output channel should still be empty") + default: + } +} + +func TestBatchStrategyFlushChannel(t *testing.T) { + input := make(chan *message.StatefulMessage) + output := make(chan *message.Payload) + flushChan := make(chan struct{}) + + // Batch size is large so it will not flush until we trigger it manually + // Flush time is large so it won't automatically trigger during this test + strategy := NewBatchStrategy( + input, + output, + flushChan, + time.Hour, + 100, + 10000, + "test", + compressionfx.NewMockCompressor().NewCompressor(compression.NoneKind, 1), + metrics.NewNoopPipelineMonitor(""), + "test") + strategy.Start() + + // All of these messages will get buffered + messages := []*message.StatefulMessage{ + createTestStatefulMessage("a"), + createTestStatefulMessage("b"), + createTestStatefulMessage("c"), + } + messageMeta := make([]*message.MessageMetadata, len(messages)) + for idx, m := range messages { + input <- m + messageMeta[idx] = m.Metadata + } + + // Since the batch size is large there should be nothing on the output yet + select { + case <-output: + assert.Fail(t, "there should be nothing on the output channel yet") + default: + } + + // Trigger a manual flush + flushChan <- struct{}{} + + payload := <-output + assert.ElementsMatch(t, messageMeta, payload.MessageMetas) + + // Ensure we read all of the messages + select { + case <-output: + assert.Fail(t, "the output channel should still be empty") + default: + } + + // End the test strategy + go func() { + // Stop triggers the flush and make sure we can read the messages out now + strategy.Stop() + }() + + if _, isOpen := <-input; isOpen { + assert.Fail(t, "input should be closed") + } +} + +func TestBatchStrategyMessageTooLarge(t *testing.T) { + input := make(chan *message.StatefulMessage) + output := make(chan *message.Payload, 10) // Buffered to prevent deadlock + flushChan := make(chan struct{}) + + strategy := NewBatchStrategy( + input, + output, + flushChan, + time.Hour, + 100, + 10, // Small content size limit + "test", + compressionfx.NewMockCompressor().NewCompressor(compression.NoneKind, 1), + metrics.NewNoopPipelineMonitor(""), + "test") + strategy.Start() + + // Send a message that fits + normalMessage := createTestStatefulMessage("small") + input <- normalMessage + + // Send a message that's too large (will be dropped) + largeMessage := createTestStatefulMessage("this message is way too large for the content size limit") + input <- largeMessage + + // Trigger flush + flushChan <- struct{}{} + + // Should only receive the normal message + payload := <-output + assert.Equal(t, 1, len(payload.MessageMetas)) + assert.Equal(t, normalMessage.Metadata, payload.MessageMetas[0]) + + // Verify no more payloads + select { + case <-output: + assert.Fail(t, "should not receive more payloads") + default: + } + + strategy.Stop() +} + +func TestBatchStrategyInvalidDatum(t *testing.T) { + input := make(chan *message.StatefulMessage) + output := make(chan *message.Payload, 10) // Buffered to prevent deadlock + flushChan := make(chan struct{}) + + strategy := NewBatchStrategy( + input, + output, + flushChan, + time.Hour, + 100, + 1000, + "test", + compressionfx.NewMockCompressor().NewCompressor(compression.NoneKind, 1), + metrics.NewNoopPipelineMonitor(""), + "test") + strategy.Start() + + // Send message with nil Datum + msg1 := message.NewMessage([]byte("test"), nil, "", 0) + invalidMsg1 := &message.StatefulMessage{ + Metadata: &msg1.MessageMetadata, + Datum: nil, + } + input <- invalidMsg1 + + // Note: With strongly-typed Datum field, wrong type is prevented at compile time + + // Send a valid message + validMsg := createTestStatefulMessage("valid") + input <- validMsg + + // Trigger flush + flushChan <- struct{}{} + + // Should only receive the valid message + payload := <-output + assert.Equal(t, 1, len(payload.MessageMetas)) + assert.Equal(t, validMsg.Metadata, payload.MessageMetas[0]) + + strategy.Stop() +} + +func TestBatchStrategyCompression(t *testing.T) { + input := make(chan *message.StatefulMessage) + output := make(chan *message.Payload, 10) // Buffered to prevent deadlock + flushChan := make(chan struct{}) + + // Use identity (no-op) compression for simplicity + // Testing actual compression behavior is covered by the compression package tests + compressor := compressionfx.NewMockCompressor().NewCompressor(compression.NoneKind, 1) + + strategy := NewBatchStrategy( + input, + output, + flushChan, + time.Hour, + 100, + 10000, + "test", + compressor, + metrics.NewNoopPipelineMonitor(""), + "test") + strategy.Start() + + // Send several messages + for i := 0; i < 5; i++ { + msg := createTestStatefulMessage("test message") + input <- msg + } + + // Trigger flush + flushChan <- struct{}{} + + payload := <-output + assert.Equal(t, 5, len(payload.MessageMetas)) + assert.Equal(t, "identity", payload.Encoding) + assert.NotEmpty(t, payload.Encoded) + + // Verify the payload contains valid DatumSequence (identity compression = no compression) + var datumSeq statefulpb.DatumSequence + err := proto.Unmarshal(payload.Encoded, &datumSeq) + require.NoError(t, err) + assert.Equal(t, 5, len(datumSeq.Data)) + for _, datum := range datumSeq.Data { + assert.Equal(t, "test message", datum.GetLogs().GetRaw()) + } + + strategy.Stop() +} + +// TestBatchStrategyStatefulExtra tests that state changes are correctly tracked in StatefulExtra +func TestBatchStrategyStatefulExtra(t *testing.T) { + input := make(chan *message.StatefulMessage) + output := make(chan *message.Payload, 10) // Buffered to prevent blocking + flushChan := make(chan struct{}) + timerInterval := 100 * time.Millisecond + + clk := clock.NewMock() + strategy := newBatchStrategyWithClock( + input, + output, + flushChan, + timerInterval, + 10, // maxBatchSize - large enough to not trigger size-based flush + 1000, + "test", + clk, + compressionfx.NewMockCompressor().NewCompressor(compression.NoneKind, 1), + metrics.NewNoopPipelineMonitor(""), + "test") + strategy.Start() + + // Helper to create state change messages + createPatternDefineMsg := func(id uint64, template string) *message.StatefulMessage { + msg := message.NewMessage([]byte(""), nil, "", 0) + msg.MessageMetadata.RawDataLen = 0 + return &message.StatefulMessage{ + Metadata: &msg.MessageMetadata, + Datum: &statefulpb.Datum{ + Data: &statefulpb.Datum_PatternDefine{ + PatternDefine: &statefulpb.PatternDefine{ + PatternId: id, + Template: template, + }, + }, + }, + } + } + + createDictEntryDefineMsg := func(id uint64, value string) *message.StatefulMessage { + msg := message.NewMessage([]byte(""), nil, "", 0) + msg.MessageMetadata.RawDataLen = 0 + return &message.StatefulMessage{ + Metadata: &msg.MessageMetadata, + Datum: &statefulpb.Datum{ + Data: &statefulpb.Datum_DictEntryDefine{ + DictEntryDefine: &statefulpb.DictEntryDefine{ + Id: id, + Value: value, + }, + }, + }, + } + } + + createPatternDeleteMsg := func(id uint64) *message.StatefulMessage { + msg := message.NewMessage([]byte(""), nil, "", 0) + msg.MessageMetadata.RawDataLen = 0 + return &message.StatefulMessage{ + Metadata: &msg.MessageMetadata, + Datum: &statefulpb.Datum{ + Data: &statefulpb.Datum_PatternDelete{ + PatternDelete: &statefulpb.PatternDelete{ + PatternId: id, + }, + }, + }, + } + } + + createDictEntryDeleteMsg := func(id uint64) *message.StatefulMessage { + msg := message.NewMessage([]byte(""), nil, "", 0) + msg.MessageMetadata.RawDataLen = 0 + return &message.StatefulMessage{ + Metadata: &msg.MessageMetadata, + Datum: &statefulpb.Datum{ + Data: &statefulpb.Datum_DictEntryDelete{ + DictEntryDelete: &statefulpb.DictEntryDelete{ + Id: id, + }, + }, + }, + } + } + + createLogMsg := func(content string) *message.StatefulMessage { + msg := message.NewMessage([]byte(content), nil, "", 0) + msg.MessageMetadata.RawDataLen = len(content) + return &message.StatefulMessage{ + Metadata: &msg.MessageMetadata, + Datum: &statefulpb.Datum{ + Data: &statefulpb.Datum_Logs{ + Logs: &statefulpb.Log{ + Timestamp: 12345, + Content: &statefulpb.Log_Raw{ + Raw: content, + }, + }, + }, + }, + } + } + + // Send all 14 events in sequence + // Batch 1 (5 entries): add p1, add d1, log, add p2, add d2 + input <- createPatternDefineMsg(1, "pattern1") + input <- createDictEntryDefineMsg(1, "value1") + input <- createLogMsg("log with p1/d1") + input <- createPatternDefineMsg(2, "pattern2") + input <- createDictEntryDefineMsg(2, "value2") + + // Advance clock to trigger timer-based flush for batch 1 + clk.Add(2 * timerInterval) + + // Receive and verify Batch 1 + payload1 := <-output + require.Equal(t, 5, len(payload1.MessageMetas), "Batch 1 should have 5 messages") + + // Verify StatefulExtra for Batch 1 + require.NotNil(t, payload1.StatefulExtra, "Batch 1 should have StatefulExtra") + extra1, ok := payload1.StatefulExtra.(*StatefulExtra) + require.True(t, ok, "StatefulExtra should be of type *StatefulExtra") + require.Equal(t, 4, len(extra1.StateChanges), "Batch 1 should have 4 state changes") + + // Check specific state changes in Batch 1 + assert.Equal(t, uint64(1), extra1.StateChanges[0].GetPatternDefine().PatternId) + assert.Equal(t, "pattern1", extra1.StateChanges[0].GetPatternDefine().Template) + assert.Equal(t, uint64(1), extra1.StateChanges[1].GetDictEntryDefine().Id) + assert.Equal(t, "value1", extra1.StateChanges[1].GetDictEntryDefine().Value) + assert.Equal(t, uint64(2), extra1.StateChanges[2].GetPatternDefine().PatternId) + assert.Equal(t, "pattern2", extra1.StateChanges[2].GetPatternDefine().Template) + assert.Equal(t, uint64(2), extra1.StateChanges[3].GetDictEntryDefine().Id) + assert.Equal(t, "value2", extra1.StateChanges[3].GetDictEntryDefine().Value) + + // Batch 2 (6 entries): log, del p1, del d1, add p3, add d3, log + input <- createLogMsg("log with p2/d2") + input <- createPatternDeleteMsg(1) + input <- createDictEntryDeleteMsg(1) + input <- createPatternDefineMsg(3, "pattern3") + input <- createDictEntryDefineMsg(3, "value3") + input <- createLogMsg("log with p3/d3") + + // Advance clock to trigger timer-based flush for batch 2 + clk.Add(2 * timerInterval) + + // Receive and verify Batch 2 + payload2 := <-output + require.Equal(t, 6, len(payload2.MessageMetas), "Batch 2 should have 6 messages") + + // Verify StatefulExtra for Batch 2 + require.NotNil(t, payload2.StatefulExtra, "Batch 2 should have StatefulExtra") + extra2, ok := payload2.StatefulExtra.(*StatefulExtra) + require.True(t, ok, "StatefulExtra should be of type *StatefulExtra") + require.Equal(t, 4, len(extra2.StateChanges), "Batch 2 should have 4 state changes") + + // Check specific state changes in Batch 2 + assert.Equal(t, uint64(1), extra2.StateChanges[0].GetPatternDelete().PatternId) + assert.Equal(t, uint64(1), extra2.StateChanges[1].GetDictEntryDelete().Id) + assert.Equal(t, uint64(3), extra2.StateChanges[2].GetPatternDefine().PatternId) + assert.Equal(t, "pattern3", extra2.StateChanges[2].GetPatternDefine().Template) + assert.Equal(t, uint64(3), extra2.StateChanges[3].GetDictEntryDefine().Id) + assert.Equal(t, "value3", extra2.StateChanges[3].GetDictEntryDefine().Value) + + // Batch 3 (3 entries): add p4, add d4, log + input <- createPatternDefineMsg(4, "pattern4") + input <- createDictEntryDefineMsg(4, "value4") + input <- createLogMsg("log with p4/d4") + + // Advance clock to trigger timer-based flush for batch 3 + clk.Add(2 * timerInterval) + + // Receive and verify Batch 3 + payload3 := <-output + require.Equal(t, 3, len(payload3.MessageMetas), "Batch 3 should have 3 messages") + + // Verify StatefulExtra for Batch 3 + require.NotNil(t, payload3.StatefulExtra, "Batch 3 should have StatefulExtra") + extra3, ok := payload3.StatefulExtra.(*StatefulExtra) + require.True(t, ok, "StatefulExtra should be of type *StatefulExtra") + require.Equal(t, 2, len(extra3.StateChanges), "Batch 3 should have 2 state changes") + + // Check specific state changes in Batch 3 + assert.Equal(t, uint64(4), extra3.StateChanges[0].GetPatternDefine().PatternId) + assert.Equal(t, "pattern4", extra3.StateChanges[0].GetPatternDefine().Template) + assert.Equal(t, uint64(4), extra3.StateChanges[1].GetDictEntryDefine().Id) + assert.Equal(t, "value4", extra3.StateChanges[1].GetDictEntryDefine().Value) + + strategy.Stop() +} diff --git a/pkg/logs/sender/grpc/go.mod b/pkg/logs/sender/grpc/go.mod new file mode 100644 index 00000000000..7c7b1cc105d --- /dev/null +++ b/pkg/logs/sender/grpc/go.mod @@ -0,0 +1,296 @@ +module github.com/DataDog/datadog-agent/pkg/logs/sender/grpc + +go 1.25.0 + +require ( + github.com/DataDog/agent-payload/v5 v5.0.191 + github.com/DataDog/datadog-agent/comp/logs/agent/config v0.61.0 + github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.64.0-devel + github.com/DataDog/datadog-agent/pkg/config/model v0.73.0-rc.5 + github.com/DataDog/datadog-agent/pkg/logs/client v0.61.0 + github.com/DataDog/datadog-agent/pkg/logs/message v0.64.0-rc.12 + github.com/DataDog/datadog-agent/pkg/logs/metrics v0.61.0 + github.com/DataDog/datadog-agent/pkg/logs/processor v0.0.0-00010101000000-000000000000 + github.com/DataDog/datadog-agent/pkg/logs/sender v0.0.0-00010101000000-000000000000 + github.com/DataDog/datadog-agent/pkg/telemetry v0.64.1 + github.com/DataDog/datadog-agent/pkg/util/backoff v0.61.0 + github.com/DataDog/datadog-agent/pkg/util/compression v0.56.0-rc.3 + github.com/DataDog/datadog-agent/pkg/util/log v0.73.0-rc.5 + github.com/DataDog/datadog-agent/pkg/version v0.72.2 + github.com/benbjohnson/clock v1.3.5 + github.com/stretchr/testify v1.11.1 + go.uber.org/atomic v1.11.0 + google.golang.org/grpc v1.79.3 + google.golang.org/protobuf v1.36.11 +) + +require ( + github.com/DataDog/datadog-agent/comp/core/config v0.64.0-devel // indirect + github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect + github.com/DataDog/datadog-agent/comp/core/flare/builder v0.61.0 // indirect + github.com/DataDog/datadog-agent/comp/core/flare/types v0.72.0-rc.1 // indirect + github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.61.0 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.77.0-devel.0.20260211235139-a5361978c2b6 // indirect + github.com/DataDog/datadog-agent/comp/core/telemetry v0.61.0 // indirect + github.com/DataDog/datadog-agent/comp/def v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect + github.com/DataDog/datadog-agent/pkg/config/create v0.70.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.61.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/helper v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect + github.com/DataDog/datadog-agent/pkg/config/mock v0.70.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.64.1 // indirect + github.com/DataDog/datadog-agent/pkg/config/setup v0.61.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.77.0-devel.0.20260211235139-a5361978c2b6 // indirect + github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.64.1 // indirect + github.com/DataDog/datadog-agent/pkg/config/utils v0.61.0 // indirect + github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.72.2 // indirect + github.com/DataDog/datadog-agent/pkg/fips v0.0.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.61.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/sources v0.61.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.61.0 // indirect + github.com/DataDog/datadog-agent/pkg/logs/types v0.71.0-rc.1 // indirect + github.com/DataDog/datadog-agent/pkg/template v0.65.1 // indirect + github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.64.0-devel // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.61.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.61.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/flavor v0.0.0-00010101000000-000000000000 // indirect + github.com/DataDog/datadog-agent/pkg/util/fxutil v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/option v0.64.0-devel // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.61.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.73.0-rc.5 // indirect + github.com/DataDog/datadog-agent/pkg/util/statstracker v0.61.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.61.0 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.61.0 // indirect + github.com/DataDog/viper v1.15.1 // indirect + github.com/DataDog/zstd v1.5.7 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/ebitengine/purego v0.10.0 // indirect + github.com/fsnotify/fsnotify v1.9.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/go-viper/mapstructure/v2 v2.5.0 // indirect + github.com/gofrs/flock v0.13.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 // indirect + github.com/magiconair/properties v1.8.10 // indirect + github.com/mdlayher/socket v0.5.1 // indirect + github.com/mdlayher/vsock v1.2.1 // indirect + github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect + github.com/prometheus/client_golang v1.23.2 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/common v0.67.5 // indirect + github.com/prometheus/procfs v0.20.1 // indirect + github.com/shirou/gopsutil/v4 v4.26.2 // indirect + github.com/spf13/cast v1.10.0 // indirect + github.com/spf13/cobra v1.10.2 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.10 // indirect + github.com/tklauser/go-sysconf v0.3.16 // indirect + github.com/tklauser/numcpus v0.11.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.uber.org/dig v1.19.0 // indirect + go.uber.org/fx v1.24.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.27.1 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect + go.yaml.in/yaml/v3 v3.0.4 // indirect + golang.org/x/net v0.52.0 // indirect + golang.org/x/sync v0.20.0 // indirect + golang.org/x/sys v0.42.0 // indirect + golang.org/x/text v0.35.0 // indirect + golang.org/x/time v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) + +// This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually + +replace ( + github.com/DataDog/datadog-agent/comp/api/api/def => ../../../../comp/api/api/def + github.com/DataDog/datadog-agent/comp/core/agenttelemetry/def => ../../../../comp/core/agenttelemetry/def + github.com/DataDog/datadog-agent/comp/core/agenttelemetry/fx => ../../../../comp/core/agenttelemetry/fx + github.com/DataDog/datadog-agent/comp/core/agenttelemetry/impl => ../../../../comp/core/agenttelemetry/impl + github.com/DataDog/datadog-agent/comp/core/config => ../../../../comp/core/config + github.com/DataDog/datadog-agent/comp/core/configsync => ../../../../comp/core/configsync + github.com/DataDog/datadog-agent/comp/core/delegatedauth => ../../../../comp/core/delegatedauth + github.com/DataDog/datadog-agent/comp/core/delegatedauth/api/cloudauth/aws => ../../../../comp/core/delegatedauth/api/cloudauth/aws + github.com/DataDog/datadog-agent/comp/core/flare/builder => ../../../../comp/core/flare/builder + github.com/DataDog/datadog-agent/comp/core/flare/types => ../../../../comp/core/flare/types + github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface => ../../../../comp/core/hostname/hostnameinterface + github.com/DataDog/datadog-agent/comp/core/ipc/def => ../../../../comp/core/ipc/def + github.com/DataDog/datadog-agent/comp/core/ipc/httphelpers => ../../../../comp/core/ipc/httphelpers + github.com/DataDog/datadog-agent/comp/core/ipc/impl => ../../../../comp/core/ipc/impl + github.com/DataDog/datadog-agent/comp/core/ipc/mock => ../../../../comp/core/ipc/mock + github.com/DataDog/datadog-agent/comp/core/log/def => ../../../../comp/core/log/def + github.com/DataDog/datadog-agent/comp/core/log/fx => ../../../../comp/core/log/fx + github.com/DataDog/datadog-agent/comp/core/log/impl => ../../../../comp/core/log/impl + github.com/DataDog/datadog-agent/comp/core/log/impl-trace => ../../../../comp/core/log/impl-trace + github.com/DataDog/datadog-agent/comp/core/log/mock => ../../../../comp/core/log/mock + github.com/DataDog/datadog-agent/comp/core/secrets/def => ../../../../comp/core/secrets/def + github.com/DataDog/datadog-agent/comp/core/secrets/fx => ../../../../comp/core/secrets/fx + github.com/DataDog/datadog-agent/comp/core/secrets/impl => ../../../../comp/core/secrets/impl + github.com/DataDog/datadog-agent/comp/core/secrets/mock => ../../../../comp/core/secrets/mock + github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl => ../../../../comp/core/secrets/noop-impl + github.com/DataDog/datadog-agent/comp/core/secrets/utils => ../../../../comp/core/secrets/utils + github.com/DataDog/datadog-agent/comp/core/status => ../../../../comp/core/status + github.com/DataDog/datadog-agent/comp/core/status/statusimpl => ../../../../comp/core/status/statusimpl + github.com/DataDog/datadog-agent/comp/core/tagger/def => ../../../../comp/core/tagger/def + github.com/DataDog/datadog-agent/comp/core/tagger/fx-remote => ../../../../comp/core/tagger/fx-remote + github.com/DataDog/datadog-agent/comp/core/tagger/generic_store => ../../../../comp/core/tagger/generic_store + github.com/DataDog/datadog-agent/comp/core/tagger/impl-remote => ../../../../comp/core/tagger/impl-remote + github.com/DataDog/datadog-agent/comp/core/tagger/origindetection => ../../../../comp/core/tagger/origindetection + github.com/DataDog/datadog-agent/comp/core/tagger/subscriber => ../../../../comp/core/tagger/subscriber + github.com/DataDog/datadog-agent/comp/core/tagger/tags => ../../../../comp/core/tagger/tags + github.com/DataDog/datadog-agent/comp/core/tagger/telemetry => ../../../../comp/core/tagger/telemetry + github.com/DataDog/datadog-agent/comp/core/tagger/types => ../../../../comp/core/tagger/types + github.com/DataDog/datadog-agent/comp/core/tagger/utils => ../../../../comp/core/tagger/utils + github.com/DataDog/datadog-agent/comp/core/telemetry => ../../../../comp/core/telemetry + github.com/DataDog/datadog-agent/comp/def => ../../../../comp/def + github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder => ../../../../comp/forwarder/defaultforwarder + github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface => ../../../../comp/forwarder/orchestrator/orchestratorinterface + github.com/DataDog/datadog-agent/comp/logs-library => ../../../../comp/logs-library + github.com/DataDog/datadog-agent/comp/logs/agent/config => ../../../../comp/logs/agent/config + github.com/DataDog/datadog-agent/comp/netflow/payload => ../../../../comp/netflow/payload + github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/def => ../../../../comp/otelcol/collector-contrib/def + github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/impl => ../../../../comp/otelcol/collector-contrib/impl + github.com/DataDog/datadog-agent/comp/otelcol/converter/def => ../../../../comp/otelcol/converter/def + github.com/DataDog/datadog-agent/comp/otelcol/converter/impl => ../../../../comp/otelcol/converter/impl + github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/def => ../../../../comp/otelcol/ddflareextension/def + github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/impl => ../../../../comp/otelcol/ddflareextension/impl + github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/types => ../../../../comp/otelcol/ddflareextension/types + github.com/DataDog/datadog-agent/comp/otelcol/ddprofilingextension/def => ../../../../comp/otelcol/ddprofilingextension/def + github.com/DataDog/datadog-agent/comp/otelcol/ddprofilingextension/impl => ../../../../comp/otelcol/ddprofilingextension/impl + github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline => ../../../../comp/otelcol/logsagentpipeline + github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl => ../../../../comp/otelcol/logsagentpipeline/logsagentpipelineimpl + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/datadogexporter => ../../../../comp/otelcol/otlp/components/exporter/datadogexporter + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter => ../../../../comp/otelcol/otlp/components/exporter/logsagentexporter + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter => ../../../../comp/otelcol/otlp/components/exporter/serializerexporter + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient => ../../../../comp/otelcol/otlp/components/metricsclient + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/processor/infraattributesprocessor => ../../../../comp/otelcol/otlp/components/processor/infraattributesprocessor + github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil => ../../../../comp/otelcol/otlp/testutil + github.com/DataDog/datadog-agent/comp/otelcol/status/def => ../../../../comp/otelcol/status/def + github.com/DataDog/datadog-agent/comp/otelcol/status/impl => ../../../../comp/otelcol/status/impl + github.com/DataDog/datadog-agent/comp/serializer/logscompression => ../../../../comp/serializer/logscompression + github.com/DataDog/datadog-agent/comp/serializer/metricscompression => ../../../../comp/serializer/metricscompression + github.com/DataDog/datadog-agent/comp/trace/agent/def => ../../../../comp/trace/agent/def + github.com/DataDog/datadog-agent/comp/trace/compression/def => ../../../../comp/trace/compression/def + github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip => ../../../../comp/trace/compression/impl-gzip + github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd => ../../../../comp/trace/compression/impl-zstd + github.com/DataDog/datadog-agent/pkg/aggregator/ckey => ../../../../pkg/aggregator/ckey + github.com/DataDog/datadog-agent/pkg/api => ../../../../pkg/api + github.com/DataDog/datadog-agent/pkg/collector/check/defaults => ../../../../pkg/collector/check/defaults + github.com/DataDog/datadog-agent/pkg/config/basic => ../../../../pkg/config/basic + github.com/DataDog/datadog-agent/pkg/config/create => ../../../../pkg/config/create + github.com/DataDog/datadog-agent/pkg/config/env => ../../../../pkg/config/env + github.com/DataDog/datadog-agent/pkg/config/helper => ../../../../pkg/config/helper + github.com/DataDog/datadog-agent/pkg/config/mock => ../../../../pkg/config/mock + github.com/DataDog/datadog-agent/pkg/config/model => ../../../../pkg/config/model + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel => ../../../../pkg/config/nodetreemodel + github.com/DataDog/datadog-agent/pkg/config/remote => ../../../../pkg/config/remote + github.com/DataDog/datadog-agent/pkg/config/render_config => ../../../../pkg/config/render_config + github.com/DataDog/datadog-agent/pkg/config/setup => ../../../../pkg/config/setup + github.com/DataDog/datadog-agent/pkg/config/structure => ../../../../pkg/config/structure + github.com/DataDog/datadog-agent/pkg/config/teeconfig => ../../../../pkg/config/teeconfig + github.com/DataDog/datadog-agent/pkg/config/utils => ../../../../pkg/config/utils + github.com/DataDog/datadog-agent/pkg/config/viperconfig => ../../../../pkg/config/viperconfig + github.com/DataDog/datadog-agent/pkg/discovery/tracermetadata/model => ../../../../pkg/discovery/tracermetadata/model + github.com/DataDog/datadog-agent/pkg/errors => ../../../../pkg/errors + github.com/DataDog/datadog-agent/pkg/fips => ../../../../pkg/fips + github.com/DataDog/datadog-agent/pkg/fleet/installer => ../../../../pkg/fleet/installer + github.com/DataDog/datadog-agent/pkg/gohai => ../../../../pkg/gohai + github.com/DataDog/datadog-agent/pkg/logs/client => ../../../../pkg/logs/client + github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic + github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message + github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics + github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline + github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor + github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources + github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface + github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils + github.com/DataDog/datadog-agent/pkg/logs/types => ../../../../pkg/logs/types + github.com/DataDog/datadog-agent/pkg/logs/util/testutils => ../../../../pkg/logs/util/testutils + github.com/DataDog/datadog-agent/pkg/metrics => ../../../../pkg/metrics + github.com/DataDog/datadog-agent/pkg/network/driver => ../../../../pkg/network/driver + github.com/DataDog/datadog-agent/pkg/network/payload => ../../../../pkg/network/payload + github.com/DataDog/datadog-agent/pkg/networkdevice/profile => ../../../../pkg/networkdevice/profile + github.com/DataDog/datadog-agent/pkg/networkpath/payload => ../../../../pkg/networkpath/payload + github.com/DataDog/datadog-agent/pkg/obfuscate => ../../../../pkg/obfuscate + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata => ../../../../pkg/opentelemetry-mapping-go/inframetadata + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata/gohai/internal/gohaitest => ../../../../pkg/opentelemetry-mapping-go/inframetadata/gohai/internal/gohaitest + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes => ../../../../pkg/opentelemetry-mapping-go/otlp/attributes + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs => ../../../../pkg/opentelemetry-mapping-go/otlp/logs + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics => ../../../../pkg/opentelemetry-mapping-go/otlp/metrics + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum => ../../../../pkg/opentelemetry-mapping-go/otlp/rum + github.com/DataDog/datadog-agent/pkg/orchestrator/model => ../../../../pkg/orchestrator/model + github.com/DataDog/datadog-agent/pkg/orchestrator/util => ../../../../pkg/orchestrator/util + github.com/DataDog/datadog-agent/pkg/process/util/api => ../../../../pkg/process/util/api + github.com/DataDog/datadog-agent/pkg/proto => ../../../../pkg/proto + github.com/DataDog/datadog-agent/pkg/remoteconfig/state => ../../../../pkg/remoteconfig/state + github.com/DataDog/datadog-agent/pkg/security/secl => ../../../../pkg/security/secl + github.com/DataDog/datadog-agent/pkg/security/seclwin => ../../../../pkg/security/seclwin + github.com/DataDog/datadog-agent/pkg/serializer => ../../../../pkg/serializer + github.com/DataDog/datadog-agent/pkg/ssi/testutils => ../../../../pkg/ssi/testutils + github.com/DataDog/datadog-agent/pkg/status/health => ../../../../pkg/status/health + github.com/DataDog/datadog-agent/pkg/tagger/types => ../../../../pkg/tagger/types + github.com/DataDog/datadog-agent/pkg/tagset => ../../../../pkg/tagset + github.com/DataDog/datadog-agent/pkg/telemetry => ../../../../pkg/telemetry + github.com/DataDog/datadog-agent/pkg/template => ../../../../pkg/template + github.com/DataDog/datadog-agent/pkg/trace => ../../../../pkg/trace + github.com/DataDog/datadog-agent/pkg/trace/log => ../../../../pkg/trace/log + github.com/DataDog/datadog-agent/pkg/trace/otel => ../../../../pkg/trace/otel + github.com/DataDog/datadog-agent/pkg/trace/stats => ../../../../pkg/trace/stats + github.com/DataDog/datadog-agent/pkg/trace/traceutil => ../../../../pkg/trace/traceutil + github.com/DataDog/datadog-agent/pkg/util/aws/creds => ../../../../pkg/util/aws/creds + github.com/DataDog/datadog-agent/pkg/util/backoff => ../../../../pkg/util/backoff + github.com/DataDog/datadog-agent/pkg/util/buf => ../../../../pkg/util/buf + github.com/DataDog/datadog-agent/pkg/util/cache => ../../../../pkg/util/cache + github.com/DataDog/datadog-agent/pkg/util/cgroups => ../../../../pkg/util/cgroups + github.com/DataDog/datadog-agent/pkg/util/common => ../../../../pkg/util/common + github.com/DataDog/datadog-agent/pkg/util/compression => ../../../../pkg/util/compression + github.com/DataDog/datadog-agent/pkg/util/containers/image => ../../../../pkg/util/containers/image + github.com/DataDog/datadog-agent/pkg/util/defaultpaths => ../../../../pkg/util/defaultpaths + github.com/DataDog/datadog-agent/pkg/util/executable => ../../../../pkg/util/executable + github.com/DataDog/datadog-agent/pkg/util/filesystem => ../../../../pkg/util/filesystem + github.com/DataDog/datadog-agent/pkg/util/flavor => ../../../../pkg/util/flavor + github.com/DataDog/datadog-agent/pkg/util/fxutil => ../../../../pkg/util/fxutil + github.com/DataDog/datadog-agent/pkg/util/grpc => ../../../../pkg/util/grpc + github.com/DataDog/datadog-agent/pkg/util/hostinfo => ../../../../pkg/util/hostinfo + github.com/DataDog/datadog-agent/pkg/util/hostname/validate => ../../../../pkg/util/hostname/validate + github.com/DataDog/datadog-agent/pkg/util/http => ../../../../pkg/util/http + github.com/DataDog/datadog-agent/pkg/util/json => ../../../../pkg/util/json + github.com/DataDog/datadog-agent/pkg/util/jsonquery => ../../../../pkg/util/jsonquery + github.com/DataDog/datadog-agent/pkg/util/kubernetes/apiserver/common/namespace => ../../../../pkg/util/kubernetes/apiserver/common/namespace + github.com/DataDog/datadog-agent/pkg/util/log => ../../../../pkg/util/log + github.com/DataDog/datadog-agent/pkg/util/log/setup => ../../../../pkg/util/log/setup + github.com/DataDog/datadog-agent/pkg/util/option => ../../../../pkg/util/option + github.com/DataDog/datadog-agent/pkg/util/otel => ../../../../pkg/util/otel + github.com/DataDog/datadog-agent/pkg/util/pointer => ../../../../pkg/util/pointer + github.com/DataDog/datadog-agent/pkg/util/prometheus => ../../../../pkg/util/prometheus + github.com/DataDog/datadog-agent/pkg/util/quantile => ../../../../pkg/util/quantile + github.com/DataDog/datadog-agent/pkg/util/quantile/sketchtest => ../../../../pkg/util/quantile/sketchtest + github.com/DataDog/datadog-agent/pkg/util/scrubber => ../../../../pkg/util/scrubber + github.com/DataDog/datadog-agent/pkg/util/sort => ../../../../pkg/util/sort + github.com/DataDog/datadog-agent/pkg/util/startstop => ../../../../pkg/util/startstop + github.com/DataDog/datadog-agent/pkg/util/statstracker => ../../../../pkg/util/statstracker + github.com/DataDog/datadog-agent/pkg/util/system => ../../../../pkg/util/system + github.com/DataDog/datadog-agent/pkg/util/testutil => ../../../../pkg/util/testutil + github.com/DataDog/datadog-agent/pkg/util/utilizationtracker => ../../../../pkg/util/utilizationtracker + github.com/DataDog/datadog-agent/pkg/util/uuid => ../../../../pkg/util/uuid + github.com/DataDog/datadog-agent/pkg/util/winutil => ../../../../pkg/util/winutil + github.com/DataDog/datadog-agent/pkg/version => ../../../../pkg/version + github.com/DataDog/datadog-agent/test/e2e-framework => ../../../../test/e2e-framework + github.com/DataDog/datadog-agent/test/fakeintake => ../../../../test/fakeintake + github.com/DataDog/datadog-agent/test/new-e2e => ../../../../test/new-e2e + github.com/DataDog/datadog-agent/test/otel => ../../../../test/otel +) diff --git a/pkg/logs/sender/grpc/go.sum b/pkg/logs/sender/grpc/go.sum new file mode 100644 index 00000000000..18f7b3457a4 --- /dev/null +++ b/pkg/logs/sender/grpc/go.sum @@ -0,0 +1,205 @@ +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= +github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs= +github.com/DataDog/viper v1.15.1/go.mod h1:rDLDREOPd+gpEbA8y4Y/5wTvyLqvUiCmDXX0jRZy8mw= +github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE= +github.com/DataDog/zstd v1.5.7/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= +github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/ebitengine/purego v0.10.0 h1:QIw4xfpWT6GWTzaW5XEKy3HXoqrJGx1ijYHzTF0/ISU= +github.com/ebitengine/purego v0.10.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= +github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro= +github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= +github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 h1:0G5JVG0aJDpWvH1r8idd+wbPcAH14UqIuUMepx3v9rE= +github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94/go.mod h1:MvF7bZQy5lD2WcLXjFytRVvnTrFvrjo/qGka1MIBOPE= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.18.4 h1:RPhnKRAQ4Fh8zU2FY/6ZFDwTVTxgJ/EMydqSTzE9a2c= +github.com/klauspost/compress v1.18.4/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 h1:PwQumkgq4/acIiZhtifTV5OUqqiP82UAl0h87xj/l9k= +github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3/go.mod h1:autxFIvghDt3jPTLoqZ9OZ7s9qTGNAWmYCjVFWPX/zg= +github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE= +github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos= +github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ= +github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ= +github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU= +github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= +github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= +github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= +github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/shirou/gopsutil/v4 v4.26.2 h1:X8i6sicvUFih4BmYIGT1m2wwgw2VG9YgrDTi7cIRGUI= +github.com/shirou/gopsutil/v4 v4.26.2/go.mod h1:LZ6ewCSkBqUpvSOf+LsTGnRinC6iaNUNMGBtDkJBaLQ= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY= +github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= +github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= +github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= +github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/tklauser/go-sysconf v0.3.16 h1:frioLaCQSsF5Cy1jgRBrzr6t502KIIwQ0MArYICU0nA= +github.com/tklauser/go-sysconf v0.3.16/go.mod h1:/qNL9xxDhc7tx3HSRsLWNnuzbVfh3e7gh/BmM179nYI= +github.com/tklauser/numcpus v0.11.0 h1:nSTwhKH5e1dMNsCdVBukSZrURJRoHbSEQjdEbY+9RXw= +github.com/tklauser/numcpus v0.11.0/go.mod h1:z+LwcLq54uWZTX0u/bGobaV34u6V7KNlTZejzM6/3MQ= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= +go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= +go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= +go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= +go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= +go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/dig v1.19.0 h1:BACLhebsYdpQ7IROQ1AGPjrXcP5dF80U3gKoFzbaq/4= +go.uber.org/dig v1.19.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= +go.uber.org/fx v1.24.0 h1:wE8mruvpg2kiiL1Vqd0CC+tr0/24XIB10Iwp2lLWzkg= +go.uber.org/fx v1.24.0/go.mod h1:AmDeGyS+ZARGKM4tlH4FY2Jr63VjbEDJHtqXTGP5hbo= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc= +go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0= +golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= +golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= +golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= +golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= +golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= +golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= +google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkg/logs/sender/grpc/inflight.go b/pkg/logs/sender/grpc/inflight.go new file mode 100644 index 00000000000..521d8d5d08e --- /dev/null +++ b/pkg/logs/sender/grpc/inflight.go @@ -0,0 +1,241 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package grpc + +import ( + "google.golang.org/protobuf/proto" + + "github.com/DataDog/agent-payload/v5/statefulpb" + "github.com/DataDog/datadog-agent/pkg/logs/message" +) + +// inflightTracker is a bounded FIFO queue that tracks payloads in two regions: +// 1. Sent but awaiting acknowledgment (head to sentTail) +// 2. Buffered but not yet sent to the network (sentTail to tail) +// +// Queue Layout: +// [--sent awaiting ack--][--buffered not sent--] +// ^ ^ ^ +// head sentTail tail +// +// BatchID tracking: +// - Sent payloads have sequential batchIDs: [headBatchID, headBatchID+1, ..., headBatchID+sentSize-1] +// - Only tracks headBatchID (oldest sent) and nextBatchID (next to be assigned) +// +// Snapshot State: +// - Maintains accumulated state changes for stream bootstrapping +// - Represents the state "before" the first payload in the queue +// - Updated when payloads are acknowledged (popped) +type inflightTracker struct { + workerID string + items []*message.Payload + head int // Index of the oldest sent item (awaiting ack) + sentTail int // Index of the first buffered item that's not yet sent + tail int // Index of the next available slot for new buffered items + cap int // Maximum total capacity of the tracker + headBatchID uint32 // BatchID of the oldest sent payload (at head) + batchIDCounter uint32 // Next batchID to be assigned when markSent is called + snapshot *snapshotState // Accumulated state for new streams +} + +// newInflightTracker creates a new bounded inflight tracker with the given capacity +// Allocates capacity+1 slots to implement the "waste one slot" ring buffer pattern +func newInflightTracker(workerID string, capacity int) *inflightTracker { + return &inflightTracker{ + workerID: workerID, + items: make([]*message.Payload, capacity+1), + cap: capacity, + snapshot: newSnapshotState(), + } +} + +// hasSpace returns true if there is at least one free slot +func (t *inflightTracker) hasSpace() bool { + return t.totalCount() < t.cap +} + +// append adds a new payload to the buffered region (not yet sent) +// Returns true if the payload was added, false if the tracker is full +func (t *inflightTracker) append(payload *message.Payload) bool { + if !t.hasSpace() { + return false + } + t.items[t.tail] = payload + tlmWorkerInflightSize.Add(float64(len(payload.Encoded)), t.workerID) + t.tail = (t.tail + 1) % len(t.items) + return true +} + +// pop removes and returns the oldest sent payload (at head) after receiving an ack +// Returns nil if there are no sent payloads +// Also applies any state changes from the payload to the snapshot state +func (t *inflightTracker) pop() *message.Payload { + if t.head == t.sentTail { + return nil + } + payload := t.items[t.head] + t.items[t.head] = nil // Allow GC + t.head = (t.head + 1) % len(t.items) + + tlmWorkerInflightSize.Sub(float64(len(payload.Encoded)), t.workerID) + + // Apply state changes from this payload to snapshot + if payload.StatefulExtra != nil { + if extra, ok := payload.StatefulExtra.(*StatefulExtra); ok { + t.snapshot.apply(extra) + } + } + + // Advance headBatchID for the next payload + if t.head != t.sentTail { + t.headBatchID++ + } + + return payload +} + +// hasUnacked returns true if there are sent payloads awaiting acknowledgment +func (t *inflightTracker) hasUnacked() bool { + return t.head != t.sentTail +} + +// hasUnSent returns true if there are buffered payloads not yet sent +func (t *inflightTracker) hasUnSent() bool { + return t.sentTail != t.tail +} + +// getHeadBatchID returns the expected batchID at the head (oldest sent payload) +// Caller must check hasUnacked() first to ensure there are sent payloads +func (t *inflightTracker) getHeadBatchID() uint32 { + return t.headBatchID +} + +// nextBatchID returns the batchID that will be assigned to the next sent item +// This is a peek operation (idempotent, no mutation) +func (t *inflightTracker) nextBatchID() uint32 { + return t.batchIDCounter +} + +// markSent moves a buffered payload to the sent region and assigns it a batchID +// Returns true if successful, false if there are no buffered payloads +func (t *inflightTracker) markSent() bool { + if t.sentTail == t.tail { + return false + } + + // If this is the first sent item, set headBatchID + if t.head == t.sentTail { + t.headBatchID = t.batchIDCounter + } + + t.sentTail = (t.sentTail + 1) % len(t.items) + t.batchIDCounter++ // Increment counter for next batch + return true +} + +// nextToSend returns the next buffered payload ready to be sent (without removing it) +// Returns nil if there are no buffered payloads +func (t *inflightTracker) nextToSend() *message.Payload { + if t.sentTail == t.tail { + return nil + } + return t.items[t.sentTail] +} + +// sentCount returns the number of sent payloads awaiting ack +func (t *inflightTracker) sentCount() int { + return (t.sentTail - t.head + len(t.items)) % len(t.items) +} + +// totalCount returns the total number of tracked payloads +func (t *inflightTracker) totalCount() int { + return (t.tail - t.head + len(t.items)) % len(t.items) +} + +// resetOnRotation set any un-acked payload as un-sent and reset the batchID. +func (t *inflightTracker) resetOnRotation() { + // Move all sent items back to buffered region by resetting sentTail to head + // This makes all items [head, tail) buffered again + t.sentTail = t.head + + // Reset batchID counter for the new stream + // Make the first batchID be 1, 0 is reserved for the snapshot state + t.headBatchID = 1 + t.batchIDCounter = 1 +} + +// getSnapshot returns the current snapshot state for stream bootstrapping +// Returns serialized bytes (marshaled DatumSequence) or nil if empty +func (t *inflightTracker) getSnapshot() []byte { + return t.snapshot.serialize() +} + +// snapshotState maintains the accumulated state changes for stream bootstrapping +// It represents the state "before" the first payload in the inflight queue +type snapshotState struct { + dictMap map[uint64]*statefulpb.DictEntryDefine + patternMap map[uint64]*statefulpb.PatternDefine +} + +// newSnapshotState creates a new empty snapshot state +func newSnapshotState() *snapshotState { + return &snapshotState{ + dictMap: make(map[uint64]*statefulpb.DictEntryDefine), + patternMap: make(map[uint64]*statefulpb.PatternDefine), + } +} + +// apply updates the snapshot state by processing state changes from a payload +func (s *snapshotState) apply(extra *StatefulExtra) { + if extra == nil { + return + } + + for _, datum := range extra.StateChanges { + switch d := datum.Data.(type) { + case *statefulpb.Datum_PatternDefine: + s.patternMap[d.PatternDefine.PatternId] = d.PatternDefine + case *statefulpb.Datum_PatternDelete: + delete(s.patternMap, d.PatternDelete.PatternId) + case *statefulpb.Datum_DictEntryDefine: + s.dictMap[d.DictEntryDefine.Id] = d.DictEntryDefine + case *statefulpb.Datum_DictEntryDelete: + delete(s.dictMap, d.DictEntryDelete.Id) + } + } +} + +// serialize returns the current snapshot state as serialized bytes +// Returns the marshaled DatumSequence containing all pattern and dictionary definitions +// Used to send snapshot on new stream creation +func (s *snapshotState) serialize() []byte { + // Calculate total datums needed + totalSize := len(s.patternMap) + len(s.dictMap) + + if totalSize == 0 { + return nil + } + + datums := make([]*statefulpb.Datum, 0, totalSize) + + for _, pattern := range s.patternMap { + datums = append(datums, &statefulpb.Datum{ + Data: &statefulpb.Datum_PatternDefine{PatternDefine: pattern}, + }) + } + for _, entry := range s.dictMap { + datums = append(datums, &statefulpb.Datum{ + Data: &statefulpb.Datum_DictEntryDefine{DictEntryDefine: entry}, + }) + } + + datumSeq := &statefulpb.DatumSequence{ + Data: datums, + } + + serialized, _ := proto.Marshal(datumSeq) + return serialized +} diff --git a/pkg/logs/sender/grpc/inflight_test.go b/pkg/logs/sender/grpc/inflight_test.go new file mode 100644 index 00000000000..b24cb1bdc6d --- /dev/null +++ b/pkg/logs/sender/grpc/inflight_test.go @@ -0,0 +1,482 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package grpc + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/DataDog/datadog-agent/pkg/logs/message" +) + +// Helper function to create test payloads +func createTestPayload(content string) *message.Payload { + return &message.Payload{ + Encoded: []byte(content), + } +} + +func TestNewInflightTracker(t *testing.T) { + tracker := newInflightTracker("test", 10) + + assert.NotNil(t, tracker) + assert.Equal(t, 10, tracker.cap) + assert.Equal(t, 0, tracker.head) + assert.Equal(t, 0, tracker.sentTail) + assert.Equal(t, 0, tracker.tail) + assert.Equal(t, uint32(0), tracker.headBatchID) + assert.Equal(t, uint32(0), tracker.batchIDCounter) + assert.True(t, tracker.hasSpace()) + assert.False(t, tracker.hasUnacked()) + assert.False(t, tracker.hasUnSent()) +} + +func TestInflightTrackerAppend(t *testing.T) { + tracker := newInflightTracker("test", 10) + + // Append first payload + payload1 := createTestPayload("test1") + assert.True(t, tracker.append(payload1)) + assert.Equal(t, 1, tracker.totalCount()) + assert.True(t, tracker.hasUnSent()) + assert.False(t, tracker.hasUnacked()) + + // Append second payload + payload2 := createTestPayload("test2") + assert.True(t, tracker.append(payload2)) + assert.Equal(t, 2, tracker.totalCount()) + assert.True(t, tracker.hasSpace()) + + // Append third payload + payload3 := createTestPayload("test3") + assert.True(t, tracker.append(payload3)) + assert.Equal(t, 3, tracker.totalCount()) +} + +func TestInflightTrackerAppendWhenFull(t *testing.T) { + // Test filling buffer to absolute capacity from empty state + tracker := newInflightTracker("test", 3) + + // Fill to capacity (3 items) + assert.True(t, tracker.append(createTestPayload("test1"))) + assert.Equal(t, 1, tracker.totalCount()) + assert.True(t, tracker.hasSpace()) + + assert.True(t, tracker.append(createTestPayload("test2"))) + assert.Equal(t, 2, tracker.totalCount()) + assert.True(t, tracker.hasSpace()) + + assert.True(t, tracker.append(createTestPayload("test3"))) + assert.Equal(t, 3, tracker.totalCount()) + assert.False(t, tracker.hasSpace()) + + // Append should fail when full + assert.False(t, tracker.append(createTestPayload("test4"))) + assert.Equal(t, 3, tracker.totalCount()) +} + +func TestInflightTrackerMarkSent(t *testing.T) { + tracker := newInflightTracker("test", 5) + + // Add buffered payloads + payload1 := createTestPayload("test1") + payload2 := createTestPayload("test2") + tracker.append(payload1) + tracker.append(payload2) + + assert.Equal(t, 0, tracker.sentCount()) + assert.True(t, tracker.hasUnSent()) + assert.False(t, tracker.hasUnacked()) + + // Mark first as sent + assert.True(t, tracker.markSent()) + assert.Equal(t, 1, tracker.sentCount()) + assert.Equal(t, uint32(0), tracker.getHeadBatchID()) + assert.Equal(t, uint32(1), tracker.nextBatchID()) + assert.True(t, tracker.hasUnacked()) + assert.True(t, tracker.hasUnSent()) + + // Mark second as sent + assert.True(t, tracker.markSent()) + assert.Equal(t, 2, tracker.sentCount()) + assert.Equal(t, uint32(0), tracker.getHeadBatchID()) + assert.Equal(t, uint32(2), tracker.nextBatchID()) + assert.True(t, tracker.hasUnacked()) + assert.False(t, tracker.hasUnSent()) + + // Try to mark sent when no buffered items + assert.False(t, tracker.markSent()) +} + +func TestInflightTrackerPop(t *testing.T) { + tracker := newInflightTracker("test", 5) + + // Add and mark payloads as sent + payload1 := createTestPayload("test1") + payload2 := createTestPayload("test2") + tracker.append(payload1) + tracker.append(payload2) + tracker.markSent() + tracker.markSent() + + assert.Equal(t, 2, tracker.sentCount()) + assert.Equal(t, uint32(0), tracker.getHeadBatchID()) + + // Pop first payload + popped1 := tracker.pop() + assert.Equal(t, payload1, popped1) + assert.Equal(t, 1, tracker.sentCount()) + assert.Equal(t, uint32(1), tracker.getHeadBatchID()) + assert.True(t, tracker.hasUnacked()) + + // Pop second payload + popped2 := tracker.pop() + assert.Equal(t, payload2, popped2) + assert.Equal(t, 0, tracker.sentCount()) + assert.False(t, tracker.hasUnacked()) + + // Pop when empty should return nil + poppedNil := tracker.pop() + assert.Nil(t, poppedNil) +} + +func TestInflightTrackerNextToSend(t *testing.T) { + tracker := newInflightTracker("test", 5) + + // NextToSend on empty tracker should return nil + assert.Nil(t, tracker.nextToSend()) + + // Add buffered payloads + payload1 := createTestPayload("test1") + payload2 := createTestPayload("test2") + tracker.append(payload1) + tracker.append(payload2) + + // NextToSend should return first buffered payload + next := tracker.nextToSend() + assert.Equal(t, payload1, next) + + // Mark first as sent + tracker.markSent() + + // NextToSend should return second buffered payload + next = tracker.nextToSend() + assert.Equal(t, payload2, next) + + // Mark second as sent + tracker.markSent() + + // NextToSend should return nil when no buffered payloads + next = tracker.nextToSend() + assert.Nil(t, next) +} + +func TestInflightTrackerBatchIDSequence(t *testing.T) { + tracker := newInflightTracker("test", 5) + + // Add and send payloads + for i := 0; i < 3; i++ { + payload := createTestPayload("test") + tracker.append(payload) + } + + // Initial batchIDCounter should be 0 + assert.Equal(t, uint32(0), tracker.nextBatchID()) + + // Mark first as sent + tracker.markSent() + assert.Equal(t, uint32(0), tracker.getHeadBatchID()) + assert.Equal(t, uint32(1), tracker.nextBatchID()) + + // Mark second as sent + tracker.markSent() + assert.Equal(t, uint32(0), tracker.getHeadBatchID()) + assert.Equal(t, uint32(2), tracker.nextBatchID()) + + // Mark third as sent + tracker.markSent() + assert.Equal(t, uint32(0), tracker.getHeadBatchID()) + assert.Equal(t, uint32(3), tracker.nextBatchID()) + + // Pop first - headBatchID should advance + tracker.pop() + assert.Equal(t, uint32(1), tracker.getHeadBatchID()) + + // Pop second - headBatchID should advance + tracker.pop() + assert.Equal(t, uint32(2), tracker.getHeadBatchID()) +} + +func TestInflightTrackerResetOnRotation(t *testing.T) { + tracker := newInflightTracker("test", 5) + + // Add payloads and mark some as sent + for i := 0; i < 3; i++ { + payload := createTestPayload("test") + tracker.append(payload) + tracker.markSent() + } + + // Pop one ack + tracker.pop() + + // State before reset: 2 sent (awaiting ack), 0 buffered + assert.Equal(t, 2, tracker.sentCount()) + assert.Equal(t, 0, tracker.totalCount()-tracker.sentCount()) + assert.Equal(t, uint32(1), tracker.getHeadBatchID()) + assert.Equal(t, uint32(3), tracker.nextBatchID()) + + // Reset on rotation + tracker.resetOnRotation() + + // After reset: 0 sent, 2 buffered (un-acked payloads become buffered) + assert.Equal(t, 0, tracker.sentCount()) + assert.Equal(t, 2, tracker.totalCount()) + assert.True(t, tracker.hasUnSent()) + assert.False(t, tracker.hasUnacked()) + + // Batch IDs should reset to 1 + assert.Equal(t, uint32(1), tracker.headBatchID) + assert.Equal(t, uint32(1), tracker.nextBatchID()) +} + +func TestInflightTrackerWrapAround(t *testing.T) { + // Test wrap-around behavior without filling to absolute capacity + tracker := newInflightTracker("test", 6) + + // Fill and empty to advance head pointer + payload1 := createTestPayload("test1") + payload2 := createTestPayload("test2") + + // Add, send, and ack first two to advance pointers + tracker.append(payload1) + tracker.markSent() + tracker.pop() + + tracker.append(payload2) + tracker.markSent() + tracker.pop() + + // Now add more items that will wrap around in the ring buffer + payload3 := createTestPayload("test3") + payload4 := createTestPayload("test4") + payload5 := createTestPayload("test5") + + assert.True(t, tracker.append(payload3)) + assert.True(t, tracker.append(payload4)) + assert.True(t, tracker.append(payload5)) + + assert.Equal(t, 3, tracker.totalCount()) + assert.True(t, tracker.hasSpace()) + + // Mark all as sent and pop them + tracker.markSent() + tracker.markSent() + tracker.markSent() + + popped3 := tracker.pop() + popped4 := tracker.pop() + popped5 := tracker.pop() + + assert.Equal(t, payload3, popped3) + assert.Equal(t, payload4, popped4) + assert.Equal(t, payload5, popped5) + assert.Equal(t, 0, tracker.totalCount()) +} + +func TestInflightTrackerSentCount(t *testing.T) { + tracker := newInflightTracker("test", 5) + + // Initially no sent items + assert.Equal(t, 0, tracker.sentCount()) + + // Add buffered payloads + tracker.append(createTestPayload("test1")) + tracker.append(createTestPayload("test2")) + tracker.append(createTestPayload("test3")) + + assert.Equal(t, 0, tracker.sentCount()) + + // Mark as sent + tracker.markSent() + assert.Equal(t, 1, tracker.sentCount()) + + tracker.markSent() + assert.Equal(t, 2, tracker.sentCount()) + + // Pop one + tracker.pop() + assert.Equal(t, 1, tracker.sentCount()) + + // Mark another as sent + tracker.markSent() + assert.Equal(t, 2, tracker.sentCount()) +} + +func TestInflightTrackerTotalCount(t *testing.T) { + tracker := newInflightTracker("test", 5) + + // Initially empty + assert.Equal(t, 0, tracker.totalCount()) + + // Add buffered payloads + tracker.append(createTestPayload("test1")) + assert.Equal(t, 1, tracker.totalCount()) + + tracker.append(createTestPayload("test2")) + assert.Equal(t, 2, tracker.totalCount()) + + // Mark both as sent (doesn't change total count) + tracker.markSent() + tracker.markSent() + assert.Equal(t, 2, tracker.totalCount()) + + // Pop reduces total count + tracker.pop() + assert.Equal(t, 1, tracker.totalCount()) + + tracker.pop() + assert.Equal(t, 0, tracker.totalCount()) +} + +func TestInflightTrackerHasSpace(t *testing.T) { + tracker := newInflightTracker("test", 10) + + // Initially has space + assert.True(t, tracker.hasSpace()) + + // Add several items + for i := 0; i < 5; i++ { + tracker.append(createTestPayload("test")) + } + assert.True(t, tracker.hasSpace()) + + // Pop one to verify space tracking + tracker.markSent() + tracker.pop() + assert.True(t, tracker.hasSpace()) +} + +func TestInflightTrackerMixedOperations(t *testing.T) { + // Test a realistic sequence of operations + tracker := newInflightTracker("test", 5) + + // Add 3 buffered payloads + p1 := createTestPayload("msg1") + p2 := createTestPayload("msg2") + p3 := createTestPayload("msg3") + + tracker.append(p1) + tracker.append(p2) + tracker.append(p3) + + assert.Equal(t, 3, tracker.totalCount()) + assert.Equal(t, 0, tracker.sentCount()) + + // Send first 2 + tracker.markSent() + tracker.markSent() + + assert.Equal(t, 3, tracker.totalCount()) + assert.Equal(t, 2, tracker.sentCount()) + assert.True(t, tracker.hasUnacked()) + assert.True(t, tracker.hasUnSent()) + + // Receive ack for first + popped := tracker.pop() + assert.Equal(t, p1, popped) + assert.Equal(t, 2, tracker.totalCount()) + assert.Equal(t, 1, tracker.sentCount()) + + // Add more payloads + p4 := createTestPayload("msg4") + p5 := createTestPayload("msg5") + tracker.append(p4) + tracker.append(p5) + + assert.Equal(t, 4, tracker.totalCount()) + assert.Equal(t, 1, tracker.sentCount()) + + // Send remaining buffered + tracker.markSent() // p3 + tracker.markSent() // p4 + tracker.markSent() // p5 + + assert.Equal(t, 4, tracker.totalCount()) + assert.Equal(t, 4, tracker.sentCount()) + assert.False(t, tracker.hasUnSent()) + + // Receive all remaining acks + assert.Equal(t, p2, tracker.pop()) + assert.Equal(t, p3, tracker.pop()) + assert.Equal(t, p4, tracker.pop()) + assert.Equal(t, p5, tracker.pop()) + + assert.Equal(t, 0, tracker.totalCount()) + assert.False(t, tracker.hasUnacked()) +} + +func TestInflightTrackerResetOnRotationWithBuffered(t *testing.T) { + tracker := newInflightTracker("test", 5) + + // Mix of sent and buffered payloads + tracker.append(createTestPayload("msg1")) + tracker.append(createTestPayload("msg2")) + tracker.append(createTestPayload("msg3")) + tracker.append(createTestPayload("msg4")) + + // Send first two + tracker.markSent() + tracker.markSent() + + // Ack first one + tracker.pop() + + // State: 1 sent, 2 buffered, total 3 + assert.Equal(t, 1, tracker.sentCount()) + assert.Equal(t, 3, tracker.totalCount()) + + // Reset on rotation + tracker.resetOnRotation() + + // All items should be buffered now + assert.Equal(t, 0, tracker.sentCount()) + assert.Equal(t, 3, tracker.totalCount()) + assert.True(t, tracker.hasUnSent()) + assert.False(t, tracker.hasUnacked()) + + // Batch IDs reset + assert.Equal(t, uint32(1), tracker.nextBatchID()) +} + +func TestInflightTrackerBatchIDAfterRotation(t *testing.T) { + tracker := newInflightTracker("test", 5) + + // Add and send some payloads + tracker.append(createTestPayload("msg1")) + tracker.append(createTestPayload("msg2")) + tracker.markSent() + tracker.markSent() + + assert.Equal(t, uint32(0), tracker.getHeadBatchID()) + assert.Equal(t, uint32(2), tracker.nextBatchID()) + + // Reset on rotation + tracker.resetOnRotation() + + // Batch IDs should reset to 1 (0 is reserved for snapshot) + assert.Equal(t, uint32(1), tracker.nextBatchID()) + + // Send items with new batch IDs + tracker.markSent() + assert.Equal(t, uint32(1), tracker.getHeadBatchID()) + assert.Equal(t, uint32(2), tracker.nextBatchID()) + + tracker.markSent() + assert.Equal(t, uint32(1), tracker.getHeadBatchID()) + assert.Equal(t, uint32(3), tracker.nextBatchID()) +} diff --git a/pkg/logs/sender/grpc/mock_encoder.go b/pkg/logs/sender/grpc/mock_encoder.go new file mode 100644 index 00000000000..00e97fa5849 --- /dev/null +++ b/pkg/logs/sender/grpc/mock_encoder.go @@ -0,0 +1,23 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package grpc + +import ( + "github.com/DataDog/datadog-agent/pkg/logs/message" + "github.com/DataDog/datadog-agent/pkg/logs/processor" +) + +// MockEncoder is a no-op encoder for gRPC stateful streaming. +// This is temporary scaffolding until the real State component is ready. +// Encoding happens in StartMessageTranslator instead of the processor. +var MockEncoder processor.Encoder = &mockEncoder{} + +type mockEncoder struct{} + +// Encode is a no-op implementation that satisfies the processor.Encoder interface +func (g *mockEncoder) Encode(_ *message.Message, _ string) error { + return nil +} diff --git a/pkg/logs/sender/grpc/mock_state.go b/pkg/logs/sender/grpc/mock_state.go new file mode 100644 index 00000000000..946919a9d86 --- /dev/null +++ b/pkg/logs/sender/grpc/mock_state.go @@ -0,0 +1,79 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package grpc + +import ( + "strings" + "time" + "unicode/utf8" + + "github.com/DataDog/agent-payload/v5/statefulpb" + "github.com/DataDog/datadog-agent/pkg/logs/message" +) + +// This is temporary translation layer between the main logs pipeline and the gRPC sender. In the future this is +// where state extraction and storage will happen. + +const nanoToMillis = 1000000 + +// StartMessageTranslator starts a goroutine that translates message.Message to message.StatefulMessage +// This is temporary scaffolding until the real State component is ready. +func StartMessageTranslator(inputChan chan *message.Message, outputChan chan *message.StatefulMessage) { + go func() { + defer close(outputChan) + + for msg := range inputChan { + // Get timestamp - prefer message timestamp if available + ts := time.Now().UTC() + if !msg.ServerlessExtra.Timestamp.IsZero() { + ts = msg.ServerlessExtra.Timestamp + } + + // Create the Log message using stateful_encoding.proto definitions + log := &statefulpb.Log{ + Timestamp: int64(ts.UnixNano() / nanoToMillis), + Content: &statefulpb.Log_Raw{ + Raw: toValidUtf8(msg.GetContent()), + }, + } + + // Wrap the Log in a Datum + datum := &statefulpb.Datum{ + Data: &statefulpb.Datum_Logs{ + Logs: log, + }, + } + + // Create StatefulMessage with the Datum and metadata + statefulMsg := &message.StatefulMessage{ + Datum: datum, + Metadata: &msg.MessageMetadata, + } + + outputChan <- statefulMsg + } + }() +} + +// toValidUtf8 ensures all characters are UTF-8 +func toValidUtf8(data []byte) string { + if utf8.Valid(data) { + return string(data) + } + + var str strings.Builder + str.Grow(len(data)) + + for len(data) > 0 { + r, size := utf8.DecodeRune(data) + // in case of invalid utf-8, DecodeRune returns (utf8.RuneError, 1) + // and since RuneError is the same as unicode.ReplacementChar + // no need to handle the error explicitly + str.WriteRune(r) + data = data[size:] + } + return str.String() +} diff --git a/pkg/logs/sender/grpc/sender.go b/pkg/logs/sender/grpc/sender.go new file mode 100644 index 00000000000..0c645c7c53b --- /dev/null +++ b/pkg/logs/sender/grpc/sender.go @@ -0,0 +1,283 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Package grpc implements gRPC-based log sender +package grpc + +import ( + "context" + "crypto/tls" + "fmt" + "time" + + "google.golang.org/grpc" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/credentials/insecure" + "google.golang.org/grpc/keepalive" + + "github.com/DataDog/agent-payload/v5/statefulpb" + "github.com/DataDog/datadog-agent/comp/logs/agent/config" + pkgconfigmodel "github.com/DataDog/datadog-agent/pkg/config/model" + "github.com/DataDog/datadog-agent/pkg/logs/client" + "github.com/DataDog/datadog-agent/pkg/logs/message" + "github.com/DataDog/datadog-agent/pkg/logs/metrics" + "github.com/DataDog/datadog-agent/pkg/logs/sender" + "github.com/DataDog/datadog-agent/pkg/util/compression" + "github.com/DataDog/datadog-agent/pkg/util/log" + "github.com/DataDog/datadog-agent/pkg/version" + + logscompression "github.com/DataDog/datadog-agent/comp/serializer/logscompression/def" + + "go.uber.org/atomic" +) + +const ( + // inputChanBufferSize is the buffer size for worker input channels - may become configurable + inputChanBufferSize = 100 +) + +// headerCredentials implements credentials.PerRPCCredentials to add headers to RPC calls +type headerCredentials struct { + endpoint config.Endpoint +} + +// GetRequestMetadata adds required headers to each RPC call +func (h *headerCredentials) GetRequestMetadata(_ context.Context, _ ...string) (map[string]string, error) { + headers := map[string]string{ + "dd-api-key": h.endpoint.GetAPIKey(), + } + + // Add protocol header if specified + if h.endpoint.Protocol != "" { + headers["dd-protocol"] = string(h.endpoint.Protocol) + } + + // Add origin headers if specified + if h.endpoint.Origin != "" { + headers["dd-evp-origin"] = string(h.endpoint.Origin) + headers["dd-evp-origin-version"] = version.AgentVersion + } + + if h.endpoint.UseCompression { + headers["dd-content-encoding"] = h.endpoint.CompressionKind + } else { + headers["dd-content-encoding"] = "identity" + } + + return headers, nil +} + +// RequireTransportSecurity indicates whether the credentials require transport security +func (h *headerCredentials) RequireTransportSecurity() bool { + return false // We handle TLS separately via WithTransportCredentials +} + +// Sender implements PipelineComponent interface for gRPC log transmission. +// It manages multiple streamWorker instances (one per pipeline) using round-robin distribution. +// It is similar to Sender/Worker architecture +type Sender struct { + // Configuration + endpoint config.Endpoint + destinationsContext *client.DestinationsContext + cfg pkgconfigmodel.Reader + numberOfWorkers int + + // Pipeline integration + pipelineMonitor metrics.PipelineMonitor + + // Stream management (similar to Sender's workers and queues) + workers []*streamWorker + queues []chan *message.Payload + idx *atomic.Uint32 + + // Auditor integration + sink sender.Sink + + // gRPC connection management (shared across all streams) + conn *grpc.ClientConn + client statefulpb.StatefulLogsServiceClient +} + +// NewSender creates a new gRPC sender that implements PipelineComponent +// numberOfPipelines determines how many streamWorker to create (same as number of pipelines) +func NewSender( + numberOfPipelines int, + cfg pkgconfigmodel.Reader, + sink sender.Sink, + endpoints *config.Endpoints, + destinationsCtx *client.DestinationsContext, + compressor logscompression.Component, +) *Sender { + + // For now, use the first reliable endpoint + // TODO: Support multiple endpoints with failover + var endpoint config.Endpoint + if len(endpoints.GetReliableEndpoints()) > 0 { + endpoint = endpoints.GetReliableEndpoints()[0] + } else { + log.Error("No reliable gRPC endpoints configured") + return nil + } + + // For the moment, we use the number of pipelines as the number of workers + numberOfWorkers := numberOfPipelines + + // Get stream lifetime from config + streamLifetime := config.StreamLifetime(cfg) + + // Create compressor for snapshot compression based on endpoint config + var comp compression.Compressor + comp = compressor.NewCompressor(compression.NoneKind, 0) + if endpoint.UseCompression { + comp = compressor.NewCompressor(endpoint.CompressionKind, endpoint.CompressionLevel) + } + + sender := &Sender{ + endpoint: endpoint, + destinationsContext: destinationsCtx, + cfg: cfg, + numberOfWorkers: numberOfWorkers, + pipelineMonitor: metrics.NewTelemetryPipelineMonitor(), + workers: make([]*streamWorker, 0, numberOfWorkers), + queues: make([]chan *message.Payload, numberOfWorkers), + idx: &atomic.Uint32{}, + sink: sink, + } + + // Note: outputChan will be set in each streamWorker's start() method when sink.Channel() is available + + // Create gRPC connection (shared by all streams inside streamWorkers) + if err := sender.createConnection(); err != nil { + log.Errorf("Failed to create gRPC connection: %v", err) + return nil + } + + // Create multiple streamWorker instances (like Sender creates Workers) + for i := 0; i < numberOfWorkers; i++ { + workerID := fmt.Sprintf("worker-%d", i) + + // Create input queue for this worker (like Sender creates queues) + sender.queues[i] = make(chan *message.Payload, inputChanBufferSize) + + // Create streamWorker instance + worker := newStreamWorker( + workerID, + sender.queues[i], + destinationsCtx, + sender.conn, + sender.client, + sender.sink, + endpoint, + streamLifetime, + comp, + ) + + sender.workers = append(sender.workers, worker) + } + + log.Infof("Created gRPC sender with %d streams for endpoint %s:%d", + numberOfWorkers, endpoint.Host, endpoint.Port) + return sender +} + +// createConnection establishes the shared gRPC connection +func (s *Sender) createConnection() error { + log.Infof("Creating gRPC connection to %s:%d", s.endpoint.Host, s.endpoint.Port) + + // Build connection options + var opts []grpc.DialOption + + // Configure TLS + if s.endpoint.UseSSL() { + tlsConfig := &tls.Config{ + ServerName: s.endpoint.Host, + } + opts = append(opts, grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig))) + } else { + opts = append(opts, grpc.WithTransportCredentials(insecure.NewCredentials())) + } + + // Configure keepalive + keepaliveParams := keepalive.ClientParameters{ + Time: 30 * time.Second, + Timeout: 5 * time.Second, + PermitWithoutStream: true, + } + opts = append(opts, grpc.WithKeepaliveParams(keepaliveParams)) + + // Add user agent + userAgent := "datadog-agent" + version.AgentVersion + opts = append(opts, grpc.WithUserAgent(userAgent)) + + // Add headers via per-RPC credentials + headerCreds := &headerCredentials{endpoint: s.endpoint} + opts = append(opts, grpc.WithPerRPCCredentials(headerCreds)) + + // Add load balancing configuration, to utilize all available LB IPs + opts = append(opts, grpc.WithDefaultServiceConfig( + `{"loadBalancingPolicy":"round_robin"}`, + )) + + // Create connection, lazy connection establishment, does not block + address := fmt.Sprintf("%s:%d", s.endpoint.Host, s.endpoint.Port) + conn, err := grpc.NewClient(address, opts...) + if err != nil { + return fmt.Errorf("failed to create gRPC connection: %w", err) + } + + s.conn = conn + s.client = statefulpb.NewStatefulLogsServiceClient(conn) + + log.Infof("Successfully created gRPC connection to %s", address) + return nil +} + +// PipelineComponent interface implementation + +// In returns the input channel using round-robin distribution (same as Sender.In()) +func (s *Sender) In() chan *message.Payload { + idx := s.idx.Inc() % uint32(len(s.queues)) + return s.queues[idx] +} + +// PipelineMonitor returns the pipeline monitor +func (s *Sender) PipelineMonitor() metrics.PipelineMonitor { + return s.pipelineMonitor +} + +// Start starts all streamWorker instances (same pattern as Sender.Start()) +func (s *Sender) Start() { + log.Infof("Starting gRPC sender with %d workers", len(s.workers)) + + for _, worker := range s.workers { + worker.start() + } + + log.Info("All streamWorkers started") +} + +// Stop stops all streamWorker instances and closes the connection +func (s *Sender) Stop() { + log.Info("Stopping gRPC sender") + + // Stop all workers (same pattern as Sender.Stop()) + for _, worker := range s.workers { + worker.stop() + } + + // Close all queues + for _, queue := range s.queues { + close(queue) + } + + // Close the shared connection + if s.conn != nil { + if err := s.conn.Close(); err != nil { + log.Warnf("Error closing gRPC connection: %v", err) + } + } + + log.Info("gRPC sender stopped") +} diff --git a/pkg/logs/sender/grpc/state_telemetry.go b/pkg/logs/sender/grpc/state_telemetry.go new file mode 100644 index 00000000000..f61a609c8c2 --- /dev/null +++ b/pkg/logs/sender/grpc/state_telemetry.go @@ -0,0 +1,21 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package grpc + +import "github.com/DataDog/datadog-agent/pkg/telemetry" + +// Per-worker metrics +// TODO: right now pipeline name isn't associated with workers, but pipelines are always sent via a single worker. We can address this when +// we add per-pipeline metrics. +var ( + tlmWorkerStreamsOpened = telemetry.NewCounter("logs_sender_grpc_worker", "streams_opened", []string{"worker"}, "# Streams opened") + tlmWorkerStreamErrors = telemetry.NewCounter("logs_sender_grpc_worker", "stream_errors", []string{"worker", "reason"}, "Stream errors by reason") + + tlmWorkerBytesSent = telemetry.NewCounter("logs_sender_grpc_worker", "bytes_sent", []string{"worker"}, "Bytes sent (compressed)") + tlmWorkerBytesDropped = telemetry.NewCounter("logs_sender_grpc_worker", "bytes_dropped", []string{"worker"}, "Bytes dropped (compressed)") + + tlmWorkerInflightSize = telemetry.NewGauge("logs_sender_grpc_worker", "inflight_bytes", []string{"worker"}, "Gauge of current serialized inflight bytes for the pipeline") +) diff --git a/pkg/logs/sender/grpc/stream_worker.go b/pkg/logs/sender/grpc/stream_worker.go new file mode 100644 index 00000000000..87bc5faba5a --- /dev/null +++ b/pkg/logs/sender/grpc/stream_worker.go @@ -0,0 +1,738 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +package grpc + +import ( + "context" + "errors" + "io" + "sync/atomic" + "time" + + "github.com/benbjohnson/clock" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" + + "github.com/DataDog/agent-payload/v5/statefulpb" + "github.com/DataDog/datadog-agent/comp/logs/agent/config" + "github.com/DataDog/datadog-agent/pkg/logs/client" + "github.com/DataDog/datadog-agent/pkg/logs/message" + "github.com/DataDog/datadog-agent/pkg/logs/sender" + "github.com/DataDog/datadog-agent/pkg/util/backoff" + "github.com/DataDog/datadog-agent/pkg/util/compression" + "github.com/DataDog/datadog-agent/pkg/util/log" +) + +const ( + // Various constants - may become configurable + ioChanBufferSize = 10 + maxInflight = 10000 + connectionTimeout = 10 * time.Second + drainTimeout = 5 * time.Second +) + +// streamState represents the current state of the stream worker +// +//go:generate stringer -type=streamState +type streamState int + +const ( + // disconnected is the initial state or stream creation failure backoff state + disconnected streamState = iota + // connecting is the state while waiting for asyncCreateNewStream to complete or fail + connecting + // active is the normal operating state with a valid stream + active + // draining waits for all acks to arrive before rotating to a new stream + draining +) + +// streamInfo holds all stream-related information +type streamInfo struct { + stream statefulpb.StatefulLogsService_LogsStreamClient + ctx context.Context + cancel context.CancelFunc +} + +// streamCreationResult represents the result of async stream creation +type streamCreationResult struct { + info *streamInfo + err error +} + +// batchAck wraps a batch acknowledgment with stream identity to prevent stale signals +type batchAck struct { + stream *streamInfo + status *statefulpb.BatchStatus +} + +// streamWorker manages a single gRPC bidirectional stream with Master - 2 Slave threading model +// Architecture: One supervisor goroutine + one sender goroutine + one receiver goroutine per stream +// See DESIGN.md for more details. +type streamWorker struct { + // Configuration + workerID string + destinationsContext *client.DestinationsContext + + // Pipeline integration + inputChan chan *message.Payload + outputChan chan *message.Payload // For auditor acknowledgments + sink sender.Sink // For getting auditor channel + + // gRPC connection management (shared with other streams) + conn *grpc.ClientConn + client statefulpb.StatefulLogsServiceClient + + // Stream management + currentStream *streamInfo + streamState atomic.Int32 // Since stream_worker_test reads this value from a separate goroutine, we need to use an atomic.Int32 to ensure proper synchronization. + streamFailureCh chan *streamInfo // Signal sender/receiver failure with stream identity + streamReadyCh chan streamCreationResult // Signal when async stream creation completes + streamLifetime time.Duration + streamTimer *clock.Timer // Timer for stream lifetime, trigger soft rotation + drainTimer *clock.Timer // In case of unacked payloads, drain/wait before soft rotation + backoffTimer *clock.Timer // In case of stream creation failure, backoff before retrying + + // Channels for communication between supervisor and sender/receiver goroutines + batchToSendCh chan *statefulpb.StatefulBatch // Signal batch to send to sender goroutine + batchAckCh chan *batchAck // Signal batch acknowledgments with stream identity + + // Inflight tracking - tracks sent (awaiting ack) and buffered (not sent) payloads + inflight *inflightTracker + + // Retry backoff + backoffPolicy backoff.Policy + nbErrors int + + // Compression for snapshot state + compression compression.Compressor + + // Control + stopChan chan struct{} + done chan struct{} + clock clock.Clock +} + +func (s *streamWorker) getStreamState() streamState { + return streamState(s.streamState.Load()) +} + +func (s *streamWorker) setStreamState(state streamState) { + s.streamState.Store(int32(state)) +} + +// newStreamWorker creates a new gRPC stream worker +func newStreamWorker( + workerID string, + inputChan chan *message.Payload, + destinationsCtx *client.DestinationsContext, + conn *grpc.ClientConn, + client statefulpb.StatefulLogsServiceClient, + sink sender.Sink, + endpoint config.Endpoint, + streamLifetime time.Duration, + compressor compression.Compressor, +) *streamWorker { + return newStreamWorkerWithClock(workerID, inputChan, destinationsCtx, conn, client, sink, + endpoint, streamLifetime, compressor, clock.New(), nil) +} + +// newStreamWorkerWithClock creates a new gRPC stream worker with injectable clock for testing +func newStreamWorkerWithClock( + workerID string, + inputChan chan *message.Payload, + destinationsCtx *client.DestinationsContext, + conn *grpc.ClientConn, + client statefulpb.StatefulLogsServiceClient, + sink sender.Sink, + endpoint config.Endpoint, + streamLifetime time.Duration, + compressor compression.Compressor, + clock clock.Clock, + inflightTracker *inflightTracker, +) *streamWorker { + backoffPolicy := backoff.NewExpBackoffPolicy( + endpoint.BackoffFactor, + endpoint.BackoffBase, + endpoint.BackoffMax, + endpoint.RecoveryInterval, + true, // RecoveryReset = true (see stream failure comment above) + ) + + // Use provided inflightTracker (testing) or create default one + if inflightTracker == nil { + inflightTracker = newInflightTracker(workerID, maxInflight) + } + + worker := &streamWorker{ + workerID: workerID, + destinationsContext: destinationsCtx, + inputChan: inputChan, + outputChan: nil, + sink: sink, + conn: conn, + client: client, + streamFailureCh: make(chan *streamInfo), + batchAckCh: make(chan *batchAck, ioChanBufferSize), + streamReadyCh: make(chan streamCreationResult), + streamLifetime: streamLifetime, + inflight: inflightTracker, + backoffPolicy: backoffPolicy, + nbErrors: 0, + compression: compressor, + stopChan: make(chan struct{}), + done: make(chan struct{}), + clock: clock, + streamTimer: createStoppedTimer(clock, 0), + backoffTimer: createStoppedTimer(clock, 0), + drainTimer: createStoppedTimer(clock, 0), + } + worker.setStreamState(disconnected) + + return worker +} + +// start begins the supervisor goroutine & creates a new stream asynchronously +func (s *streamWorker) start() { + log.Infof("Starting gRPC stream worker %s", s.workerID) + s.outputChan = s.sink.Channel() + + // Start supervisor goroutine + go s.supervisorLoop() + + s.asyncCreateNewStream() + + log.Infof("Worker %s: Started", s.workerID) +} + +// stop shuts down the stream worker +func (s *streamWorker) stop() { + log.Infof("Stopping gRPC stream worker %s", s.workerID) + close(s.stopChan) + <-s.done + log.Infof("Worker %s: Stopped", s.workerID) +} + +// supervisorLoop is the main goroutine: +// - it receives input from upstream and manages the inflight tracking +// - it manages send/recv batches over the stream via sender/receiver goroutines +// - it handles stream lifecycle, rotation and backoff +func (s *streamWorker) supervisorLoop() { + defer close(s.done) + + // supervisor loop starts without a stream, but asyncCreateNewStream is called + // right after in streamWorker's start(), so we are in connecting state right away + s.setStreamState(connecting) + + for { + // Conditional inputChan - only enabled when inflight tracker has space + // This backpressures to upstream when at capacity + var inputChan <-chan *message.Payload + if s.inflight.hasSpace() { + inputChan = s.inputChan // Enable reading + } else { + inputChan = nil // Disable reading + } + + // Conditional send - only enabled when in active state with unsent payloads + // This allows supervisor to progress on sending or block, but be woken by other events + // Important: getNextBatch call is idempotent, it doesn't change inflight tracker state, + // so if write to sendChan is blocked, next iteration will try again with the same batch. + var nextBatch *statefulpb.StatefulBatch + var sendChan chan<- *statefulpb.StatefulBatch + if s.getStreamState() == active && s.inflight.hasUnSent() { + sendChan = s.batchToSendCh // Enable sending + nextBatch = s.getNextBatch() + } else { + sendChan = nil // Disable sending + } + + select { + case payload := <-inputChan: + // Fires in any state (gated only by inflight capacity), payload is always + // added to the inflight tracker + s.inflight.append(payload) + + case sendChan <- nextBatch: + // Only happens if inflight hasUnSent() and streamState is active + // Successfully queued batch to sender goroutine + s.inflight.markSent() + + case ack := <-s.batchAckCh: + // Fires in any state + s.handleBatchAck(ack) + + case failedStream := <-s.streamFailureCh: + // Fires in active/draining/connecting states + s.handleStreamFailure(failedStream) + + case result := <-s.streamReadyCh: + // Fires only in connecting state + s.handleStreamReady(result) + + case <-s.streamTimer.C: + // Fires only in active state (except rare timing race, it's in connecting) + s.handleStreamTimeout() + + case <-s.drainTimer.C: + // Fires in draining state or (rarely) in connecting/active state + // If in non-draining state, it means acks arrival at the same time + // as the drain timer expiration, so we will skip the signal + s.handleDrainTimeout() + + case <-s.backoffTimer.C: + // Fires only in disconnected state + s.handleBackoffTimeout() + + case <-s.stopChan: + // Fires in any state + s.handleShutdown() + return + } + } +} + +// handleBatchAck processes a BatchStatus acknowledgment from the server +func (s *streamWorker) handleBatchAck(ack *batchAck) { + // Ignore stale acks from old streams + if ack.stream != s.currentStream { + return + } + + receivedBatchID := uint32(ack.status.BatchId) + + // Handle snapshot/state ack (batch 0) - no payload to pop + if receivedBatchID == 0 { + return + } + + // The two errors below should never happen if Intake is implemented + // correctly, but we are being defensive. + + // Verify we have "sent payloads" awaiting ack + if !s.inflight.hasUnacked() { + log.Errorf("Worker %s: Received ack for batch %d but no sent payloads "+ + "in inflight tracker, terminating stream", s.workerID, receivedBatchID) + tlmWorkerStreamErrors.Inc(s.workerID, "received_ack_but_no_sent_payloads") + s.tryBeginStreamRotation(true) + return + } + + // Verify batchID matches expected sequence + expectedBatchID := s.inflight.getHeadBatchID() + if receivedBatchID != expectedBatchID { + log.Errorf("Worker %s: BatchID mismatch! Expected %d, received %d. "+ + "out-of-order or duplicate ack, terminating stream", + s.workerID, expectedBatchID, receivedBatchID) + tlmWorkerStreamErrors.Inc(s.workerID, "batch_id_mismatch") + s.tryBeginStreamRotation(true) + return + } + + if receivedBatchID == 1 { + // Here we receive the ack of "first" real (non-snapshot) batch, so we can + // assume that the stream is really operational. decrement the nb error count. + s.nbErrors = s.backoffPolicy.DecError(s.nbErrors) + } + + // Pop the acknowledged payload and send to auditor + payload := s.inflight.pop() + if s.outputChan != nil { + select { + case s.outputChan <- payload: + // Successfully sent to auditor + default: + log.Warnf("Worker %s: Auditor channel full, dropping ack for batch %d", + s.workerID, receivedBatchID) + + // TODO: is this the only possible drop? + tlmWorkerBytesDropped.Add(float64(len(payload.Encoded)), s.workerID) + // TODO: update this metric with # logs (requires parsing payload) + // metrics.DestinationLogsDropped.Set(s.endpoint.Host, &expvar.Int{}) + // metrics.LogsDropped.Inc(s.workerID, 1) + // TODO: other general metrics to update? + } + } + + // If in Draining state and all acks received, transition to Connecting + if s.getStreamState() == draining && !s.inflight.hasUnacked() { + log.Infof("Worker %s: All acks received in draining state, proceeding with rotation", s.workerID) + s.drainTimer.Stop() + s.tryBeginStreamRotation(false) + } +} + +// handleStreamFailure processes sender/receiver failure signals +func (s *streamWorker) handleStreamFailure(failedStream *streamInfo) { + // Ignore if: stale signal OR not in active/draining state + if failedStream != s.currentStream || (s.getStreamState() != active && s.getStreamState() != draining) { + return + } + + log.Infof("Worker %s: Sender or Receiver reported failure (state: %v), terminating stream", + s.workerID, s.getStreamState()) + s.tryBeginStreamRotation(true) +} + +// handleStreamReady processes async stream creation results +func (s *streamWorker) handleStreamReady(result streamCreationResult) { + if s.getStreamState() != connecting { + return + } + + if result.err != nil { + log.Warnf("Worker %s: Stream creation failed: %v", s.workerID, result.err) + tlmWorkerStreamErrors.Inc(s.workerID, "stream_creation_failed") + + s.tryBeginStreamRotation(true) + } else { + s.finishStreamRotation(result.info) + } +} + +// handleStreamTimeout processes stream lifetime expiration +func (s *streamWorker) handleStreamTimeout() { + if s.getStreamState() != active { + return + } + + if s.inflight.hasUnacked() { + log.Infof("Worker %s: Stream lifetime expired with %d unacked payloads, entering Draining state", + s.workerID, s.inflight.sentCount()) + s.setStreamState(draining) + s.drainTimer.Reset(drainTimeout) + } else { + log.Infof("Worker %s: Stream lifetime expired with no unacked payloads, rotating immediately", + s.workerID) + s.tryBeginStreamRotation(false) + } +} + +// handleDrainTimeout handles drain timer expiration +func (s *streamWorker) handleDrainTimeout() { + if s.getStreamState() != draining { + return + } + + log.Warnf("Worker %s: Drain timer expired in draining state, proceeding with rotation "+ + "(may lose some acks)", s.workerID) + s.tryBeginStreamRotation(false) +} + +// handleBackoffTimeout processes backoff timer expiration and retries stream creation +func (s *streamWorker) handleBackoffTimeout() { + if s.getStreamState() != disconnected { + return + } + + log.Infof("Worker %s: Backoff timer expired, retrying stream creation (error count: %d)", s.workerID, s.nbErrors) + s.setStreamState(connecting) + s.asyncCreateNewStream() +} + +// handleShutdown performs graceful shutdown cleanup +func (s *streamWorker) handleShutdown() { + log.Infof("Worker %s: Shutting down", s.workerID) + s.streamTimer.Stop() + s.backoffTimer.Stop() + s.drainTimer.Stop() + if s.batchToSendCh != nil { + close(s.batchToSendCh) + } + s.closeStream(s.currentStream) +} + +// tryBeginStreamRotation try to initiates stream rotation +// If dueToFailure is false (from soft rotation due stream lifetime expiration, or drain timeout), +// the stream rotation is initiated immediately, otherwise (due to failure scenario), it transitions +// to disconnected state and wait for the backoff duration. +func (s *streamWorker) tryBeginStreamRotation(dueToFailure bool) { + + // Close current stream if it exists + if s.currentStream != nil { + close(s.batchToSendCh) + s.closeStream(s.currentStream) + s.currentStream = nil + s.streamTimer.Stop() + s.drainTimer.Stop() + s.backoffTimer.Stop() + } + + var backoffDuration time.Duration + if dueToFailure { + s.nbErrors = s.backoffPolicy.IncError(s.nbErrors) + backoffDuration = s.backoffPolicy.GetBackoffDuration(s.nbErrors) + } + + if !dueToFailure || backoffDuration == 0 { + log.Infof("Worker %s: Beginning stream creation (state: %v → connecting)", s.workerID, s.getStreamState()) + s.setStreamState(connecting) + s.asyncCreateNewStream() + } else { + log.Infof("Worker %s: Backing off stream creation for %v (error count: %d)", s.workerID, backoffDuration, s.nbErrors) + s.setStreamState(disconnected) + s.backoffTimer.Reset(backoffDuration) + } +} + +// finishStreamRotation completes stream rotation (Connecting → Active transition) +// Activates the newly created stream and starts the receiver +// Transmits the snapshot state first, then (if any) the buffered payloads +func (s *streamWorker) finishStreamRotation(streamInfo *streamInfo) { + log.Infof("Worker %s: Finishing stream rotation (state: connecting → active)", s.workerID) + + batchToSendCh := make(chan *statefulpb.StatefulBatch, ioChanBufferSize) + s.currentStream = streamInfo + s.setStreamState(active) + s.batchToSendCh = batchToSendCh + + // Start sender and receiver goroutines for this stream + go s.senderLoop(streamInfo, batchToSendCh) + go s.receiverLoop(streamInfo) + + s.streamTimer.Reset(s.streamLifetime) + + // Convert all the unacked items to buffered/unsent items by resetting inflight + // tracker. Supervisor loop will pick them up automatically and send them. + s.inflight.resetOnRotation() + + log.Infof("Worker %s: Stream rotation complete, now active", s.workerID) + + // Send snapshot state first (batch 0) + serialized := s.inflight.getSnapshot() + if serialized != nil { + // Compress snapshot like regular batches + compressed, err := s.compression.Compress(serialized) + if err != nil { + log.Errorf("Worker %s: Failed to compress snapshot: %v", s.workerID, err) + } else { + // Send compressed snapshot to sender goroutine via channel + // This call won't block because it's buffered channel's first write + s.batchToSendCh <- createBatch(compressed, 0) + } + } +} + +// asyncCreateNewStream creates a new gRPC stream asynchronously +// Signals completion (success or failure) via streamReadyCh +func (s *streamWorker) asyncCreateNewStream() { + go func() { + log.Infof("Worker %s: Starting async stream creation", s.workerID) + tlmWorkerStreamsOpened.Inc(s.workerID) + + var result streamCreationResult + + // Ensure the connection is ready, can block up to connectionTimeout + err := s.ensureConnectionReady() + if err != nil { + log.Errorf("Worker %s: Async stream creation failed (connection failure) %v", s.workerID, err) + result = streamCreationResult{info: nil, err: err} + } else { + // Create per-stream context derived from destinations context + streamCtx, streamCancel := context.WithCancel(s.destinationsContext.Context()) + + // Create the stream, shouldn't block at this point. + stream, err := s.client.LogsStream(streamCtx) + + if err != nil { + streamCancel() + log.Errorf("Worker %s: Async stream creation failed (post-connection): %v", s.workerID, err) + result = streamCreationResult{info: nil, err: err} + } else { + log.Infof("Worker %s: Async stream creation succeeded", s.workerID) + result = streamCreationResult{ + info: &streamInfo{ + stream: stream, + ctx: streamCtx, + cancel: streamCancel, + }, + err: nil, + } + } + } + + // Signal result to supervisor (blocks until received or stopped) + select { + case s.streamReadyCh <- result: + case <-s.stopChan: + // Worker stopped before supervisor could receive result + // We own cleanup since supervisor never got the stream + if result.info != nil { + s.closeStream(result.info) + } + } + }() +} + +// ensureConnectionReady ensures the gRPC connection is ready +// It triggers the connection establishment to the remove server (if not already done). +// It blocks until either the connection is ready or connectionTimeout is reached. +// This function can block, since should be called in asyncCreateNewStream context. +func (s *streamWorker) ensureConnectionReady() error { + // Skip connection check if conn is nil (for testing with mock clients) + if s.conn == nil { + return nil + } + + connCtx, cancel := context.WithTimeout(s.destinationsContext.Context(), connectionTimeout) + defer cancel() + + // Nudge dialing if idle; doesn't block + s.conn.Connect() + + for { + state := s.conn.GetState() + switch state { + case connectivity.Ready: + return nil + case connectivity.Shutdown: + return errors.New("gRPC conn is shutdown") + } + // Wait for state change or timeout/cancel. + if !s.conn.WaitForStateChange(connCtx, state) { + // context done (timeout or cancellation) + return connCtx.Err() + } + } +} + +// closeStream safely closes a stream by cancelling its context +func (s *streamWorker) closeStream(streamInfo *streamInfo) { + if streamInfo != nil { + streamInfo.cancel() + } +} + +// senderLoop runs in the sender goroutine to send batches to the server +// The sender is stateless - it only sends batches to the server and signals stream failure +// This goroutine exits when the stream fails/terminates +func (s *streamWorker) senderLoop(streamInfo *streamInfo, batchToSendCh chan *statefulpb.StatefulBatch) { + for batch := range batchToSendCh { + if err := streamInfo.stream.Send(batch); err != nil { + // Check if it's due to context cancellation (clean shutdown/rotation) + ctxErr := streamInfo.ctx.Err() + if errors.Is(ctxErr, context.Canceled) || errors.Is(ctxErr, context.DeadlineExceeded) { + log.Infof("Worker %s: Stream context cancelled, sender exiting", s.workerID) + return + } + + // Real send failure, signal to supervisor + log.Warnf("Worker %s: Send failed: %v, terminating stream", s.workerID, err) + s.signalStreamFailure(streamInfo, "send_err_"+status.Code(err).String()) + return + } + tlmWorkerBytesSent.Add(float64(proto.Size(batch)), s.workerID) + } + log.Infof("Worker %s: Sender channel closed, sender exiting", s.workerID) +} + +// receiverLoop runs in the receiver goroutine to process server responses for a specific stream +// The receiver is stateless - it only forwards acks/errors to the supervisor +// This goroutine exits when the stream fails/terminates +func (s *streamWorker) receiverLoop(streamInfo *streamInfo) { + for { + msg, err := streamInfo.stream.Recv() + if err == nil { + // Normal message (batch acknowledgment) - forward to supervisor + s.signalBatchAck(streamInfo, msg) + continue + } + + // Clean inbound close (server OK in trailers): signal stream failure + if errors.Is(err, io.EOF) { + log.Warnf("Worker %s: Stream closed by server", s.workerID) + s.signalStreamFailure(streamInfo, "server_eof") + return + } + + // Local cancel/deadline (supervisor rotated, worker shutdown): just exit + ctxErr := streamInfo.ctx.Err() + if errors.Is(ctxErr, context.Canceled) || errors.Is(ctxErr, context.DeadlineExceeded) { + log.Infof("Worker %s: Stream context cancelled, receiver exiting", s.workerID) + return + } + + // Stream-level gRPC status (non-OK): + // RPC is over → signal stream failure or handle as irrecoverable + if st, ok := status.FromError(err); ok { + switch st.Code() { + case codes.Unauthenticated, codes.PermissionDenied: + s.handleIrrecoverableError("auth/perm: "+st.Message(), streamInfo) + return + case codes.InvalidArgument, codes.FailedPrecondition, codes.OutOfRange, codes.Unimplemented: + s.handleIrrecoverableError("protocol: "+st.Message(), streamInfo) + return + default: + // All other non-OK statuses: signal stream failure + log.Warnf("Worker %s: gRPC error (code %v): %v", s.workerID, st.Code(), err) + s.signalStreamFailure(streamInfo, "recv_error_"+st.Code().String()) + return + } + } + + // Transport error without status (RST/GOAWAY/TLS, socket close): signal stream failure + log.Warnf("Worker %s: Transport error: %v", s.workerID, err) + s.signalStreamFailure(streamInfo, "transport_error") + return + } +} + +// signalStreamFailure signals the supervisor to rotate the stream +func (s *streamWorker) signalStreamFailure(streamInfo *streamInfo, reason string) { + tlmWorkerStreamErrors.Inc(s.workerID, reason) + + // This signaling is blocking by design, it's okay to block the sender/receiver, + // since the only way we get here is through a stream error. + select { + case s.streamFailureCh <- streamInfo: + case <-s.stopChan: + } +} + +// signalBatchAck forwards a batch acknowledgment to the supervisor +// If the worker is stopped, returns without delivering (shutdown is in progress anyway) +func (s *streamWorker) signalBatchAck(streamInfo *streamInfo, msg *statefulpb.BatchStatus) { + select { + case s.batchAckCh <- &batchAck{stream: streamInfo, status: msg}: + case <-s.stopChan: + } +} + +// handleIrrecoverableError are errors that shouldn't be retried, and ideally +// should be block the ingestion, until the error is resolved. +func (s *streamWorker) handleIrrecoverableError(reason string, streamInfo *streamInfo) { + // Currently this is treated as stream error, which will trigger a stream rotation + // and retry of the same payload, which loops on. this IS NOT the desired behavior. + // TODO: Implement proper handling of irrecoverable errors, by blocking the ingestion + log.Infof("Worker %s: irrecoverable error detected: %s", s.workerID, reason) + s.signalStreamFailure(streamInfo, "irrecoverable_error") +} + +// getNextBatch crafts a StatefulBatch with the next batch to send from the +// inflight tracker. It doesn't change inflight tracker state +func (s *streamWorker) getNextBatch() *statefulpb.StatefulBatch { + return createBatch(s.inflight.nextToSend().Encoded, s.inflight.nextBatchID()) +} + +// createBatch creates a StatefulBatch from serialized data and batch ID +func createBatch(data []byte, batchID uint32) *statefulpb.StatefulBatch { + return &statefulpb.StatefulBatch{ + BatchId: batchID, + Data: data, + } +} + +// createStoppedTimer creates a timer that is stopped and has its channel drained +func createStoppedTimer(clk clock.Clock, d time.Duration) *clock.Timer { + t := clk.Timer(d) + if !t.Stop() { + <-t.C + } + return t +} diff --git a/pkg/logs/sender/grpc/stream_worker_test.go b/pkg/logs/sender/grpc/stream_worker_test.go new file mode 100644 index 00000000000..54fab8dfa6d --- /dev/null +++ b/pkg/logs/sender/grpc/stream_worker_test.go @@ -0,0 +1,1153 @@ +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +//go:build test + +package grpc + +import ( + "context" + "errors" + "io" + "sync" + "testing" + "time" + + "github.com/benbjohnson/clock" + "github.com/stretchr/testify/require" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" + + "github.com/DataDog/agent-payload/v5/statefulpb" + "github.com/DataDog/datadog-agent/comp/logs/agent/config" + "github.com/DataDog/datadog-agent/pkg/logs/client" + "github.com/DataDog/datadog-agent/pkg/logs/message" + noopimpl "github.com/DataDog/datadog-agent/pkg/util/compression/impl-noop" +) + +const ( + testTimeout = 100 * time.Millisecond + testTickInterval = 10 * time.Millisecond + testShortWait = 50 * time.Millisecond +) + +// mockSink implements sender.Sink for testing +type mockSink struct { + outputChan chan *message.Payload +} + +func newMockSink() *mockSink { + return &mockSink{ + outputChan: make(chan *message.Payload, 100), + } +} + +func (m *mockSink) Channel() chan *message.Payload { + return m.outputChan +} + +// mockLogsStream implements StatefulLogsService_LogsStreamClient for testing +type mockLogsStream struct { + grpc.ClientStream + + mu sync.Mutex + + // Channels for communication + sendCh chan *statefulpb.StatefulBatch // Batches sent by client + recvCh chan *statefulpb.BatchStatus // Acks to send to client + errCh chan error // To inject immediate errors in Recv() + + // Error control + sendErr error // If set, next Send() will return this error + recvErr error // If set, next Recv() will return this error + + // Track sent batches + sentBatches []*statefulpb.StatefulBatch + + // Context + ctx context.Context +} + +func newMockLogsStream(ctx context.Context) *mockLogsStream { + return &mockLogsStream{ + sendCh: make(chan *statefulpb.StatefulBatch, 10), + recvCh: make(chan *statefulpb.BatchStatus, 10), + errCh: make(chan error, 1), + sentBatches: make([]*statefulpb.StatefulBatch, 0), + ctx: ctx, + } +} + +func (m *mockLogsStream) Send(batch *statefulpb.StatefulBatch) error { + m.mu.Lock() + if m.sendErr != nil { + err := m.sendErr + m.mu.Unlock() + return err + } + m.mu.Unlock() + + select { + case m.sendCh <- batch: + m.mu.Lock() + m.sentBatches = append(m.sentBatches, batch) + m.mu.Unlock() + return nil + case <-m.ctx.Done(): + return m.ctx.Err() + } +} + +func (m *mockLogsStream) Recv() (*statefulpb.BatchStatus, error) { + m.mu.Lock() + if m.recvErr != nil { + err := m.recvErr + m.mu.Unlock() + return nil, err + } + m.mu.Unlock() + + select { + case ack := <-m.recvCh: + return ack, nil + case err := <-m.errCh: + return nil, err + case <-m.ctx.Done(): + return nil, m.ctx.Err() + } +} + +func (m *mockLogsStream) CloseSend() error { + return nil +} + +// Helper to set send error +func (m *mockLogsStream) setSendError(err error) { + m.mu.Lock() + defer m.mu.Unlock() + m.sendErr = err +} + +// Helper to send an ack to the client +func (m *mockLogsStream) sendAck(batchID uint32) { + m.recvCh <- &statefulpb.BatchStatus{ + BatchId: batchID, + } +} + +// Helper to inject an error immediately (unblocks Recv()) +func (m *mockLogsStream) injectRecvError(err error) { + m.errCh <- err +} + +// Helper to get sent batch count +func (m *mockLogsStream) getSentBatchCount() int { + m.mu.Lock() + defer m.mu.Unlock() + return len(m.sentBatches) +} + +// Helper to get a specific sent batch by index +func (m *mockLogsStream) getSentBatch(index int) *statefulpb.StatefulBatch { + m.mu.Lock() + defer m.mu.Unlock() + if index < 0 || index >= len(m.sentBatches) { + return nil + } + return m.sentBatches[index] +} + +// mockLogsClient implements StatefulLogsServiceClient for testing +type mockLogsClient struct { + mu sync.Mutex + + // Control stream creation + createStreamErr error // If set, LogsStream() will return this error + failStreamCreationFor int // Fail the next N stream creation attempts + currentStream *mockLogsStream + streamCtx context.Context + streamCancel context.CancelFunc +} + +func newMockLogsClient() *mockLogsClient { + return &mockLogsClient{} +} + +func (m *mockLogsClient) LogsStream(ctx context.Context, _ ...grpc.CallOption) (statefulpb.StatefulLogsService_LogsStreamClient, error) { + m.mu.Lock() + defer m.mu.Unlock() + + // Check counter-based failure first + if m.failStreamCreationFor > 0 { + m.failStreamCreationFor-- + err := m.createStreamErr + // Clear error when counter reaches 0 + if m.failStreamCreationFor == 0 { + m.createStreamErr = nil + } + return nil, err + } + + // Check error-based failure (only if counter is not in use) + if m.createStreamErr != nil { + return nil, m.createStreamErr + } + + // Create a new stream with a child context + m.streamCtx, m.streamCancel = context.WithCancel(ctx) + m.currentStream = newMockLogsStream(m.streamCtx) + return m.currentStream, nil +} + +// Helper to fail the next N stream creation attempts +func (m *mockLogsClient) failNextStreamCreations(count int, err error) { + m.mu.Lock() + defer m.mu.Unlock() + m.failStreamCreationFor = count + m.createStreamErr = err +} + +// Helper to get current stream +func (m *mockLogsClient) getCurrentStream() *mockLogsStream { + m.mu.Lock() + defer m.mu.Unlock() + return m.currentStream +} + +// testFixture holds all the components needed for testing +type testFixture struct { + t *testing.T + mockClock *clock.Mock + mockClient *mockLogsClient + mockSink *mockSink + inputChan chan *message.Payload + outputChan chan *message.Payload + destCtx *client.DestinationsContext + endpoint config.Endpoint + streamLifetime time.Duration + worker *streamWorker +} + +// newTestFixture creates all the test infrastructure +func newTestFixture(t *testing.T) *testFixture { + // Create mock client + mockClient := newMockLogsClient() + + // Create mock sink + mockSink := newMockSink() + + // Create input channel + inputChan := make(chan *message.Payload, 100) + + // Create mock destination context + destCtx := client.NewDestinationsContext() + destCtx.Start() + + // Create endpoint config with test backoff settings + endpoint := config.Endpoint{ + BackoffFactor: 2.0, + BackoffBase: 1.0, + BackoffMax: 10.0, + RecoveryInterval: 2, + RecoveryReset: false, + } + + // Create mock clock + mockClock := clock.NewMock() + + fixture := &testFixture{ + t: t, + mockClock: mockClock, + mockClient: mockClient, + mockSink: mockSink, + inputChan: inputChan, + outputChan: mockSink.outputChan, + destCtx: destCtx, + endpoint: endpoint, + streamLifetime: 10 * time.Second, + } + + return fixture +} + +// createWorker creates a streamWorker with the fixture's components +func (f *testFixture) createWorker() *streamWorker { + return f.createWorkerWithInflight(nil) // nil = use default maxInflight +} + +// createWorkerWithInflight creates a streamWorker with custom inflight capacity for testing +func (f *testFixture) createWorkerWithInflight(inflight *inflightTracker) *streamWorker { + worker := newStreamWorkerWithClock( + "test-worker", + f.inputChan, + f.destCtx, + nil, // conn not needed with mock client + f.mockClient, + f.mockSink, + f.endpoint, + f.streamLifetime, + noopimpl.New(), // Use noop compressor for tests + f.mockClock, + inflight, + ) + f.worker = worker + return worker +} + +// cleanup shuts down all resources +func (f *testFixture) cleanup() { + if f.worker != nil { + // Check if worker is still running before stopping + select { + case <-f.worker.done: + // Already stopped + default: + f.worker.stop() + } + } + if f.destCtx != nil { + f.destCtx.Stop() + } +} + +// Helper to create test payload for stream worker tests +func createWorkerTestPayload(content string) *message.Payload { + return &message.Payload{ + Encoded: []byte(content), + MessageMetas: []*message.MessageMetadata{ + { + RawDataLen: len(content), + }, + }, + } +} + +// TestStreamWorkerBasicStartStop tests the basic lifecycle +func TestStreamWorkerBasicStartStop(t *testing.T) { + fixture := newTestFixture(t) + defer fixture.cleanup() + + worker := fixture.createWorker() + + // Start the worker + worker.start() + + // Wait for stream to become active (mocked stream creation should be quick) + require.Eventually(t, func() bool { + return worker.getStreamState() == active + }, testTimeout, testTickInterval, "Worker should transition to active state") + + // Verify stream was created + stream := fixture.mockClient.getCurrentStream() + require.NotNil(t, stream, "Stream should be created") + + // Stop the worker + worker.stop() + + // Verify clean shutdown + select { + case <-worker.done: + // Success + case <-time.After(testTimeout): + t.Fatal("Worker did not shut down in time") + } +} + +// TestStreamWorkerSendReceive tests basic message flow from input to output +func TestStreamWorkerSendReceive(t *testing.T) { + fixture := newTestFixture(t) + defer fixture.cleanup() + + worker := fixture.createWorker() + worker.start() + + // Wait for active state + require.Eventually(t, func() bool { + return worker.getStreamState() == active + }, testTimeout, testTickInterval) + + stream := fixture.mockClient.getCurrentStream() + require.NotNil(t, stream) + + // Send one message + payload := createWorkerTestPayload("test message") + fixture.inputChan <- payload + + // Wait for message to be sent to stream + require.Eventually(t, func() bool { + return stream.getSentBatchCount() == 1 + }, testTimeout, testTickInterval) + + // Send ack for batch 1 + stream.sendAck(1) + + // Verify message appears in output channel + select { + case output := <-fixture.outputChan: + require.Equal(t, payload, output) + case <-time.After(testTimeout): + t.Fatal("Message should appear in outputChan after ack") + } +} + +// TestStreamWorkerReceiverFailureRotation tests stream rotation on receiver failure +// with an inflight message that gets re-sent on the new stream +func TestStreamWorkerReceiverFailureRotation(t *testing.T) { + fixture := newTestFixture(t) + defer fixture.cleanup() + + worker := fixture.createWorker() + worker.start() + + // Wait for active state + require.Eventually(t, func() bool { + return worker.getStreamState() == active + }, testTimeout, testTickInterval) + + stream1 := fixture.mockClient.getCurrentStream() + require.NotNil(t, stream1) + + // Send 1 message + payload := createWorkerTestPayload("test message") + fixture.inputChan <- payload + + // Wait for message to be sent to stream1 + require.Eventually(t, func() bool { + return stream1.getSentBatchCount() == 1 + }, testTimeout, testTickInterval) + + // Give receiverLoop time to enter Recv() and block + time.Sleep(testShortWait) + + // Inject receiver error immediately (this unblocks Recv() and triggers stream rotation) + // Note: We do NOT send an ack, so the message stays inflight + stream1.injectRecvError(io.EOF) + + // Wait for rotation to complete (stream changes and state is active again) + // Recv failure triggers backoff, so advance clock to allow rotation + var stream2 *mockLogsStream + require.Eventually(t, func() bool { + fixture.mockClock.Add(500 * time.Millisecond) // Advance past backoff period + stream2 = fixture.mockClient.getCurrentStream() + return stream2 != nil && stream2 != stream1 && worker.getStreamState() == active + }, testTimeout, testTickInterval, "Should complete stream rotation with new stream") + + // The inflight message should be re-sent on the new stream (after rotation reset, it's batch 1 again) + require.Eventually(t, func() bool { + return stream2.getSentBatchCount() == 1 + }, testTimeout, testTickInterval, "Inflight message should be re-sent on new stream") + + // Send ack for batch 1 on new stream + stream2.sendAck(1) + + // Verify message appears in output channel + select { + case output := <-fixture.outputChan: + require.Equal(t, payload, output) + case <-time.After(testTimeout): + t.Fatal("Message should appear in outputChan after ack on new stream") + } +} + +// TestStreamWorkerStreamTimeout tests stream rotation triggered by stream timer expiration +func TestStreamWorkerStreamTimeout(t *testing.T) { + fixture := newTestFixture(t) + defer fixture.cleanup() + + worker := fixture.createWorker() + worker.start() + + // Wait for active state + require.Eventually(t, func() bool { + return worker.getStreamState() == active + }, testTimeout, testTickInterval) + + stream1 := fixture.mockClient.getCurrentStream() + require.NotNil(t, stream1) + + // Advance clock past stream lifetime to trigger stream timeout + fixture.mockClock.Add(fixture.streamLifetime + time.Second) + + // Wait for rotation to complete (new stream created and active) + var stream2 *mockLogsStream + require.Eventually(t, func() bool { + stream2 = fixture.mockClient.getCurrentStream() + return stream2 != nil && stream2 != stream1 && worker.getStreamState() == active + }, testTimeout, testTickInterval, "Should rotate to new stream after timer expires") + + // Send a message on the new stream + payload := createWorkerTestPayload("test on stream2") + fixture.inputChan <- payload + + // Wait for message to be sent on stream2 + require.Eventually(t, func() bool { + return stream2.getSentBatchCount() == 1 + }, testTimeout, testTickInterval, "Message should be sent on new stream") + + // Send ack + stream2.sendAck(1) + + // Verify message appears in output + select { + case output := <-fixture.outputChan: + require.Equal(t, payload, output) + case <-time.After(testTimeout): + t.Fatal("Message should appear in outputChan after ack") + } +} + +// TestStreamWorkerStreamTimeoutWithDrain tests graceful rotation when stream timer expires with inflight messages +func TestStreamWorkerStreamTimeoutWithDrain(t *testing.T) { + fixture := newTestFixture(t) + defer fixture.cleanup() + + worker := fixture.createWorker() + worker.start() + + // Wait for active state + require.Eventually(t, func() bool { + return worker.getStreamState() == active + }, testTimeout, testTickInterval) + + stream1 := fixture.mockClient.getCurrentStream() + require.NotNil(t, stream1) + + // Step 1: Send 1 message on stream1, don't send ack + payload1 := createWorkerTestPayload("message 1") + fixture.inputChan <- payload1 + + // Wait for message to be sent on stream1 + require.Eventually(t, func() bool { + return stream1.getSentBatchCount() == 1 + }, testTimeout, testTickInterval) + + // Step 2 & 3: Advance clock to trigger stream timeout, verify draining state + fixture.mockClock.Add(fixture.streamLifetime + time.Second) + + // Should transition to draining (not connecting) because there's an unacked message + require.Eventually(t, func() bool { + return worker.getStreamState() == draining + }, testTimeout, testTickInterval, "Should transition to draining state with unacked messages") + + // Step 4: Send another message, verify it's buffered (NOT sent on stream1) + payload2 := createWorkerTestPayload("message 2") + fixture.inputChan <- payload2 + + // Give time for message to be processed if it was going to be sent + time.Sleep(testShortWait) + + // stream1 should still only have 1 batch sent + require.Equal(t, 1, stream1.getSentBatchCount(), "Message 2 should be buffered, not sent on stream1") + + // Step 5 & 6 & 7: Send ack for batch 1, verify it appears in output + stream1.sendAck(1) + + select { + case output := <-fixture.outputChan: + require.Equal(t, payload1, output, "First message should appear in output") + case <-time.After(testTimeout): + t.Fatal("Message 1 should appear in outputChan after ack") + } + + // Step 8: Verify stream2 is created (draining → connecting → active) + var stream2 *mockLogsStream + require.Eventually(t, func() bool { + stream2 = fixture.mockClient.getCurrentStream() + return stream2 != nil && stream2 != stream1 && worker.getStreamState() == active + }, testTimeout, testTickInterval, "Should complete rotation to new stream after ack received") + + // Step 9: Verify message 2 is sent on stream2 (batch ID resets to 1 after rotation) + require.Eventually(t, func() bool { + return stream2.getSentBatchCount() == 1 + }, testTimeout, testTickInterval, "Buffered message 2 should be sent on new stream") + + // Send ack for batch 1 on stream2 to verify it's the second message + stream2.sendAck(1) + + select { + case output := <-fixture.outputChan: + require.Equal(t, payload2, output, "Second message should appear in output") + case <-time.After(testTimeout): + t.Fatal("Message 2 should appear in outputChan after ack on stream2") + } +} + +// TestStreamWorkerDrainTimeout tests forced rotation when drain timer expires without receiving all acks +func TestStreamWorkerDrainTimeout(t *testing.T) { + fixture := newTestFixture(t) + defer fixture.cleanup() + + worker := fixture.createWorker() + worker.start() + + // Wait for active state + require.Eventually(t, func() bool { + return worker.getStreamState() == active + }, testTimeout, testTickInterval) + + stream1 := fixture.mockClient.getCurrentStream() + require.NotNil(t, stream1) + + // Step 1: Send message on stream1, don't send ack (stays inflight) + payload := createWorkerTestPayload("message 1") + fixture.inputChan <- payload + + // Wait for message to be sent on stream1 + require.Eventually(t, func() bool { + return stream1.getSentBatchCount() == 1 + }, testTimeout, testTickInterval) + + // Step 2: Advance clock to trigger stream timeout → enter draining + fixture.mockClock.Add(fixture.streamLifetime + time.Second) + + require.Eventually(t, func() bool { + return worker.getStreamState() == draining + }, testTimeout, testTickInterval, "Should transition to draining state") + + // Step 3: Advance clock to trigger drain timeout (without sending ack) → force rotation + fixture.mockClock.Add(drainTimeout + time.Second) + + // Step 4: Verify stream2 is created (draining → connecting → active) + var stream2 *mockLogsStream + require.Eventually(t, func() bool { + stream2 = fixture.mockClient.getCurrentStream() + return stream2 != nil && stream2 != stream1 && worker.getStreamState() == active + }, testTimeout, testTickInterval, "Should complete rotation to new stream after drain timeout") + + // Step 5: Verify batch 1 is re-sent on stream2 (inflight message replayed) + require.Eventually(t, func() bool { + return stream2.getSentBatchCount() == 1 + }, testTimeout, testTickInterval, "Inflight message should be re-sent on new stream") + + // Send ack for batch 1 on stream2 + stream2.sendAck(1) + + // Verify message appears in output + select { + case output := <-fixture.outputChan: + require.Equal(t, payload, output) + case <-time.After(testTimeout): + t.Fatal("Message should appear in outputChan after ack on new stream") + } +} + +// TestStreamWorkerBackoff tests exponential backoff on stream creation failure +func TestStreamWorkerBackoff(t *testing.T) { + fixture := newTestFixture(t) + defer fixture.cleanup() + + worker := fixture.createWorker() + + // Configure mock to fail stream creation once, then succeed + testErr := errors.New("simulated stream creation failure") + fixture.mockClient.failNextStreamCreations(1, testErr) + + // Start worker (will attempt to create stream and should fail) + worker.start() + + // Should fail to create stream and enter disconnected state + require.Eventually(t, func() bool { + return worker.getStreamState() == disconnected + }, testTimeout, testTickInterval, "Should transition to disconnected state after stream creation failure") + + // Verify no stream was created + require.Nil(t, fixture.mockClient.getCurrentStream(), "No stream should be created on error") + + // Advance clock gradually to trigger backoff timer and verify stream is established + // For first error, backoff is between 1-2 seconds (base=1s, factor=2, jitter) + var stream *mockLogsStream + require.Eventually(t, func() bool { + fixture.mockClock.Add(500 * time.Millisecond) + stream = fixture.mockClient.getCurrentStream() + return stream != nil && worker.getStreamState() == active + }, testTimeout, testTickInterval, "Should transition to active state after backoff expires") + + // Verify we can send a message on the new stream + payload := createWorkerTestPayload("test message") + fixture.inputChan <- payload + + require.Eventually(t, func() bool { + return stream.getSentBatchCount() == 1 + }, testTimeout, testTickInterval, "Message should be sent on new stream") + + stream.sendAck(1) + + select { + case output := <-fixture.outputChan: + require.Equal(t, payload, output) + case <-time.After(testTimeout): + t.Fatal("Message should appear in outputChan after ack") + } +} + +// TestStreamWorkerBackpressure verifies that inputChan blocks when inflight is full +func TestStreamWorkerBackpressure(t *testing.T) { + fixture := newTestFixture(t) + defer fixture.cleanup() + + // Use small inflight capacity for fast test + smallInflight := newInflightTracker("test", 5) + worker := fixture.createWorkerWithInflight(smallInflight) + worker.start() + + // Wait for active state + require.Eventually(t, func() bool { + return worker.getStreamState() == active + }, testTimeout, testTickInterval) + + stream := fixture.mockClient.getCurrentStream() + require.NotNil(t, stream) + + // Send 5 messages (don't send acks, so they stay in "sent" state and fill inflight) + for i := 0; i < 5; i++ { + fixture.inputChan <- createWorkerTestPayload("test") + } + + // Wait for inflight to be full + require.Eventually(t, func() bool { + return stream.getSentBatchCount() == 5 + }, testTimeout, testTickInterval, "Inflight should be full") + + // Verify backpressure: send one more message, it should NOT be consumed + fixture.inputChan <- createWorkerTestPayload("blocked") + time.Sleep(testShortWait) + require.Equal(t, 1, len(fixture.inputChan), "Message should remain in inputChan due to backpressure") + + // Send ack for batch 1 to free up space + stream.sendAck(1) + + // Verify backpressure released: the blocked message should now be consumed + require.Eventually(t, func() bool { + return len(fixture.inputChan) == 0 + }, testTimeout, testTickInterval, "Message should be consumed after ack frees space") +} + +// TestStreamWorkerErrorRecovery tests that Send() and Recv() failures trigger rotation and retry +func TestStreamWorkerErrorRecovery(t *testing.T) { + fixture := newTestFixture(t) + defer fixture.cleanup() + + worker := fixture.createWorker() + worker.start() + + // Wait for initial stream to be active + var stream1 *mockLogsStream + require.Eventually(t, func() bool { + stream1 = fixture.mockClient.getCurrentStream() + return stream1 != nil && worker.getStreamState() == active + }, testTimeout, testTickInterval, "Worker should reach active state") + + // Inject send error BEFORE sending message + stream1.setSendError(errors.New("simulated send failure")) + + // Send message - this will trigger Send() failure and rotation + payload := createWorkerTestPayload("test message") + fixture.inputChan <- payload + + // Wait for stream rotation (new stream created) + // Send failure triggers backoff, so advance clock to allow rotation + var stream2 *mockLogsStream + require.Eventually(t, func() bool { + fixture.mockClock.Add(500 * time.Millisecond) // Advance past backoff period + stream2 = fixture.mockClient.getCurrentStream() + return stream2 != nil && stream2 != stream1 && worker.getStreamState() == active + }, testTimeout, testTickInterval, "Worker should rotate to new stream after send error") + + // New stream should have retried the message (batch 1) + require.Eventually(t, func() bool { + return stream2.getSentBatchCount() == 1 + }, testTimeout, testTickInterval, "Message should be retried on new stream") + + // Send ack on new stream + stream2.sendAck(1) + + // Verify message appears in outputChan + select { + case output := <-fixture.outputChan: + require.Equal(t, payload, output) + case <-time.After(testTimeout): + t.Fatal("Message should appear in outputChan after rotation and ack") + } + + // Part 2: Test injectRecvError with retriable gRPC error + // Inject recv error (codes.Unavailable falls into default case -> rotation) + stream2.injectRecvError(status.Error(codes.Unavailable, "simulated unavailable error")) + + // Send another message + payload2 := createWorkerTestPayload("test message 2") + fixture.inputChan <- payload2 + + // Wait for stream rotation (new stream created) + // Recv failure triggers backoff, so advance clock to allow rotation + var stream3 *mockLogsStream + require.Eventually(t, func() bool { + fixture.mockClock.Add(500 * time.Millisecond) // Advance past backoff period + stream3 = fixture.mockClient.getCurrentStream() + return stream3 != nil && stream3 != stream2 && worker.getStreamState() == active + }, testTimeout, testTickInterval, "Worker should rotate to new stream after recv error") + + // New stream should have retried the message (batch 1 - reset after rotation) + require.Eventually(t, func() bool { + return stream3.getSentBatchCount() == 1 + }, testTimeout, testTickInterval, "Message should be retried on new stream after recv error") + + // Send ack on new stream + stream3.sendAck(1) + + // Verify message appears in outputChan + select { + case output := <-fixture.outputChan: + require.Equal(t, payload2, output) + case <-time.After(testTimeout): + t.Fatal("Message should appear in outputChan after recv error rotation and ack") + } +} + +// Helper functions to create Datum objects for testing +func createPatternDefine(id uint64, template string) *statefulpb.Datum { + return &statefulpb.Datum{ + Data: &statefulpb.Datum_PatternDefine{ + PatternDefine: &statefulpb.PatternDefine{ + PatternId: id, + Template: template, + }, + }, + } +} + +func createPatternDelete(id uint64) *statefulpb.Datum { + return &statefulpb.Datum{ + Data: &statefulpb.Datum_PatternDelete{ + PatternDelete: &statefulpb.PatternDelete{ + PatternId: id, + }, + }, + } +} + +func createDictEntryDefine(id uint64, value string) *statefulpb.Datum { + return &statefulpb.Datum{ + Data: &statefulpb.Datum_DictEntryDefine{ + DictEntryDefine: &statefulpb.DictEntryDefine{ + Id: id, + Value: value, + }, + }, + } +} + +func createDictEntryDelete(id uint64) *statefulpb.Datum { + return &statefulpb.Datum{ + Data: &statefulpb.Datum_DictEntryDelete{ + DictEntryDelete: &statefulpb.DictEntryDelete{ + Id: id, + }, + }, + } +} + +// createPayloadWithState creates a payload with state changes in StatefulExtra +func createPayloadWithState(content string, stateChanges []*statefulpb.Datum) *message.Payload { + payload := createWorkerTestPayload(content) + if len(stateChanges) > 0 { + payload.StatefulExtra = &StatefulExtra{ + StateChanges: stateChanges, + } + } + return payload +} + +// verifySnapshotContents checks if a snapshot batch contains the expected state +func verifySnapshotContents(t *testing.T, batch *statefulpb.StatefulBatch, expectedPatterns map[uint64]string, expectedDictEntries map[uint64]string) { + require.NotNil(t, batch) + require.Equal(t, uint32(0), batch.BatchId, "Snapshot should have batch ID 0") + + // Deserialize the snapshot data (it's a DatumSequence) + var datumSeq statefulpb.DatumSequence + err := proto.Unmarshal(batch.Data, &datumSeq) + require.NoError(t, err) + + // Count what we find + foundPatterns := make(map[uint64]string) + foundDictEntries := make(map[uint64]string) + + for _, datum := range datumSeq.Data { + switch d := datum.Data.(type) { + case *statefulpb.Datum_PatternDefine: + foundPatterns[d.PatternDefine.PatternId] = d.PatternDefine.Template + case *statefulpb.Datum_DictEntryDefine: + foundDictEntries[d.DictEntryDefine.Id] = d.DictEntryDefine.Value + default: + t.Fatalf("Snapshot should only contain PatternDefine and DictEntryDefine, got: %T", datum.Data) + } + } + + require.Equal(t, expectedPatterns, foundPatterns, "Snapshot patterns mismatch") + require.Equal(t, expectedDictEntries, foundDictEntries, "Snapshot dict entries mismatch") +} + +// TestStreamWorkerSnapshot tests the snapshot functionality across stream rotations +func TestStreamWorkerSnapshot(t *testing.T) { + fixture := newTestFixture(t) + defer fixture.cleanup() + + // Override stream lifetime for this test + fixture.streamLifetime = time.Second + worker := fixture.createWorker() + worker.start() + + // Wait for initial stream to be ready + var stream1 *mockLogsStream + require.Eventually(t, func() bool { + stream1 = fixture.mockClient.getCurrentStream() + return stream1 != nil && worker.getStreamState() == active + }, testTimeout, testTickInterval, "Initial stream should be established") + + // === Step 1: Send Batch 1 (5 entries) === + batch1StateChanges := []*statefulpb.Datum{ + createPatternDefine(1, "pattern1"), + createDictEntryDefine(1, "value1"), + createPatternDefine(2, "pattern2"), + createDictEntryDefine(2, "value2"), + } + batch1Payload := createPayloadWithState("log with p1/d1", batch1StateChanges) + fixture.inputChan <- batch1Payload + + // Wait for batch 1 to be sent + require.Eventually(t, func() bool { + return stream1.getSentBatchCount() == 1 + }, testTimeout, testTickInterval, "Batch 1 should be sent") + + // === Step 2: Ack Batch 1 === + stream1.sendAck(1) + + // Verify batch 1 appears in outputChan + select { + case output := <-fixture.outputChan: + require.Equal(t, batch1Payload, output) + case <-time.After(testTimeout): + t.Fatal("Batch 1 should appear in outputChan") + } + + // === Step 3: Send Batch 2 (6 entries) === + batch2StateChanges := []*statefulpb.Datum{ + createPatternDelete(1), + createDictEntryDelete(1), + createPatternDefine(3, "pattern3"), + createDictEntryDefine(3, "value3"), + } + batch2Payload := createPayloadWithState("log with p2/d2 and p3/d3", batch2StateChanges) + fixture.inputChan <- batch2Payload + + // Wait for batch 2 to be sent + require.Eventually(t, func() bool { + return stream1.getSentBatchCount() == 2 + }, testTimeout, testTickInterval, "Batch 2 should be sent") + + // === Step 4: Cut stream with recv failure (before acking batch 2) === + stream1.injectRecvError(io.EOF) + + // Wait for stream rotation + // Recv failure triggers backoff, so advance clock to allow rotation + var stream2 *mockLogsStream + require.Eventually(t, func() bool { + fixture.mockClock.Add(500 * time.Millisecond) // Advance past backoff period + stream2 = fixture.mockClient.getCurrentStream() + return stream2 != nil && stream2 != stream1 && worker.getStreamState() == active + }, testTimeout, testTickInterval, "Stream should rotate after recv failure") + + // === Step 5: Verify snapshot on new stream === + // Snapshot should contain state BEFORE batch 2: {p1, p2, d1, d2} + require.Eventually(t, func() bool { + return stream2.getSentBatchCount() >= 1 + }, testTimeout, testTickInterval, "Snapshot should be sent on new stream") + + snapshotBatch := stream2.getSentBatch(0) + expectedPatterns1 := map[uint64]string{ + 1: "pattern1", + 2: "pattern2", + } + expectedDictEntries1 := map[uint64]string{ + 1: "value1", + 2: "value2", + } + verifySnapshotContents(t, snapshotBatch, expectedPatterns1, expectedDictEntries1) + + // === Step 6: Ack snapshot (batch 0) === + stream2.sendAck(0) + + // === Step 7: Verify Batch 2 is retransmitted === + require.Eventually(t, func() bool { + return stream2.getSentBatchCount() == 2 + }, testTimeout, testTickInterval, "Batch 2 should be retransmitted") + + batch2Retransmitted := stream2.getSentBatch(1) + require.Equal(t, uint32(1), batch2Retransmitted.BatchId) + + // === Step 8: Ack Batch 2 === + stream2.sendAck(1) + + // Verify batch 2 appears in outputChan + select { + case output := <-fixture.outputChan: + require.Equal(t, batch2Payload, output) + case <-time.After(testTimeout): + t.Fatal("Batch 2 should appear in outputChan") + } + + // === Step 9: Send Batch 3 (3 entries) === + batch3StateChanges := []*statefulpb.Datum{ + createPatternDefine(4, "pattern4"), + createDictEntryDefine(4, "value4"), + } + batch3Payload := createPayloadWithState("log with p4/d4", batch3StateChanges) + fixture.inputChan <- batch3Payload + + // Wait for batch 3 to be sent + require.Eventually(t, func() bool { + return stream2.getSentBatchCount() == 3 + }, testTimeout, testTickInterval, "Batch 3 should be sent") + + // === Step 10: Stream timer expires === + fixture.mockClock.Add(time.Second) + + // Worker should enter draining state (batch 3 is still inflight) + require.Eventually(t, func() bool { + return worker.getStreamState() == draining + }, testTimeout, testTickInterval, "Worker should enter draining state") + + // === Step 11: Drain timer expires (force rotation) === + fixture.mockClock.Add(5 * time.Second) // drainTimeout is 5 seconds + + // Wait for new stream to be created + var stream3 *mockLogsStream + require.Eventually(t, func() bool { + stream3 = fixture.mockClient.getCurrentStream() + return stream3 != nil && stream3 != stream2 && worker.getStreamState() == active + }, testTimeout, testTickInterval, "Stream should rotate after drain timeout") + + // === Step 12: Verify snapshot on new stream === + // Snapshot should contain state AFTER batch 2, BEFORE batch 3: {p2, p3, d2, d3} + // (p1/d1 were deleted in batch 2) + require.Eventually(t, func() bool { + return stream3.getSentBatchCount() >= 1 + }, testTimeout, testTickInterval, "Snapshot should be sent on new stream") + + snapshotBatch2 := stream3.getSentBatch(0) + expectedPatterns2 := map[uint64]string{ + 2: "pattern2", + 3: "pattern3", + } + expectedDictEntries2 := map[uint64]string{ + 2: "value2", + 3: "value3", + } + verifySnapshotContents(t, snapshotBatch2, expectedPatterns2, expectedDictEntries2) + + // Ack snapshot and batch 3 + stream3.sendAck(0) + stream3.sendAck(1) + + // Verify batch 3 appears in outputChan + select { + case output := <-fixture.outputChan: + require.Equal(t, batch3Payload, output) + case <-time.After(testTimeout): + t.Fatal("Batch 3 should appear in outputChan") + } +} + +// TestStreamWorkerSupervisorResponsiveWhileSenderBlocked verifies that the supervisor +// remains responsive to other events even when the sender goroutine is blocked on Send() +func TestStreamWorkerSupervisorResponsiveWhileSenderBlocked(t *testing.T) { + fixture := newTestFixture(t) + defer fixture.cleanup() + + worker := fixture.createWorker() + worker.start() + + // Wait for active state + require.Eventually(t, func() bool { + return worker.getStreamState() == active + }, testTimeout, testTickInterval) + + stream := fixture.mockClient.getCurrentStream() + require.NotNil(t, stream) + + // Step 1: Send a message normally to verify baseline functionality + payload1 := createWorkerTestPayload("message 1") + fixture.inputChan <- payload1 + + // Wait for it to be sent (should go through batchToSendCh to senderLoop to stream.sendCh) + require.Eventually(t, func() bool { + return stream.getSentBatchCount() >= 1 + }, testTimeout, testTickInterval, "First message should be sent") + + // Consume from stream.sendCh to confirm sender is working + <-stream.sendCh + + // Step 2: Block the sender by filling stream.sendCh (capacity 10) + // Strategy: Fill stream.sendCh so senderLoop blocks, then verify supervisor is still responsive + + // Send messages to fill: + // - stream.sendCh: 10 batches + // - batch being sent by senderLoop: 1 batch (blocked on stream.Send) + // - batchToSendCh: 10 batches + // Total = 21 messages needed + for i := 0; i < 21; i++ { + fixture.inputChan <- createWorkerTestPayload(string(rune('A' + (i % 26)))) + } + + // Give time for all messages to be consumed from inputChan by supervisor + // and queued through the pipeline + time.Sleep(testShortWait) + + // At this point (since we're not consuming from stream.sendCh): + // - stream.sendCh should have ~10 batches + // - batchToSendCh should have ~10 batches + // - senderLoop is blocked on stream.Send() trying to write to full stream.sendCh + // - supervisor's select is blocked on the send case trying to write to full batchToSendCh + + // Step 3: THE KEY TEST - Verify supervisor remains responsive while blocked on send + + // Test 1: Verify we can still write to inputChan without blocking + // Even though supervisor is blocked on send case, it should wake up to accept input + payloadDuringBlock := createWorkerTestPayload("message while blocked") + + // This write should not block because supervisor can wake from send to handle inputChan + done := make(chan bool, 1) + go func() { + fixture.inputChan <- payloadDuringBlock + done <- true + }() + + // Verify the write completes quickly (doesn't block indefinitely) + select { + case <-done: + // Success - inputChan write didn't block + case <-time.After(testTimeout): + t.Fatal("Write to inputChan should not block even when supervisor is blocked on send") + } + + // Give supervisor time to process the payload and attempt to send batch 23 + time.Sleep(testShortWait) + + // At this point, supervisor should have received the payload and be stuck trying to send batch 23 + // because all channels are full + + // Test 2: Verify supervisor can still handle acks while blocked on send + // This proves select can be woken by multiple different cases + stream.sendAck(1) + + // Verify the ack is processed and payload1 appears in outputChan + select { + case output := <-fixture.outputChan: + require.Equal(t, payload1, output, "Ack should be processed even while supervisor is blocked on send") + case <-time.After(testTimeout): + t.Fatal("Supervisor should remain responsive to acks even while blocked on send") + } +} diff --git a/pkg/logs/sender/grpc/streamstate_string.go b/pkg/logs/sender/grpc/streamstate_string.go new file mode 100644 index 00000000000..6081ed22284 --- /dev/null +++ b/pkg/logs/sender/grpc/streamstate_string.go @@ -0,0 +1,27 @@ +// Code generated by "stringer -type=streamState"; DO NOT EDIT. + +package grpc + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[disconnected-0] + _ = x[connecting-1] + _ = x[active-2] + _ = x[draining-3] +} + +const _streamState_name = "disconnectedconnectingactivedraining" + +var _streamState_index = [...]uint8{0, 12, 22, 28, 36} + +func (i streamState) String() string { + idx := int(i) - 0 + if i < 0 || idx >= len(_streamState_index)-1 { + return "streamState(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _streamState_name[_streamState_index[idx]:_streamState_index[idx+1]] +} diff --git a/pkg/logs/sender/message_buffer.go b/pkg/logs/sender/message_buffer.go index ad2112193ea..b1185e16ade 100644 --- a/pkg/logs/sender/message_buffer.go +++ b/pkg/logs/sender/message_buffer.go @@ -28,8 +28,15 @@ func NewMessageBuffer(batchSizeLimit int, contentSizeLimit int) *MessageBuffer { // returns true if the message was added. func (p *MessageBuffer) AddMessage(message *message.Message) bool { contentSize := len(message.GetContent()) + return p.AddMessageWithSize(&message.MessageMetadata, contentSize) +} + +// AddMessageWithSize adds a message to the buffer if there is still some free space, +// returns true if the message was added. +// As input it takes directly metadata and content size, instead of a message. +func (p *MessageBuffer) AddMessageWithSize(metadata *message.MessageMetadata, contentSize int) bool { if len(p.messageBuffer) < cap(p.messageBuffer) && p.contentSize+contentSize <= p.contentSizeLimit { - meta := message.MessageMetadata // Copy metadata instead of taking reference + meta := *metadata // Copy metadata instead of taking reference p.messageBuffer = append(p.messageBuffer, &meta) p.contentSize += contentSize return true diff --git a/pkg/logs/sources/go.mod b/pkg/logs/sources/go.mod index 6058b1c48b3..1587a8beb7c 100644 --- a/pkg/logs/sources/go.mod +++ b/pkg/logs/sources/go.mod @@ -173,6 +173,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils github.com/DataDog/datadog-agent/pkg/logs/types => ../../../pkg/logs/types diff --git a/pkg/logs/status/statusinterface/go.mod b/pkg/logs/status/statusinterface/go.mod index dd32ba23c7d..d0b813b239c 100644 --- a/pkg/logs/status/statusinterface/go.mod +++ b/pkg/logs/status/statusinterface/go.mod @@ -104,6 +104,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils github.com/DataDog/datadog-agent/pkg/logs/types => ../../../../pkg/logs/types diff --git a/pkg/logs/status/utils/go.mod b/pkg/logs/status/utils/go.mod index 4dc734a28a9..24d4e88b6f2 100644 --- a/pkg/logs/status/utils/go.mod +++ b/pkg/logs/status/utils/go.mod @@ -119,6 +119,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/types => ../../../../pkg/logs/types diff --git a/pkg/logs/types/go.mod b/pkg/logs/types/go.mod index ad2324edff5..f1874375a8f 100644 --- a/pkg/logs/types/go.mod +++ b/pkg/logs/types/go.mod @@ -104,6 +104,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/logs/util/testutils/go.mod b/pkg/logs/util/testutils/go.mod index 959b4a2f3cf..7b798216586 100644 --- a/pkg/logs/util/testutils/go.mod +++ b/pkg/logs/util/testutils/go.mod @@ -167,6 +167,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod index 795d630d24a..2d387765fba 100644 --- a/pkg/metrics/go.mod +++ b/pkg/metrics/go.mod @@ -206,6 +206,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/pkg/network/driver/go.mod b/pkg/network/driver/go.mod index 9f15936cf06..f193b495013 100644 --- a/pkg/network/driver/go.mod +++ b/pkg/network/driver/go.mod @@ -145,6 +145,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/network/payload/go.mod b/pkg/network/payload/go.mod index d61881d28dd..a67e28a9f89 100644 --- a/pkg/network/payload/go.mod +++ b/pkg/network/payload/go.mod @@ -104,6 +104,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/networkdevice/profile/go.mod b/pkg/networkdevice/profile/go.mod index 3d537e84f4d..9485af5a40d 100644 --- a/pkg/networkdevice/profile/go.mod +++ b/pkg/networkdevice/profile/go.mod @@ -128,6 +128,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/networkpath/payload/go.mod b/pkg/networkpath/payload/go.mod index a5b5cb95264..f3fb15abd1c 100644 --- a/pkg/networkpath/payload/go.mod +++ b/pkg/networkpath/payload/go.mod @@ -119,6 +119,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/obfuscate/go.mod b/pkg/obfuscate/go.mod index 16f7576f01b..3ba728a9f3c 100644 --- a/pkg/obfuscate/go.mod +++ b/pkg/obfuscate/go.mod @@ -129,6 +129,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/pkg/opentelemetry-mapping-go/inframetadata/go.mod b/pkg/opentelemetry-mapping-go/inframetadata/go.mod index e51729d9691..3db41452056 100644 --- a/pkg/opentelemetry-mapping-go/inframetadata/go.mod +++ b/pkg/opentelemetry-mapping-go/inframetadata/go.mod @@ -135,6 +135,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/opentelemetry-mapping-go/inframetadata/go.sum b/pkg/opentelemetry-mapping-go/inframetadata/go.sum index 1b3f0b15cb2..e2e4c80c3c8 100644 --- a/pkg/opentelemetry-mapping-go/inframetadata/go.sum +++ b/pkg/opentelemetry-mapping-go/inframetadata/go.sum @@ -52,10 +52,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= diff --git a/pkg/opentelemetry-mapping-go/inframetadata/gohai/internal/gohaitest/go.mod b/pkg/opentelemetry-mapping-go/inframetadata/gohai/internal/gohaitest/go.mod index 34daa32d445..57af185f47c 100644 --- a/pkg/opentelemetry-mapping-go/inframetadata/gohai/internal/gohaitest/go.mod +++ b/pkg/opentelemetry-mapping-go/inframetadata/gohai/internal/gohaitest/go.mod @@ -122,6 +122,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../../../pkg/logs/status/utils diff --git a/pkg/opentelemetry-mapping-go/otlp/attributes/go.mod b/pkg/opentelemetry-mapping-go/otlp/attributes/go.mod index dad2d04c71e..160936a8b41 100644 --- a/pkg/opentelemetry-mapping-go/otlp/attributes/go.mod +++ b/pkg/opentelemetry-mapping-go/otlp/attributes/go.mod @@ -11,7 +11,7 @@ require ( go.opentelemetry.io/collector/pdata v1.53.0 go.opentelemetry.io/otel v1.42.0 go.opentelemetry.io/otel/metric v1.42.0 - go.opentelemetry.io/otel/sdk/metric v1.40.0 + go.opentelemetry.io/otel/sdk/metric v1.41.0 ) require ( @@ -31,7 +31,7 @@ require ( github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/collector/featuregate v1.53.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -143,6 +143,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/pkg/opentelemetry-mapping-go/otlp/attributes/go.sum b/pkg/opentelemetry-mapping-go/otlp/attributes/go.sum index fcc457ac083..79538446a32 100644 --- a/pkg/opentelemetry-mapping-go/otlp/attributes/go.sum +++ b/pkg/opentelemetry-mapping-go/otlp/attributes/go.sum @@ -53,10 +53,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= diff --git a/pkg/opentelemetry-mapping-go/otlp/logs/go.mod b/pkg/opentelemetry-mapping-go/otlp/logs/go.mod index be4b5d14c97..23ad926da4e 100644 --- a/pkg/opentelemetry-mapping-go/otlp/logs/go.mod +++ b/pkg/opentelemetry-mapping-go/otlp/logs/go.mod @@ -3,7 +3,7 @@ module github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs go 1.25.0 require ( - github.com/DataDog/agent-payload/v5 v5.0.184 + github.com/DataDog/agent-payload/v5 v5.0.191 github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.73.0-rc.5 github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum v0.72.0-devel.0.20250907091827-dbb380833b5f github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.77.0-devel.0.20260211235139-a5361978c2b6 @@ -17,10 +17,7 @@ require ( go.uber.org/zap v1.27.1 ) -require ( - github.com/cespare/xxhash/v2 v2.3.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect -) +require github.com/cespare/xxhash/v2 v2.3.0 // indirect require ( github.com/DataDog/datadog-agent/pkg/template v0.65.1 // indirect @@ -48,8 +45,8 @@ require ( go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/collector/featuregate v1.53.0 // indirect go.opentelemetry.io/otel/metric v1.42.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -58,6 +55,7 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/time v0.14.0 // indirect google.golang.org/protobuf v1.36.11 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) retract v0.4.0 // see #107 @@ -164,6 +162,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/pkg/opentelemetry-mapping-go/otlp/logs/go.sum b/pkg/opentelemetry-mapping-go/otlp/logs/go.sum index 293f263abaa..9be4f83a819 100644 --- a/pkg/opentelemetry-mapping-go/otlp/logs/go.sum +++ b/pkg/opentelemetry-mapping-go/otlp/logs/go.sum @@ -1,5 +1,5 @@ -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/datadog-api-client-go/v2 v2.55.0 h1:wRwBJJpNRoyBJXdKtInfHXeXIo+nTn5DSIayaovRYVY= github.com/DataDog/datadog-api-client-go/v2 v2.55.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= @@ -77,10 +77,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= diff --git a/pkg/opentelemetry-mapping-go/otlp/metrics/go.mod b/pkg/opentelemetry-mapping-go/otlp/metrics/go.mod index efff438e2bb..55c66691e7c 100644 --- a/pkg/opentelemetry-mapping-go/otlp/metrics/go.mod +++ b/pkg/opentelemetry-mapping-go/otlp/metrics/go.mod @@ -47,8 +47,8 @@ require ( go.opentelemetry.io/auto/sdk v1.2.1 // indirect go.opentelemetry.io/collector/featuregate v1.53.0 // indirect go.opentelemetry.io/otel/metric v1.42.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -159,6 +159,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/pkg/opentelemetry-mapping-go/otlp/metrics/go.sum b/pkg/opentelemetry-mapping-go/otlp/metrics/go.sum index 524062a6366..bf85bc29622 100644 --- a/pkg/opentelemetry-mapping-go/otlp/metrics/go.sum +++ b/pkg/opentelemetry-mapping-go/otlp/metrics/go.sum @@ -87,10 +87,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= diff --git a/pkg/opentelemetry-mapping-go/otlp/rum/go.mod b/pkg/opentelemetry-mapping-go/otlp/rum/go.mod index c507b9c20e7..1456ab7b859 100644 --- a/pkg/opentelemetry-mapping-go/otlp/rum/go.mod +++ b/pkg/opentelemetry-mapping-go/otlp/rum/go.mod @@ -129,6 +129,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/pkg/orchestrator/model/go.mod b/pkg/orchestrator/model/go.mod index 447d142cfa8..030b0c92c4e 100644 --- a/pkg/orchestrator/model/go.mod +++ b/pkg/orchestrator/model/go.mod @@ -118,6 +118,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/orchestrator/util/go.mod b/pkg/orchestrator/util/go.mod index e14db7bfb74..a0ed195453b 100644 --- a/pkg/orchestrator/util/go.mod +++ b/pkg/orchestrator/util/go.mod @@ -116,6 +116,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/process/util/api/go.mod b/pkg/process/util/api/go.mod index c86dbd4379b..fd0256204e6 100644 --- a/pkg/process/util/api/go.mod +++ b/pkg/process/util/api/go.mod @@ -3,15 +3,13 @@ module github.com/DataDog/datadog-agent/pkg/process/util/api go 1.25.0 require ( - github.com/DataDog/agent-payload/v5 v5.0.184 + github.com/DataDog/agent-payload/v5 v5.0.191 github.com/DataDog/datadog-agent/pkg/config/utils v0.70.0 github.com/DataDog/datadog-agent/pkg/telemetry v0.64.1 github.com/gogo/protobuf v1.3.2 github.com/stretchr/testify v1.11.1 ) -require gopkg.in/yaml.v3 v3.0.1 // indirect - require ( github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect @@ -90,6 +88,7 @@ require ( golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect google.golang.org/protobuf v1.36.11 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -194,6 +193,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/pkg/process/util/api/go.sum b/pkg/process/util/api/go.sum index 30acc97f074..02a75962b7c 100644 --- a/pkg/process/util/api/go.sum +++ b/pkg/process/util/api/go.sum @@ -1,6 +1,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs= diff --git a/pkg/proto/go.mod b/pkg/proto/go.mod index 0eb5e9c90ac..b96b6197a93 100644 --- a/pkg/proto/go.mod +++ b/pkg/proto/go.mod @@ -26,13 +26,13 @@ require ( github.com/rogpeppe/go-internal v1.14.1 // indirect github.com/vmihailenco/tagparser v0.1.2 // indirect go.opentelemetry.io/otel v1.42.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect golang.org/x/net v0.52.0 // indirect golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect gonum.org/v1/gonum v0.17.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect ) @@ -138,6 +138,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/pkg/proto/go.sum b/pkg/proto/go.sum index a5e230be8cf..902f5956de2 100644 --- a/pkg/proto/go.sum +++ b/pkg/proto/go.sum @@ -58,10 +58,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -114,8 +114,8 @@ gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= diff --git a/pkg/remoteconfig/state/go.mod b/pkg/remoteconfig/state/go.mod index 55921661413..d71b7768314 100644 --- a/pkg/remoteconfig/state/go.mod +++ b/pkg/remoteconfig/state/go.mod @@ -120,6 +120,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/security/secl/go.mod b/pkg/security/secl/go.mod index db85a60cdde..b767d3f23dd 100644 --- a/pkg/security/secl/go.mod +++ b/pkg/security/secl/go.mod @@ -141,6 +141,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/security/seclwin/go.mod b/pkg/security/seclwin/go.mod index 171249c331a..3a92d6c1768 100644 --- a/pkg/security/seclwin/go.mod +++ b/pkg/security/seclwin/go.mod @@ -4,7 +4,7 @@ go 1.25.7 require ( github.com/DataDog/datadog-agent/pkg/discovery/tracermetadata/model v0.0.0-00010101000000-000000000000 - github.com/DataDog/datadog-agent/pkg/security/secl v0.56.0 + github.com/DataDog/datadog-agent/pkg/security/secl v0.56.0-rc.3 ) require ( @@ -122,6 +122,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod index 1ea3b1519e1..c22160556fa 100644 --- a/pkg/serializer/go.mod +++ b/pkg/serializer/go.mod @@ -3,7 +3,7 @@ module github.com/DataDog/datadog-agent/pkg/serializer go 1.25.0 require ( - github.com/DataDog/agent-payload/v5 v5.0.184 + github.com/DataDog/agent-payload/v5 v5.0.191 github.com/DataDog/datadog-agent/comp/core/config v0.64.0-devel github.com/DataDog/datadog-agent/comp/core/log/def v0.64.0-devel github.com/DataDog/datadog-agent/comp/core/log/mock v0.64.0-devel @@ -34,8 +34,6 @@ require ( google.golang.org/protobuf v1.36.11 ) -require gopkg.in/yaml.v3 v3.0.1 // indirect - require ( github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.61.0 // indirect @@ -141,6 +139,7 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -245,6 +244,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/pkg/serializer/go.sum b/pkg/serializer/go.sum index 1213c08a0aa..e98802a7369 100644 --- a/pkg/serializer/go.sum +++ b/pkg/serializer/go.sum @@ -1,6 +1,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= github.com/DataDog/sketches-go v1.4.8 h1:pFk9BNn+Rzv8IMIoPUttoOpOr3bJOqU3P6EP5wK+Lv8= diff --git a/pkg/ssi/testutils/go.mod b/pkg/ssi/testutils/go.mod index 4fd6c59b5ae..383bd5d7d16 100644 --- a/pkg/ssi/testutils/go.mod +++ b/pkg/ssi/testutils/go.mod @@ -135,6 +135,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/status/health/go.mod b/pkg/status/health/go.mod index 89cb59603dd..0c666fff71d 100644 --- a/pkg/status/health/go.mod +++ b/pkg/status/health/go.mod @@ -116,6 +116,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/tagger/types/go.mod b/pkg/tagger/types/go.mod index ee962b5b869..f6cbc3a7b3c 100644 --- a/pkg/tagger/types/go.mod +++ b/pkg/tagger/types/go.mod @@ -106,6 +106,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/tagset/go.mod b/pkg/tagset/go.mod index e829ce2ecda..b4089241fde 100644 --- a/pkg/tagset/go.mod +++ b/pkg/tagset/go.mod @@ -118,6 +118,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/pkg/telemetry/go.mod b/pkg/telemetry/go.mod index 365979747d3..716178901c7 100644 --- a/pkg/telemetry/go.mod +++ b/pkg/telemetry/go.mod @@ -137,6 +137,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/pkg/trace/go.mod b/pkg/trace/go.mod index 16a92143754..1ad5d559a0d 100644 --- a/pkg/trace/go.mod +++ b/pkg/trace/go.mod @@ -125,8 +125,9 @@ require ( go.opentelemetry.io/collector/pdata/pprofile v0.147.0 // indirect go.opentelemetry.io/collector/pdata/testdata v0.147.0 // indirect go.opentelemetry.io/collector/pipeline v1.53.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.opentelemetry.io/proto/otlp v1.10.0 // indirect go.uber.org/dig v1.19.0 // indirect @@ -140,7 +141,8 @@ require ( golang.org/x/sync v0.20.0 // indirect golang.org/x/text v0.35.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -245,6 +247,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/pkg/trace/go.sum b/pkg/trace/go.sum index 59c2d8b5601..0c1e15a5dc6 100644 --- a/pkg/trace/go.sum +++ b/pkg/trace/go.sum @@ -280,10 +280,10 @@ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.40.0 h1:NOy go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.40.0/go.mod h1:VL6EgVikRLcJa9ftukrHu/ZkkhFBSo1lzvdBC9CF1ss= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0 h1:9y5sHvAxWzft1WQ4BwqcvA+IFVUJ1Ya75mSAUnFEVwE= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0/go.mod h1:eQqT90eR3X5Dbs1g9YSM30RavwLF725Ris5/XSXWvqE= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 h1:DvJDOPmSWQHWywQS6lKL+pb8s3gBLOZUtw4N+mavW1I= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0/go.mod h1:EtekO9DEJb4/jRyN4v4Qjc2yA7AtfCBuz2FynRUWTXs= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 h1:ao6Oe+wSebTlQ1OEht7jlYTzQKE+pnx/iNywFvTbuuI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0/go.mod h1:u3T6vz0gh/NVzgDgiwkgLxpsSF6PaPmo2il0apGJbls= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 h1:mq/Qcf28TWz719lE3/hMB4KkyDuLJIvgJnFGcd0kEUI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0/go.mod h1:yk5LXEYhsL2htyDNJbEq7fWzNEigeEdV5xBF/Y+kAv0= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 h1:wVZXIWjQSeSmMoxF74LzAnpVQOAFDo3pPji9Y4SOFKc= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0/go.mod h1:khvBS2IggMFNwZK/6lEeHg/W57h/IX6J4URh57fuI40= go.opentelemetry.io/otel/exporters/prometheus v0.60.0 h1:cGtQxGvZbnrWdC2GyjZi0PDKVSLWP/Jocix3QWfXtbo= @@ -298,12 +298,12 @@ go.opentelemetry.io/otel/log v0.16.0 h1:DeuBPqCi6pQwtCK0pO4fvMB5eBq6sNxEnuTs88pj go.opentelemetry.io/otel/log v0.16.0/go.mod h1:rWsmqNVTLIA8UnwYVOItjyEZDbKIkMxdQunsIhpUMes= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= go.opentelemetry.io/otel/sdk/log v0.16.0 h1:e/b4bdlQwC5fnGtG3dlXUrNOnP7c8YLVSpSfEBIkTnI= go.opentelemetry.io/otel/sdk/log v0.16.0/go.mod h1:JKfP3T6ycy7QEuv3Hj8oKDy7KItrEkus8XJE6EoSzw4= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= @@ -400,10 +400,10 @@ gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= diff --git a/pkg/trace/log/go.mod b/pkg/trace/log/go.mod index 96455401699..69586caee5e 100644 --- a/pkg/trace/log/go.mod +++ b/pkg/trace/log/go.mod @@ -119,6 +119,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/trace/otel/go.mod b/pkg/trace/otel/go.mod index 4abd9100f20..dbca367f6d5 100644 --- a/pkg/trace/otel/go.mod +++ b/pkg/trace/otel/go.mod @@ -167,8 +167,8 @@ require ( go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.147.0 // indirect go.opentelemetry.io/collector/processor/xprocessor v0.147.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.19.0 // indirect @@ -186,8 +186,8 @@ require ( golang.org/x/time v0.14.0 // indirect google.golang.org/api v0.258.0 // indirect google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect ) @@ -293,6 +293,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/trace/otel/go.sum b/pkg/trace/otel/go.sum index 34d23cd709a..4dc67835770 100644 --- a/pkg/trace/otel/go.sum +++ b/pkg/trace/otel/go.sum @@ -290,10 +290,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= @@ -410,10 +410,10 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 h1:a12a2/BiVRxRWIqBbfqoSK6tgq8cyUgMnEI81QlPge0= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8/go.mod h1:1Ic78BnpzY8OaTCmzxJDP4qC9INZPbGZl+54RKjtyeI= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= diff --git a/pkg/trace/stats/go.mod b/pkg/trace/stats/go.mod index f2f231f3d4f..8fa932b0794 100644 --- a/pkg/trace/stats/go.mod +++ b/pkg/trace/stats/go.mod @@ -12,7 +12,7 @@ require ( github.com/DataDog/sketches-go v1.4.8 github.com/google/gofuzz v1.2.0 github.com/stretchr/testify v1.11.1 - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 google.golang.org/protobuf v1.36.11 ) @@ -162,6 +162,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/trace/stats/go.sum b/pkg/trace/stats/go.sum index 3e19ba776d1..a0b1cc7a3ec 100644 --- a/pkg/trace/stats/go.sum +++ b/pkg/trace/stats/go.sum @@ -149,10 +149,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= @@ -208,8 +208,8 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/trace/traceutil/go.mod b/pkg/trace/traceutil/go.mod index 5e777c35eba..866d0aeb51f 100644 --- a/pkg/trace/traceutil/go.mod +++ b/pkg/trace/traceutil/go.mod @@ -123,6 +123,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/aws/creds/go.mod b/pkg/util/aws/creds/go.mod index 4c1c51a5a2e..ec9cdf8bffb 100644 --- a/pkg/util/aws/creds/go.mod +++ b/pkg/util/aws/creds/go.mod @@ -169,6 +169,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/pkg/util/backoff/go.mod b/pkg/util/backoff/go.mod index 6dce72283c9..a6b690e9b69 100644 --- a/pkg/util/backoff/go.mod +++ b/pkg/util/backoff/go.mod @@ -116,6 +116,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/buf/go.mod b/pkg/util/buf/go.mod index 63e842c9fa6..51c93e0ebda 100644 --- a/pkg/util/buf/go.mod +++ b/pkg/util/buf/go.mod @@ -116,6 +116,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/cache/go.mod b/pkg/util/cache/go.mod index ccd4a3a43ce..e957e3f4eb8 100644 --- a/pkg/util/cache/go.mod +++ b/pkg/util/cache/go.mod @@ -119,6 +119,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/cgroups/go.mod b/pkg/util/cgroups/go.mod index cbc1448e1d6..793a779e361 100644 --- a/pkg/util/cgroups/go.mod +++ b/pkg/util/cgroups/go.mod @@ -132,6 +132,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/common/go.mod b/pkg/util/common/go.mod index e57f054db4f..cc400886b5e 100644 --- a/pkg/util/common/go.mod +++ b/pkg/util/common/go.mod @@ -116,6 +116,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/compression/go.mod b/pkg/util/compression/go.mod index 83ce31430f0..ae953d634ff 100644 --- a/pkg/util/compression/go.mod +++ b/pkg/util/compression/go.mod @@ -185,6 +185,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/containers/image/go.mod b/pkg/util/containers/image/go.mod index 6782b8af7db..1b7011389ab 100644 --- a/pkg/util/containers/image/go.mod +++ b/pkg/util/containers/image/go.mod @@ -116,6 +116,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/pkg/util/defaultpaths/go.mod b/pkg/util/defaultpaths/go.mod index 95cc4d1e6c4..e9f980c1253 100644 --- a/pkg/util/defaultpaths/go.mod +++ b/pkg/util/defaultpaths/go.mod @@ -163,6 +163,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/executable/go.mod b/pkg/util/executable/go.mod index b1de9e30a5d..b6b9c953cb6 100644 --- a/pkg/util/executable/go.mod +++ b/pkg/util/executable/go.mod @@ -116,6 +116,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/filesystem/go.mod b/pkg/util/filesystem/go.mod index 116b7afa820..ef082229b7e 100644 --- a/pkg/util/filesystem/go.mod +++ b/pkg/util/filesystem/go.mod @@ -132,6 +132,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/flavor/go.mod b/pkg/util/flavor/go.mod index 46228a0f41e..7ac97414af1 100644 --- a/pkg/util/flavor/go.mod +++ b/pkg/util/flavor/go.mod @@ -168,6 +168,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/fxutil/go.mod b/pkg/util/fxutil/go.mod index f0f2cf4417b..c2bb968d5ad 100644 --- a/pkg/util/fxutil/go.mod +++ b/pkg/util/fxutil/go.mod @@ -125,6 +125,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/grpc/go.mod b/pkg/util/grpc/go.mod index a231783d910..4404a6e8295 100644 --- a/pkg/util/grpc/go.mod +++ b/pkg/util/grpc/go.mod @@ -89,6 +89,7 @@ require ( go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 // indirect go.opentelemetry.io/otel v1.42.0 // indirect go.opentelemetry.io/otel/metric v1.42.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.19.0 // indirect @@ -106,8 +107,8 @@ require ( golang.org/x/time v0.14.0 // indirect google.golang.org/api v0.258.0 // indirect google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/protobuf v1.36.11 // indirect ) @@ -213,6 +214,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/grpc/go.sum b/pkg/util/grpc/go.sum index e9aee77cc2a..cccceb608c0 100644 --- a/pkg/util/grpc/go.sum +++ b/pkg/util/grpc/go.sum @@ -173,10 +173,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -273,10 +273,10 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8 h1:a12a2/BiVRxRWIqBbfqoSK6tgq8cyUgMnEI81QlPge0= google.golang.org/genproto v0.0.0-20251022142026-3a174f9686a8/go.mod h1:1Ic78BnpzY8OaTCmzxJDP4qC9INZPbGZl+54RKjtyeI= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= diff --git a/pkg/util/hostinfo/go.mod b/pkg/util/hostinfo/go.mod index 572e7dae92f..57f6e89a7f3 100644 --- a/pkg/util/hostinfo/go.mod +++ b/pkg/util/hostinfo/go.mod @@ -137,6 +137,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/hostname/validate/go.mod b/pkg/util/hostname/validate/go.mod index 6989ff5e356..a813116fa6e 100644 --- a/pkg/util/hostname/validate/go.mod +++ b/pkg/util/hostname/validate/go.mod @@ -122,6 +122,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/pkg/util/http/go.mod b/pkg/util/http/go.mod index 21025548ead..5d7c800d856 100644 --- a/pkg/util/http/go.mod +++ b/pkg/util/http/go.mod @@ -169,6 +169,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/json/go.mod b/pkg/util/json/go.mod index c6e766a0ac5..c60ea92333d 100644 --- a/pkg/util/json/go.mod +++ b/pkg/util/json/go.mod @@ -121,6 +121,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/jsonquery/go.mod b/pkg/util/jsonquery/go.mod index 33349f417f9..21a194f17b7 100644 --- a/pkg/util/jsonquery/go.mod +++ b/pkg/util/jsonquery/go.mod @@ -125,6 +125,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/kubernetes/apiserver/common/namespace/go.mod b/pkg/util/kubernetes/apiserver/common/namespace/go.mod index d2a4a515a91..47a53fa6ca8 100644 --- a/pkg/util/kubernetes/apiserver/common/namespace/go.mod +++ b/pkg/util/kubernetes/apiserver/common/namespace/go.mod @@ -162,6 +162,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../../../pkg/logs/status/utils diff --git a/pkg/util/log/go.mod b/pkg/util/log/go.mod index 1e115d8c792..99e82bce8ed 100644 --- a/pkg/util/log/go.mod +++ b/pkg/util/log/go.mod @@ -123,6 +123,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/log/setup/go.mod b/pkg/util/log/setup/go.mod index f8ff696a180..845e5746ee7 100644 --- a/pkg/util/log/setup/go.mod +++ b/pkg/util/log/setup/go.mod @@ -168,6 +168,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/pkg/util/option/go.mod b/pkg/util/option/go.mod index 5dc76dd83c0..1c32b8579af 100644 --- a/pkg/util/option/go.mod +++ b/pkg/util/option/go.mod @@ -116,6 +116,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/otel/go.mod b/pkg/util/otel/go.mod index 17f2b95e5ad..ef4ab850cf0 100644 --- a/pkg/util/otel/go.mod +++ b/pkg/util/otel/go.mod @@ -137,6 +137,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/otel/go.sum b/pkg/util/otel/go.sum index 1b3f0b15cb2..e2e4c80c3c8 100644 --- a/pkg/util/otel/go.sum +++ b/pkg/util/otel/go.sum @@ -52,10 +52,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= diff --git a/pkg/util/pointer/go.mod b/pkg/util/pointer/go.mod index b3900afed6b..12b523bfd50 100644 --- a/pkg/util/pointer/go.mod +++ b/pkg/util/pointer/go.mod @@ -104,6 +104,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/prometheus/go.mod b/pkg/util/prometheus/go.mod index 42117df064f..04c86fe35b5 100644 --- a/pkg/util/prometheus/go.mod +++ b/pkg/util/prometheus/go.mod @@ -33,7 +33,7 @@ require ( golang.org/x/net v0.52.0 // indirect golang.org/x/oauth2 v0.35.0 // indirect golang.org/x/text v0.35.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect k8s.io/client-go v0.35.1 // indirect @@ -142,6 +142,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/prometheus/go.sum b/pkg/util/prometheus/go.sum index c4bb63fcaea..7f46f6290b9 100644 --- a/pkg/util/prometheus/go.sum +++ b/pkg/util/prometheus/go.sum @@ -170,8 +170,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.258.0 h1:IKo1j5FBlN74fe5isA2PVozN3Y5pwNKriEgAXPOkDAc= google.golang.org/api v0.258.0/go.mod h1:qhOMTQEZ6lUps63ZNq9jhODswwjkjYYguA7fA3TBFww= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= diff --git a/pkg/util/quantile/go.mod b/pkg/util/quantile/go.mod index 6a0f93dc4d9..b9ff0ee656d 100644 --- a/pkg/util/quantile/go.mod +++ b/pkg/util/quantile/go.mod @@ -122,6 +122,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/quantile/sketchtest/go.mod b/pkg/util/quantile/sketchtest/go.mod index ea300ce742e..cd8c535f965 100644 --- a/pkg/util/quantile/sketchtest/go.mod +++ b/pkg/util/quantile/sketchtest/go.mod @@ -118,6 +118,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../../pkg/logs/status/utils diff --git a/pkg/util/scrubber/go.mod b/pkg/util/scrubber/go.mod index a71ef810dd1..b46aa6a3698 100644 --- a/pkg/util/scrubber/go.mod +++ b/pkg/util/scrubber/go.mod @@ -117,6 +117,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/sort/go.mod b/pkg/util/sort/go.mod index 081aba118f8..c7d7c5e2954 100644 --- a/pkg/util/sort/go.mod +++ b/pkg/util/sort/go.mod @@ -116,6 +116,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/startstop/go.mod b/pkg/util/startstop/go.mod index 233e3475053..b923af1459d 100644 --- a/pkg/util/startstop/go.mod +++ b/pkg/util/startstop/go.mod @@ -116,6 +116,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/statstracker/go.mod b/pkg/util/statstracker/go.mod index 24f0ae5541f..fefea07867a 100644 --- a/pkg/util/statstracker/go.mod +++ b/pkg/util/statstracker/go.mod @@ -116,6 +116,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/system/go.mod b/pkg/util/system/go.mod index d6567227810..ca2b2b8dc85 100644 --- a/pkg/util/system/go.mod +++ b/pkg/util/system/go.mod @@ -142,6 +142,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/testutil/go.mod b/pkg/util/testutil/go.mod index 96fd83f2d94..533f610cc1c 100644 --- a/pkg/util/testutil/go.mod +++ b/pkg/util/testutil/go.mod @@ -118,6 +118,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/utilizationtracker/go.mod b/pkg/util/utilizationtracker/go.mod index 75d6ffea99f..95f4dc4aea3 100644 --- a/pkg/util/utilizationtracker/go.mod +++ b/pkg/util/utilizationtracker/go.mod @@ -119,6 +119,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/uuid/go.mod b/pkg/util/uuid/go.mod index a9d968fc9e3..20797c3fd63 100644 --- a/pkg/util/uuid/go.mod +++ b/pkg/util/uuid/go.mod @@ -128,6 +128,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/util/winutil/go.mod b/pkg/util/winutil/go.mod index b844ed89936..1dc8f7ac764 100644 --- a/pkg/util/winutil/go.mod +++ b/pkg/util/winutil/go.mod @@ -125,6 +125,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils diff --git a/pkg/version/go.mod b/pkg/version/go.mod index 84381d53120..0b5053b8b32 100644 --- a/pkg/version/go.mod +++ b/pkg/version/go.mod @@ -116,6 +116,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/test/e2e-framework/go.mod b/test/e2e-framework/go.mod index e1cff996f03..38abd70a453 100644 --- a/test/e2e-framework/go.mod +++ b/test/e2e-framework/go.mod @@ -4,9 +4,9 @@ go 1.25.6 require ( dario.cat/mergo v1.0.2 - github.com/DataDog/datadog-agent/pkg/util/option v0.76.0-rc.4 - github.com/DataDog/datadog-agent/pkg/util/pointer v0.76.0-rc.4 - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.76.0-rc.4 + github.com/DataDog/datadog-agent/pkg/util/option v0.73.0-rc.9 + github.com/DataDog/datadog-agent/pkg/util/pointer v0.73.0-rc.9 + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.73.2 github.com/DataDog/datadog-agent/test/fakeintake v0.56.0-rc.3 github.com/DataDog/datadog-api-client-go/v2 v2.55.0 github.com/Masterminds/semver/v3 v3.4.0 @@ -26,8 +26,8 @@ require ( github.com/google/gofuzz v1.2.0 github.com/google/uuid v1.6.0 github.com/pkg/sftp v1.13.9 - github.com/pulumi/pulumi-aws/sdk/v7 v7.23.0 - github.com/pulumi/pulumi-awsx/sdk/v3 v3.3.1 + github.com/pulumi/pulumi-aws/sdk/v7 v7.24.0 + github.com/pulumi/pulumi-awsx/sdk/v3 v3.4.0 github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.81.0 github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.81.0 github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.81.0 @@ -42,7 +42,7 @@ require ( github.com/pulumi/pulumi-libvirt/sdk v0.5.4 github.com/pulumi/pulumi-random/sdk/v4 v4.18.4 github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1 - github.com/pulumi/pulumi/sdk/v3 v3.225.0 + github.com/pulumi/pulumi/sdk/v3 v3.226.0 github.com/pulumiverse/pulumi-time/sdk v0.1.0 github.com/samber/lo v1.52.0 github.com/stretchr/testify v1.11.1 @@ -60,15 +60,15 @@ require ( require ( github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect - github.com/DataDog/agent-payload/v5 v5.0.184 // indirect - github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.76.0-rc.4 // indirect + github.com/DataDog/agent-payload/v5 v5.0.191 // indirect + github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.73.0-rc.9 // indirect github.com/DataDog/datadog-agent/comp/netflow/payload v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/metrics v0.76.0-rc.4 // indirect + github.com/DataDog/datadog-agent/pkg/metrics v0.73.0-rc.9 // indirect github.com/DataDog/datadog-agent/pkg/network/payload v0.0.0-20250128160050-7ac9ccd58c07 // indirect github.com/DataDog/datadog-agent/pkg/networkpath/payload v0.0.0-20250128160050-7ac9ccd58c07 // indirect - github.com/DataDog/datadog-agent/pkg/proto v0.76.0-rc.4 // indirect - github.com/DataDog/datadog-agent/pkg/tagger/types v0.76.0-rc.4 // indirect - github.com/DataDog/datadog-agent/pkg/version v0.76.0-rc.4 // indirect + github.com/DataDog/datadog-agent/pkg/proto v0.74.1 // indirect + github.com/DataDog/datadog-agent/pkg/tagger/types v0.73.0-rc.9 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.73.2 // indirect github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect github.com/DataDog/zstd v1.5.7 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect @@ -101,16 +101,17 @@ require ( github.com/cenkalti/backoff v2.2.1+incompatible // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chai2010/gettext-go v1.0.2 // indirect - github.com/charmbracelet/bubbles v0.21.0 // indirect + github.com/charmbracelet/bubbles v1.0.0 // indirect github.com/charmbracelet/bubbletea v1.3.10 // indirect - github.com/charmbracelet/colorprofile v0.3.1 // indirect + github.com/charmbracelet/colorprofile v0.4.2 // indirect github.com/charmbracelet/lipgloss v1.1.0 // indirect - github.com/charmbracelet/x/ansi v0.10.1 // indirect - github.com/charmbracelet/x/cellbuf v0.0.13 // indirect - github.com/charmbracelet/x/term v0.2.1 // indirect + github.com/charmbracelet/x/ansi v0.11.6 // indirect + github.com/charmbracelet/x/cellbuf v0.0.15 // indirect + github.com/charmbracelet/x/term v0.2.2 // indirect github.com/cheggaaa/pb v1.0.29 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/clipperhouse/uax29/v2 v2.2.0 // indirect + github.com/clipperhouse/displaywidth v0.11.0 // indirect + github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/cloudflare/circl v1.6.3 // indirect github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect @@ -175,11 +176,11 @@ require ( github.com/klauspost/compress v1.18.4 // indirect github.com/kr/fs v0.1.0 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect - github.com/lucasb-eyer/go-colorful v1.2.0 // indirect + github.com/lucasb-eyer/go-colorful v1.3.0 // indirect github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-localereader v0.0.1 // indirect - github.com/mattn/go-runewidth v0.0.19 // indirect + github.com/mattn/go-runewidth v0.0.20 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect @@ -240,11 +241,11 @@ require ( go.opentelemetry.io/collector/pdata v1.53.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 // indirect go.opentelemetry.io/otel v1.42.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 // indirect go.opentelemetry.io/otel/metric v1.42.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.opentelemetry.io/proto/otlp v1.10.0 // indirect go.uber.org/atomic v1.11.0 // indirect @@ -258,8 +259,8 @@ require ( golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect golang.org/x/tools v0.43.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect @@ -384,6 +385,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/test/e2e-framework/go.sum b/test/e2e-framework/go.sum index 2acfd525f7e..6ff2394b1c5 100644 --- a/test/e2e-framework/go.sum +++ b/test/e2e-framework/go.sum @@ -4,8 +4,8 @@ github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEK github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk= github.com/BurntSushi/toml v1.6.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/datadog-api-client-go/v2 v2.55.0 h1:wRwBJJpNRoyBJXdKtInfHXeXIo+nTn5DSIayaovRYVY= github.com/DataDog/datadog-api-client-go/v2 v2.55.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= @@ -91,6 +91,8 @@ github.com/aws/smithy-go v1.24.2 h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng= github.com/aws/smithy-go v1.24.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= +github.com/bazelbuild/buildtools v0.0.0-20260211083412-859bfffeef82 h1:PmoVmwzAnGb0iCjulb7Mgsaqw2Wj36LQJ8VyYaFe/ak= +github.com/bazelbuild/buildtools v0.0.0-20260211083412-859bfffeef82/go.mod h1:PLNUetjLa77TCCziPsz0EI8a6CUxgC+1jgmWv0H25tg= github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -107,26 +109,28 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= -github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs= -github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg= +github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc= +github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E= github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw= github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4= -github.com/charmbracelet/colorprofile v0.3.1 h1:k8dTHMd7fgw4bnFd7jXTLZrSU/CQrKnL3m+AxCzDz40= -github.com/charmbracelet/colorprofile v0.3.1/go.mod h1:/GkGusxNs8VB/RSOh3fu0TJmQ4ICMMPApIIVn0KszZ0= +github.com/charmbracelet/colorprofile v0.4.2 h1:BdSNuMjRbotnxHSfxy+PCSa4xAmz7szw70ktAtWRYrY= +github.com/charmbracelet/colorprofile v0.4.2/go.mod h1:0rTi81QpwDElInthtrQ6Ni7cG0sDtwAd4C4le060fT8= github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY= github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30= -github.com/charmbracelet/x/ansi v0.10.1 h1:rL3Koar5XvX0pHGfovN03f5cxLbCF2YvLeyz7D2jVDQ= -github.com/charmbracelet/x/ansi v0.10.1/go.mod h1:3RQDQ6lDnROptfpWuUVIUG64bD2g2BgntdxH0Ya5TeE= -github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k= -github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= -github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= -github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= +github.com/charmbracelet/x/ansi v0.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8= +github.com/charmbracelet/x/ansi v0.11.6/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ= +github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI= +github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q= +github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk= +github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI= github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo= github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/clipperhouse/uax29/v2 v2.2.0 h1:ChwIKnQN3kcZteTXMgb1wztSgaU+ZemkgWdohwgs8tY= -github.com/clipperhouse/uax29/v2 v2.2.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= +github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSEFgwIwO+UVM8= +github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0= +github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk= +github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8= github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= @@ -178,6 +182,14 @@ github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= +github.com/git-pkgs/manifests v0.4.1 h1:CWml+TrRXVzrfNJ2pTNKLqyi+9y/BFiQP/BX3pL4pPQ= +github.com/git-pkgs/manifests v0.4.1/go.mod h1:7SPFwU9diUG1Az682/p4ZupHJkfpbWKwRvNPwCcOeVs= +github.com/git-pkgs/packageurl-go v0.2.1 h1:j6VnjJiYS9b1nTLfJGsG6SLaA7Nk6Io+ta8grOyTa4o= +github.com/git-pkgs/packageurl-go v0.2.1/go.mod h1:rcIxiG37BlQLB6FZfgdj9Fm7yjhRQd3l+5o7J0QPAk4= +github.com/git-pkgs/purl v0.1.8 h1:iyjEHM2WIZUL9A3+q9ylrabqILsN4nOay9X6jfEjmzQ= +github.com/git-pkgs/purl v0.1.8/go.mod h1:ihlHw3bnSLXat+9Nl9MsJZBYiG7s3NkwmvE3L/Es/sI= +github.com/git-pkgs/vers v0.2.2 h1:42QkiIURhGN2wM8AuYYU+FbzS1YV6jmdGd1RiFp7gXs= +github.com/git-pkgs/vers v0.2.2/go.mod h1:biTbSQK1qdbrsxDEKnqe3Jzclxz8vW6uDcwKjfUGcOo= github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c= github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU= github.com/go-errors/errors v1.5.1 h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk= @@ -303,8 +315,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= -github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag= +github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= @@ -315,8 +327,8 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= -github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= +github.com/mattn/go-runewidth v0.0.20 h1:WcT52H91ZUAwy8+HUkdM3THM6gXqXuLJi9O3rjcQQaQ= +github.com/mattn/go-runewidth v0.0.20/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= @@ -399,10 +411,10 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435 github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.17.0 h1:oaVOIyFTENlYDuqc3pW75lQT9jb2cd6ie/4/Twxn66w= github.com/pulumi/esc v0.17.0/go.mod h1:XnSxlt5NkmuAj304l/gK4pRErFbtqq6XpfX1tYT9Jbc= -github.com/pulumi/pulumi-aws/sdk/v7 v7.23.0 h1:G4x1vd3JgtuEmzWF8h6Yoo2wYDB3ydZT/XxNaPxJ8PU= -github.com/pulumi/pulumi-aws/sdk/v7 v7.23.0/go.mod h1:XDXYVcBL20h4r2kXzpD34pB6gVcyb7MSG1DQP91gzFE= -github.com/pulumi/pulumi-awsx/sdk/v3 v3.3.1 h1:vwRcPmkTjjAXLONPb5jT/4GLvas8QwQqRJMWSF8gt44= -github.com/pulumi/pulumi-awsx/sdk/v3 v3.3.1/go.mod h1:2/RMtCM6nOYsWHV0rFZRze7PdSMIKM61ZHbDGEwMaOs= +github.com/pulumi/pulumi-aws/sdk/v7 v7.24.0 h1:uJDYEl9qrRphoSuEsKCF17s1TCkBDiSfvu9x+vy9Txs= +github.com/pulumi/pulumi-aws/sdk/v7 v7.24.0/go.mod h1:pYRTcQdbWtYw77VEsiRDsE3GMKlK3jI+S7dBpXxF+qs= +github.com/pulumi/pulumi-awsx/sdk/v3 v3.4.0 h1:Xl7UGZI6XAFNdNNAmL22eDC00cAEPSXWKlZ7FlW+5ew= +github.com/pulumi/pulumi-awsx/sdk/v3 v3.4.0/go.mod h1:2/RMtCM6nOYsWHV0rFZRze7PdSMIKM61ZHbDGEwMaOs= github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.81.0 h1:Njext/i2DuW6k9qMj7WJmIBuw7PLZ8ccTYEtU3PbX5s= github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.81.0/go.mod h1:ef8sOceyTKmnts+QOHAymAVLWXNtKljgl27oOYcq978= github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.81.0 h1:xvUrVxwjfhaZCeohnMQN/cTSFKfZGIXsneEWFbtdBXY= @@ -433,8 +445,8 @@ github.com/pulumi/pulumi-random/sdk/v4 v4.18.4 h1:mkZ3nB3xLTFZ8Fbh50bXTxiroGpjSy github.com/pulumi/pulumi-random/sdk/v4 v4.18.4/go.mod h1:BBVUyqFkhCbwvUSnDjubH5b+SeJeoMQH4COGNKaaoUI= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1 h1:tXemWrzeVTqG8zq6hBdv1TdPFXjgZ+dob63a/6GlF1o= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1/go.mod h1:hODo3iEmmXDFOXqPK+V+vwI0a3Ww7BLjs5Tgamp86Ng= -github.com/pulumi/pulumi/sdk/v3 v3.225.0 h1:I6UJRZmySxVVtJ7fCDE4A6BaHPIy+dzKknSAPNOF+80= -github.com/pulumi/pulumi/sdk/v3 v3.225.0/go.mod h1:kiwkjulVm9ibqTOcyrZYhaRZsDSxWpzIKPXtCFeffBE= +github.com/pulumi/pulumi/sdk/v3 v3.226.0 h1:C24HWnoJSspq/KweSkAAAqWht/5pEkDanoxHe0al/dM= +github.com/pulumi/pulumi/sdk/v3 v3.226.0/go.mod h1:l88lS+aGRt37BD/nyPMEOYw+RmjG5baSH7eLtmTKpy0= github.com/pulumiverse/pulumi-time/sdk v0.1.0 h1:xfi9HKDgV+GgDxQ23oSv9KxC3DQqViGTcMrJICRgJv0= github.com/pulumiverse/pulumi-time/sdk v0.1.0/go.mod h1:NUa1zA74DF002WrM6iF111A6UjX9knPpXufVRvBwNyg= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= @@ -516,18 +528,18 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 h1:7iP2uCb go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0/go.mod h1:c7hN3ddxs/z6q9xwvfLPk+UHlWRQyaeR1LdgfL/66l0= go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 h1:DvJDOPmSWQHWywQS6lKL+pb8s3gBLOZUtw4N+mavW1I= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0/go.mod h1:EtekO9DEJb4/jRyN4v4Qjc2yA7AtfCBuz2FynRUWTXs= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 h1:ao6Oe+wSebTlQ1OEht7jlYTzQKE+pnx/iNywFvTbuuI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0/go.mod h1:u3T6vz0gh/NVzgDgiwkgLxpsSF6PaPmo2il0apGJbls= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 h1:mq/Qcf28TWz719lE3/hMB4KkyDuLJIvgJnFGcd0kEUI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0/go.mod h1:yk5LXEYhsL2htyDNJbEq7fWzNEigeEdV5xBF/Y+kAv0= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 h1:wVZXIWjQSeSmMoxF74LzAnpVQOAFDo3pPji9Y4SOFKc= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0/go.mod h1:khvBS2IggMFNwZK/6lEeHg/W57h/IX6J4URh57fuI40= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= @@ -672,10 +684,10 @@ gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= diff --git a/test/fakeintake/go.mod b/test/fakeintake/go.mod index df1865c534f..52eafb6a9e2 100644 --- a/test/fakeintake/go.mod +++ b/test/fakeintake/go.mod @@ -5,7 +5,7 @@ go 1.25.0 // every datadog-agent module replaced in the fakeintake go.mod needs to be copied in the Dockerfile require ( - github.com/DataDog/agent-payload/v5 v5.0.184 + github.com/DataDog/agent-payload/v5 v5.0.191 github.com/DataDog/datadog-agent/comp/netflow/payload v0.56.0-rc.3 github.com/DataDog/datadog-agent/pkg/metrics v0.64.0 github.com/DataDog/datadog-agent/pkg/networkpath/payload v0.0.0-20250128160050-7ac9ccd58c07 @@ -24,8 +24,6 @@ require ( google.golang.org/protobuf v1.36.11 ) -require gopkg.in/yaml.v3 v3.0.1 // indirect - require ( github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.62.0-rc.7 // indirect github.com/DataDog/datadog-agent/pkg/network/payload v0.0.0-20250128160050-7ac9ccd58c07 // indirect @@ -34,13 +32,13 @@ require ( github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/clipperhouse/uax29/v2 v2.2.0 // indirect + github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/klauspost/compress v1.18.4 // indirect github.com/kr/text v0.2.0 // indirect - github.com/mattn/go-runewidth v0.0.19 // indirect + github.com/mattn/go-runewidth v0.0.20 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/philhofer/fwd v1.2.0 // indirect github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect @@ -53,6 +51,7 @@ require ( go.yaml.in/yaml/v2 v2.4.3 // indirect golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -157,6 +156,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/test/fakeintake/go.sum b/test/fakeintake/go.sum index bdbd3b02594..e019838215d 100644 --- a/test/fakeintake/go.sum +++ b/test/fakeintake/go.sum @@ -1,5 +1,5 @@ -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ= github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg= github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE= @@ -14,8 +14,8 @@ github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1x github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/clipperhouse/uax29/v2 v2.2.0 h1:ChwIKnQN3kcZteTXMgb1wztSgaU+ZemkgWdohwgs8tY= -github.com/clipperhouse/uax29/v2 v2.2.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= +github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk= +github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -43,8 +43,8 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= -github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= +github.com/mattn/go-runewidth v0.0.20 h1:WcT52H91ZUAwy8+HUkdM3THM6gXqXuLJi9O3rjcQQaQ= +github.com/mattn/go-runewidth v0.0.20/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod index 2d22fe58066..4956cee04d7 100644 --- a/test/new-e2e/go.mod +++ b/test/new-e2e/go.mod @@ -2,13 +2,17 @@ module github.com/DataDog/datadog-agent/test/new-e2e go 1.25.6 +// Do not upgrade Pulumi plugins to versions different from `test-infra-definitions`. +// The plugin versions NEED to be aligned. +// TODO: Implement hard check in CI + require ( - github.com/DataDog/agent-payload/v5 v5.0.184 - github.com/DataDog/datadog-agent/pkg/util/option v0.76.0-rc.4 - github.com/DataDog/datadog-agent/pkg/util/pointer v0.76.0-rc.4 - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.76.0-rc.4 // indirect + github.com/DataDog/agent-payload/v5 v5.0.191 + github.com/DataDog/datadog-agent/pkg/util/option v0.73.0-rc.9 + github.com/DataDog/datadog-agent/pkg/util/pointer v0.73.0-rc.9 + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.73.2 // indirect github.com/DataDog/datadog-agent/pkg/util/testutil v0.72.0-devel - github.com/DataDog/datadog-agent/pkg/version v0.76.0-rc.4 + github.com/DataDog/datadog-agent/pkg/version v0.73.2 github.com/DataDog/datadog-agent/test/e2e-framework v0.0.6-0.20251107170748-5d4ea60490c6 github.com/DataDog/datadog-agent/test/fakeintake v0.56.0-rc.3 github.com/DataDog/datadog-api-client-go v1.16.0 @@ -26,14 +30,11 @@ require ( github.com/google/uuid v1.6.0 github.com/kr/pretty v0.3.1 github.com/pkg/sftp v1.13.9 // indirect - github.com/pulumi/pulumi-aws/sdk/v7 v7.23.0 - github.com/pulumi/pulumi-awsx/sdk/v3 v3.3.1 github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.23.0 - github.com/pulumi/pulumi/sdk/v3 v3.225.0 + github.com/pulumi/pulumi/sdk/v3 v3.226.0 github.com/samber/lo v1.52.0 github.com/stretchr/testify v1.11.1 github.com/xeipuuv/gojsonschema v1.2.0 - go.yaml.in/yaml/v2 v2.4.3 golang.org/x/crypto v0.49.0 golang.org/x/sys v0.42.0 golang.org/x/term v0.41.0 @@ -49,7 +50,7 @@ require ( dario.cat/mergo v1.0.2 // indirect github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect github.com/DataDog/datadog-agent/comp/netflow/payload v0.56.0-rc.3 // indirect - github.com/DataDog/datadog-agent/pkg/proto v0.76.0-rc.4 + github.com/DataDog/datadog-agent/pkg/proto v0.74.1 github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect github.com/DataDog/zstd v1.5.7 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect @@ -78,7 +79,7 @@ require ( github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/blang/semver v3.5.1+incompatible // indirect github.com/chai2010/gettext-go v1.0.2 // indirect - github.com/charmbracelet/bubbles v0.21.0 // indirect + github.com/charmbracelet/bubbles v1.0.0 // indirect github.com/charmbracelet/bubbletea v1.3.10 // indirect github.com/charmbracelet/lipgloss v1.1.0 // indirect github.com/cloudflare/circl v1.6.3 // indirect @@ -122,11 +123,11 @@ require ( github.com/kr/fs v0.1.0 // indirect github.com/kr/text v0.2.0 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect - github.com/lucasb-eyer/go-colorful v1.2.0 // indirect + github.com/lucasb-eyer/go-colorful v1.3.0 // indirect github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-localereader v0.0.1 // indirect - github.com/mattn/go-runewidth v0.0.19 // indirect + github.com/mattn/go-runewidth v0.0.20 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/moby/spdystream v0.5.0 // indirect @@ -179,7 +180,6 @@ require ( go.opentelemetry.io/otel/metric v1.42.0 // indirect go.opentelemetry.io/otel/trace v1.42.0 // indirect go.uber.org/atomic v1.11.0 // indirect - go.yaml.in/yaml/v3 v3.0.4 golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 golang.org/x/mod v0.34.0 golang.org/x/net v0.52.0 @@ -188,12 +188,13 @@ require ( golang.org/x/text v0.35.0 golang.org/x/time v0.14.0 // indirect golang.org/x/tools v0.43.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect + gopkg.in/yaml.v3 v3.0.1 k8s.io/component-base v0.35.0 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20251125145642-4e65d59e963e // indirect @@ -206,13 +207,13 @@ require ( ) require ( - github.com/DataDog/datadog-agent/comp/core/tagger/types v0.76.0-rc.4 + github.com/DataDog/datadog-agent/comp/core/tagger/types v0.73.0-rc.9 github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/types v0.65.0-devel github.com/DataDog/datadog-agent/pkg/fleet/installer v0.77.0-devel.0.20260211235139-a5361978c2b6 - github.com/DataDog/datadog-agent/pkg/metrics v0.76.0-rc.4 + github.com/DataDog/datadog-agent/pkg/metrics v0.73.0-rc.9 github.com/DataDog/datadog-agent/pkg/networkpath/payload v0.0.0-20250128160050-7ac9ccd58c07 github.com/DataDog/datadog-agent/pkg/ssi/testutils v0.77.0-devel.0.20260211235139-a5361978c2b6 - github.com/DataDog/datadog-agent/pkg/trace v0.76.0-rc.4 + github.com/DataDog/datadog-agent/pkg/trace v0.73.0-rc.9 github.com/DataDog/datadog-go/v5 v5.8.3 github.com/DataDog/dd-trace-go/v2 v2.5.0 github.com/DataDog/orchestrion v1.4.0 @@ -223,7 +224,10 @@ require ( github.com/go-viper/mapstructure/v2 v2.5.0 github.com/google/go-containerregistry v0.20.7 github.com/hairyhenderson/go-codeowners v0.7.0 - gopkg.in/yaml.v3 v3.0.1 + github.com/pulumi/pulumi-aws/sdk/v7 v7.24.0 + github.com/pulumi/pulumi-awsx/sdk/v3 v3.4.0 + go.yaml.in/yaml/v2 v2.4.3 + go.yaml.in/yaml/v3 v3.0.4 ) require ( @@ -238,22 +242,21 @@ require ( github.com/go-openapi/swag/stringutils v0.25.4 // indirect github.com/go-openapi/swag/typeutils v0.25.4 // indirect github.com/go-openapi/swag/yamlutils v0.25.4 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect ) require ( - github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.76.0-rc.4 // indirect - github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.76.0-rc.4 // indirect + github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.73.0-rc.9 // indirect + github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.73.0-rc.9 // indirect github.com/DataDog/datadog-agent/pkg/network/payload v0.0.0-20250128160050-7ac9ccd58c07 // indirect - github.com/DataDog/datadog-agent/pkg/obfuscate v0.76.0-rc.4 // indirect - github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.76.0-rc.4 // indirect - github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.76.0-rc.4 // indirect - github.com/DataDog/datadog-agent/pkg/tagger/types v0.76.0-rc.4 // indirect - github.com/DataDog/datadog-agent/pkg/template v0.76.0-rc.4 // indirect + github.com/DataDog/datadog-agent/pkg/obfuscate v0.73.0-rc.9 // indirect + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.73.0-rc.9 // indirect + github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.73.0-rc.9 // indirect + github.com/DataDog/datadog-agent/pkg/tagger/types v0.73.0-rc.9 // indirect + github.com/DataDog/datadog-agent/pkg/template v0.73.2 // indirect github.com/DataDog/datadog-agent/pkg/trace/log v0.77.0-devel.0.20260211235139-a5361978c2b6 // indirect github.com/DataDog/datadog-agent/pkg/trace/stats v0.77.0-devel.0.20260211235139-a5361978c2b6 // indirect github.com/DataDog/datadog-agent/pkg/trace/traceutil v0.77.0-devel.0.20260211235139-a5361978c2b6 // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.76.0-rc.4 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.73.2 // indirect github.com/DataDog/go-libddwaf/v4 v4.8.0 // indirect github.com/DataDog/go-runtime-metrics-internal v0.0.4-0.20250721125240-fdf1ef85b633 // indirect github.com/DataDog/go-sqllexer v0.2.1 // indirect @@ -268,13 +271,14 @@ require ( github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb // indirect github.com/blang/semver/v4 v4.0.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/charmbracelet/colorprofile v0.3.1 // indirect - github.com/charmbracelet/x/ansi v0.10.1 // indirect - github.com/charmbracelet/x/cellbuf v0.0.13 // indirect - github.com/charmbracelet/x/term v0.2.1 // indirect + github.com/charmbracelet/colorprofile v0.4.2 // indirect + github.com/charmbracelet/x/ansi v0.11.6 // indirect + github.com/charmbracelet/x/cellbuf v0.0.15 // indirect + github.com/charmbracelet/x/term v0.2.2 // indirect github.com/cheggaaa/pb v1.0.29 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect - github.com/clipperhouse/uax29/v2 v2.2.0 // indirect + github.com/clipperhouse/displaywidth v0.11.0 // indirect + github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect github.com/containerd/stargz-snapshotter/estargz v0.18.1 // indirect @@ -289,6 +293,7 @@ require ( github.com/go-ole/go-ole v1.3.0 // indirect github.com/goccy/go-yaml v1.19.2 // indirect github.com/google/go-tpm v0.9.8 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect github.com/hashicorp/go-version v1.8.0 // indirect github.com/iwdgo/sigintwindows v0.2.2 // indirect github.com/jmespath/go-jmespath v0.4.1-0.20220621161143-b0104c826a24 // indirect @@ -342,14 +347,14 @@ require ( go.opentelemetry.io/collector/featuregate v1.53.0 // indirect go.opentelemetry.io/collector/pdata v1.53.0 // indirect go.opentelemetry.io/collector/pdata/pprofile v0.147.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 // indirect - go.opentelemetry.io/otel/sdk v1.40.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 // indirect + go.opentelemetry.io/otel/sdk v1.41.0 // indirect go.opentelemetry.io/proto/otlp v1.10.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.1 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect sigs.k8s.io/randfill v1.0.0 // indirect sigs.k8s.io/structured-merge-diff/v6 v6.3.2-0.20260122202528-d9cc6641c482 // indirect @@ -457,6 +462,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum index 398f8dd19d1..0783c128534 100644 --- a/test/new-e2e/go.sum +++ b/test/new-e2e/go.sum @@ -4,8 +4,8 @@ github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEK github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v1.6.0 h1:dRaEfpa2VI55EwlIW72hMRHdWouJeRF7TPYhI+AUQjk= github.com/BurntSushi/toml v1.6.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/datadog-api-client-go v1.16.0 h1:5jOZv1m98criCvYTa3qpW8Hzv301nbZX3K9yJtwGyWY= github.com/DataDog/datadog-api-client-go v1.16.0/go.mod h1:PgrP2ABuJWL3Auw2iEkemAJ/r72ghG4DQQmb5sgnKW4= github.com/DataDog/datadog-api-client-go/v2 v2.55.0 h1:wRwBJJpNRoyBJXdKtInfHXeXIo+nTn5DSIayaovRYVY= @@ -116,6 +116,8 @@ github.com/aws/smithy-go v1.24.2 h1:FzA3bu/nt/vDvmnkg+R8Xl46gmzEDam6mZ1hzmwXFng= github.com/aws/smithy-go v1.24.2/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= +github.com/bazelbuild/buildtools v0.0.0-20260211083412-859bfffeef82 h1:PmoVmwzAnGb0iCjulb7Mgsaqw2Wj36LQJ8VyYaFe/ak= +github.com/bazelbuild/buildtools v0.0.0-20260211083412-859bfffeef82/go.mod h1:PLNUetjLa77TCCziPsz0EI8a6CUxgC+1jgmWv0H25tg= github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -135,26 +137,28 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= -github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs= -github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg= +github.com/charmbracelet/bubbles v1.0.0 h1:12J8/ak/uCZEMQ6KU7pcfwceyjLlWsDLAxB5fXonfvc= +github.com/charmbracelet/bubbles v1.0.0/go.mod h1:9d/Zd5GdnauMI5ivUIVisuEm3ave1XwXtD1ckyV6r3E= github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw= github.com/charmbracelet/bubbletea v1.3.10/go.mod h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4= -github.com/charmbracelet/colorprofile v0.3.1 h1:k8dTHMd7fgw4bnFd7jXTLZrSU/CQrKnL3m+AxCzDz40= -github.com/charmbracelet/colorprofile v0.3.1/go.mod h1:/GkGusxNs8VB/RSOh3fu0TJmQ4ICMMPApIIVn0KszZ0= +github.com/charmbracelet/colorprofile v0.4.2 h1:BdSNuMjRbotnxHSfxy+PCSa4xAmz7szw70ktAtWRYrY= +github.com/charmbracelet/colorprofile v0.4.2/go.mod h1:0rTi81QpwDElInthtrQ6Ni7cG0sDtwAd4C4le060fT8= github.com/charmbracelet/lipgloss v1.1.0 h1:vYXsiLHVkK7fp74RkV7b2kq9+zDLoEU4MZoFqR/noCY= github.com/charmbracelet/lipgloss v1.1.0/go.mod h1:/6Q8FR2o+kj8rz4Dq0zQc3vYf7X+B0binUUBwA0aL30= -github.com/charmbracelet/x/ansi v0.10.1 h1:rL3Koar5XvX0pHGfovN03f5cxLbCF2YvLeyz7D2jVDQ= -github.com/charmbracelet/x/ansi v0.10.1/go.mod h1:3RQDQ6lDnROptfpWuUVIUG64bD2g2BgntdxH0Ya5TeE= -github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k= -github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= -github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= -github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= +github.com/charmbracelet/x/ansi v0.11.6 h1:GhV21SiDz/45W9AnV2R61xZMRri5NlLnl6CVF7ihZW8= +github.com/charmbracelet/x/ansi v0.11.6/go.mod h1:2JNYLgQUsyqaiLovhU2Rv/pb8r6ydXKS3NIttu3VGZQ= +github.com/charmbracelet/x/cellbuf v0.0.15 h1:ur3pZy0o6z/R7EylET877CBxaiE1Sp1GMxoFPAIztPI= +github.com/charmbracelet/x/cellbuf v0.0.15/go.mod h1:J1YVbR7MUuEGIFPCaaZ96KDl5NoS0DAWkskup+mOY+Q= +github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk= +github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI= github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo= github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/clipperhouse/uax29/v2 v2.2.0 h1:ChwIKnQN3kcZteTXMgb1wztSgaU+ZemkgWdohwgs8tY= -github.com/clipperhouse/uax29/v2 v2.2.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= +github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSEFgwIwO+UVM8= +github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0= +github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk= +github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8= github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= @@ -230,6 +234,14 @@ github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= +github.com/git-pkgs/manifests v0.4.1 h1:CWml+TrRXVzrfNJ2pTNKLqyi+9y/BFiQP/BX3pL4pPQ= +github.com/git-pkgs/manifests v0.4.1/go.mod h1:7SPFwU9diUG1Az682/p4ZupHJkfpbWKwRvNPwCcOeVs= +github.com/git-pkgs/packageurl-go v0.2.1 h1:j6VnjJiYS9b1nTLfJGsG6SLaA7Nk6Io+ta8grOyTa4o= +github.com/git-pkgs/packageurl-go v0.2.1/go.mod h1:rcIxiG37BlQLB6FZfgdj9Fm7yjhRQd3l+5o7J0QPAk4= +github.com/git-pkgs/purl v0.1.8 h1:iyjEHM2WIZUL9A3+q9ylrabqILsN4nOay9X6jfEjmzQ= +github.com/git-pkgs/purl v0.1.8/go.mod h1:ihlHw3bnSLXat+9Nl9MsJZBYiG7s3NkwmvE3L/Es/sI= +github.com/git-pkgs/vers v0.2.2 h1:42QkiIURhGN2wM8AuYYU+FbzS1YV6jmdGd1RiFp7gXs= +github.com/git-pkgs/vers v0.2.2/go.mod h1:biTbSQK1qdbrsxDEKnqe3Jzclxz8vW6uDcwKjfUGcOo= github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c= github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU= github.com/go-errors/errors v1.5.1 h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk= @@ -374,8 +386,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= -github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag= +github.com/lucasb-eyer/go-colorful v1.3.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 h1:PwQumkgq4/acIiZhtifTV5OUqqiP82UAl0h87xj/l9k= github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3/go.mod h1:autxFIvghDt3jPTLoqZ9OZ7s9qTGNAWmYCjVFWPX/zg= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -391,8 +403,8 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= -github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= +github.com/mattn/go-runewidth v0.0.20 h1:WcT52H91ZUAwy8+HUkdM3THM6gXqXuLJi9O3rjcQQaQ= +github.com/mattn/go-runewidth v0.0.20/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/minio/highwayhash v1.0.3 h1:kbnuUMoHYyVl7szWjSxJnxw11k2U709jqFPPmIUyD6Q= github.com/minio/highwayhash v1.0.3/go.mod h1:GGYsuwP/fPD6Y9hMiXuapVvlIUEhFhMTh0rxU3ik1LQ= github.com/minio/simdjson-go v0.4.5 h1:r4IQwjRGmWCQ2VeMc7fGiilu1z5du0gJ/I/FsKwgo5A= @@ -500,10 +512,10 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435 github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.17.0 h1:oaVOIyFTENlYDuqc3pW75lQT9jb2cd6ie/4/Twxn66w= github.com/pulumi/esc v0.17.0/go.mod h1:XnSxlt5NkmuAj304l/gK4pRErFbtqq6XpfX1tYT9Jbc= -github.com/pulumi/pulumi-aws/sdk/v7 v7.23.0 h1:G4x1vd3JgtuEmzWF8h6Yoo2wYDB3ydZT/XxNaPxJ8PU= -github.com/pulumi/pulumi-aws/sdk/v7 v7.23.0/go.mod h1:XDXYVcBL20h4r2kXzpD34pB6gVcyb7MSG1DQP91gzFE= -github.com/pulumi/pulumi-awsx/sdk/v3 v3.3.1 h1:vwRcPmkTjjAXLONPb5jT/4GLvas8QwQqRJMWSF8gt44= -github.com/pulumi/pulumi-awsx/sdk/v3 v3.3.1/go.mod h1:2/RMtCM6nOYsWHV0rFZRze7PdSMIKM61ZHbDGEwMaOs= +github.com/pulumi/pulumi-aws/sdk/v7 v7.24.0 h1:uJDYEl9qrRphoSuEsKCF17s1TCkBDiSfvu9x+vy9Txs= +github.com/pulumi/pulumi-aws/sdk/v7 v7.24.0/go.mod h1:pYRTcQdbWtYw77VEsiRDsE3GMKlK3jI+S7dBpXxF+qs= +github.com/pulumi/pulumi-awsx/sdk/v3 v3.4.0 h1:Xl7UGZI6XAFNdNNAmL22eDC00cAEPSXWKlZ7FlW+5ew= +github.com/pulumi/pulumi-awsx/sdk/v3 v3.4.0/go.mod h1:2/RMtCM6nOYsWHV0rFZRze7PdSMIKM61ZHbDGEwMaOs= github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.81.0 h1:Njext/i2DuW6k9qMj7WJmIBuw7PLZ8ccTYEtU3PbX5s= github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.81.0/go.mod h1:ef8sOceyTKmnts+QOHAymAVLWXNtKljgl27oOYcq978= github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.81.0 h1:xvUrVxwjfhaZCeohnMQN/cTSFKfZGIXsneEWFbtdBXY= @@ -534,8 +546,8 @@ github.com/pulumi/pulumi-random/sdk/v4 v4.18.4 h1:mkZ3nB3xLTFZ8Fbh50bXTxiroGpjSy github.com/pulumi/pulumi-random/sdk/v4 v4.18.4/go.mod h1:BBVUyqFkhCbwvUSnDjubH5b+SeJeoMQH4COGNKaaoUI= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1 h1:tXemWrzeVTqG8zq6hBdv1TdPFXjgZ+dob63a/6GlF1o= github.com/pulumi/pulumi-tls/sdk/v4 v4.11.1/go.mod h1:hODo3iEmmXDFOXqPK+V+vwI0a3Ww7BLjs5Tgamp86Ng= -github.com/pulumi/pulumi/sdk/v3 v3.225.0 h1:I6UJRZmySxVVtJ7fCDE4A6BaHPIy+dzKknSAPNOF+80= -github.com/pulumi/pulumi/sdk/v3 v3.225.0/go.mod h1:kiwkjulVm9ibqTOcyrZYhaRZsDSxWpzIKPXtCFeffBE= +github.com/pulumi/pulumi/sdk/v3 v3.226.0 h1:C24HWnoJSspq/KweSkAAAqWht/5pEkDanoxHe0al/dM= +github.com/pulumi/pulumi/sdk/v3 v3.226.0/go.mod h1:l88lS+aGRt37BD/nyPMEOYw+RmjG5baSH7eLtmTKpy0= github.com/pulumiverse/pulumi-time/sdk v0.1.0 h1:xfi9HKDgV+GgDxQ23oSv9KxC3DQqViGTcMrJICRgJv0= github.com/pulumiverse/pulumi-time/sdk v0.1.0/go.mod h1:NUa1zA74DF002WrM6iF111A6UjX9knPpXufVRvBwNyg= github.com/puzpuzpuz/xsync/v3 v3.5.1 h1:GJYJZwO6IdxN/IKbneznS6yPkVC+c3zyY/j19c++5Fg= @@ -663,18 +675,18 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 h1:7iP2uCb go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0/go.mod h1:c7hN3ddxs/z6q9xwvfLPk+UHlWRQyaeR1LdgfL/66l0= go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0 h1:DvJDOPmSWQHWywQS6lKL+pb8s3gBLOZUtw4N+mavW1I= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.40.0/go.mod h1:EtekO9DEJb4/jRyN4v4Qjc2yA7AtfCBuz2FynRUWTXs= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0 h1:ao6Oe+wSebTlQ1OEht7jlYTzQKE+pnx/iNywFvTbuuI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.41.0/go.mod h1:u3T6vz0gh/NVzgDgiwkgLxpsSF6PaPmo2il0apGJbls= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0 h1:mq/Qcf28TWz719lE3/hMB4KkyDuLJIvgJnFGcd0kEUI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.41.0/go.mod h1:yk5LXEYhsL2htyDNJbEq7fWzNEigeEdV5xBF/Y+kAv0= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 h1:wVZXIWjQSeSmMoxF74LzAnpVQOAFDo3pPji9Y4SOFKc= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0/go.mod h1:khvBS2IggMFNwZK/6lEeHg/W57h/IX6J4URh57fuI40= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= @@ -836,10 +848,10 @@ gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= -google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 h1:tu/dtnW1o3wfaxCOjSLn5IRX4YDcJrtlpzYkhHhGaC4= +google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171/go.mod h1:M5krXqk4GhBKvB596udGL3UyjL4I1+cTbK0orROM9ng= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= diff --git a/test/otel/go.mod b/test/otel/go.mod index 9b177a3d2b5..fb6e63d36fc 100644 --- a/test/otel/go.mod +++ b/test/otel/go.mod @@ -24,10 +24,7 @@ require go.opentelemetry.io/collector/extension/extensionauth v1.53.0 // indirec require go.opentelemetry.io/collector/config/configoptional v1.53.0 // indirect -require ( - github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect - go.yaml.in/yaml/v2 v2.4.3 // indirect -) +require go.yaml.in/yaml/v2 v2.4.3 // indirect require ( github.com/foxboron/go-tpm-keyfiles v0.0.0-20251226215517-609e4778396f // indirect @@ -61,16 +58,18 @@ require ( github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260213154712-e02b9359151a // indirect + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc v0.0.0-00010101000000-000000000000 // indirect github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/orchestrator/util v0.0.0-20251120165911-0b75c97e8b50 // indirect github.com/DataDog/datadog-agent/pkg/trace/log v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/trace/stats v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/pkg/trace/traceutil v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.64.0-devel // indirect + github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.70.0 // indirect github.com/DataDog/datadog-agent/pkg/util/flavor v0.71.0-rc.1 // indirect github.com/DataDog/go-tuf v1.1.1-0.5.2 // indirect github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/mdlayher/socket v0.5.1 // indirect github.com/mdlayher/vsock v1.2.1 // indirect github.com/pierrec/lz4/v4 v4.1.26 // indirect @@ -78,11 +77,10 @@ require ( go.opentelemetry.io/collector/consumer/consumererror v0.147.0 // indirect go.opentelemetry.io/collector/pdata/pprofile v0.147.0 // indirect golang.org/x/sync v0.20.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect ) require ( - github.com/DataDog/agent-payload/v5 v5.0.184 // indirect + github.com/DataDog/agent-payload/v5 v5.0.191 // indirect github.com/DataDog/datadog-agent/comp/core/flare/builder v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/comp/core/flare/types v0.77.0-devel.0.20260213154712-e02b9359151a // indirect github.com/DataDog/datadog-agent/comp/core/secrets/def v0.77.0-devel.0.20260213154712-e02b9359151a // indirect @@ -235,9 +233,10 @@ require ( golang.org/x/sys v0.42.0 // indirect golang.org/x/text v0.35.0 // indirect golang.org/x/time v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.79.3 // indirect google.golang.org/protobuf v1.36.11 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually @@ -342,6 +341,7 @@ replace ( github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender + github.com/DataDog/datadog-agent/pkg/logs/sender/grpc => ../../pkg/logs/sender/grpc github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../pkg/logs/status/statusinterface github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../pkg/logs/status/utils diff --git a/test/otel/go.sum b/test/otel/go.sum index f4232df57a2..1139bdf99dc 100644 --- a/test/otel/go.sum +++ b/test/otel/go.sum @@ -1,6 +1,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/agent-payload/v5 v5.0.184 h1:4ZEWKWTQHoC+WCjlE1l695ymi/PjA9BPGMMVAbaM0uo= -github.com/DataDog/agent-payload/v5 v5.0.184/go.mod h1:MScePfb6eN9vN9GqPhCXTeqq1V0TlCpnjrN4OujCaQs= +github.com/DataDog/agent-payload/v5 v5.0.191 h1:c26Eqt8/BrmYrVvmCppknxcoEQbfdZINOlij18VmkwA= +github.com/DataDog/agent-payload/v5 v5.0.191/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= github.com/DataDog/datadog-api-client-go/v2 v2.55.0 h1:wRwBJJpNRoyBJXdKtInfHXeXIo+nTn5DSIayaovRYVY= github.com/DataDog/datadog-api-client-go/v2 v2.55.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/datadog-go/v5 v5.8.3 h1:s58CUJ9s8lezjhTNJO/SxkPBv2qZjS3ktpRSqGF5n0s= @@ -337,10 +337,10 @@ go.opentelemetry.io/otel v1.42.0 h1:lSQGzTgVR3+sgJDAU/7/ZMjN9Z+vUip7leaqBKy4sho= go.opentelemetry.io/otel v1.42.0/go.mod h1:lJNsdRMxCUIWuMlVJWzecSMuNjE7dOYyWlqOXWkdqCc= go.opentelemetry.io/otel/metric v1.42.0 h1:2jXG+3oZLNXEPfNmnpxKDeZsFI5o4J+nz6xUlaFdF/4= go.opentelemetry.io/otel/metric v1.42.0/go.mod h1:RlUN/7vTU7Ao/diDkEpQpnz3/92J9ko05BIwxYa2SSI= -go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8= -go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE= -go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw= -go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg= +go.opentelemetry.io/otel/sdk v1.41.0 h1:YPIEXKmiAwkGl3Gu1huk1aYWwtpRLeskpV+wPisxBp8= +go.opentelemetry.io/otel/sdk v1.41.0/go.mod h1:ahFdU0G5y8IxglBf0QBJXgSe7agzjE4GiTJ6HT9ud90= +go.opentelemetry.io/otel/sdk/metric v1.41.0 h1:siZQIYBAUd1rlIWQT2uCxWJxcCO7q3TriaMlf08rXw8= +go.opentelemetry.io/otel/sdk/metric v1.41.0/go.mod h1:HNBuSvT7ROaGtGI50ArdRLUnvRTRGniSUZbxiWxSO8Y= go.opentelemetry.io/otel/trace v1.42.0 h1:OUCgIPt+mzOnaUTpOQcBiM/PLQ/Op7oq6g4LenLmOYY= go.opentelemetry.io/otel/trace v1.42.0/go.mod h1:f3K9S+IFqnumBkKhRJMeaZeNk9epyhnCmQh/EysQCdc= go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= @@ -424,8 +424,8 @@ gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 h1:ggcbiqK8WWh6l1dnltU4BgWGIGo+EVYxCaAPih/zQXQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE= google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=