Skip to content

Commit a5d9c8d

Browse files
committed
feat(otel): Add container_log_parser operator and awscloudwatchlogsprovisioner extension
Register container_log_parser stanza operator (plugins.go) and awscloudwatchlogsprovisioner extension in the agent's default components for OTEL Container Insights log pipelines. The provisioner extension (from otel-contrib PR #511) lazily creates CloudWatch log groups/streams on first request via the HTTP auth chain. Replaces the earlier cwlogsprovision approach. Depends on: - amazon-contributing/opentelemetry-collector-contrib#533 (container_log_parser) - amazon-contributing/opentelemetry-collector-contrib#511 (awscloudwatchlogsprovisioner) - aws-observability/helm-charts#310 (pipeline config)
1 parent f722a9f commit a5d9c8d

5 files changed

Lines changed: 22 additions & 8 deletions

File tree

go.mod

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ replace (
1616

1717
replace (
1818
github.com/amazon-contributing/opentelemetry-collector-contrib/extension/awsmiddleware => github.com/amazon-contributing/opentelemetry-collector-contrib/extension/awsmiddleware v0.0.0-20260511193117-05aea4e97d48
19+
github.com/open-telemetry/opentelemetry-collector-contrib/extension/awscloudwatchlogsprovisionerextension => github.com/amazon-contributing/opentelemetry-collector-contrib/extension/awscloudwatchlogsprovisionerextension v0.0.0-20260511193117-05aea4e97d48
1920
github.com/open-telemetry/opentelemetry-collector-contrib/extension/awsproxy => github.com/amazon-contributing/opentelemetry-collector-contrib/extension/awsproxy v0.0.0-20260511193117-05aea4e97d48
2021
)
2122

@@ -36,7 +37,7 @@ replace (
3637
replace (
3738
// For clear resource attributes after copy functionality https://github.com/amazon-contributing/opentelemetry-collector-contrib/pull/148
3839
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry => github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.0.0-20260511193117-05aea4e97d48
39-
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza => github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20260511193117-05aea4e97d48
40+
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza => github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20260514092325-6fd7b2eb672e
4041
// Replace with contrib to revert upstream change https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/20519
4142
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus => github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/translator/prometheus v0.0.0-20260511193117-05aea4e97d48
4243
)
@@ -253,7 +254,10 @@ require (
253254
k8s.io/klog/v2 v2.130.1
254255
)
255256

256-
require github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1
257+
require (
258+
github.com/open-telemetry/opentelemetry-collector-contrib/extension/awscloudwatchlogsprovisionerextension v0.124.1
259+
github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1
260+
)
257261

258262
require (
259263
cloud.google.com/go/auth v0.15.0 // indirect
@@ -290,12 +294,14 @@ require (
290294
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
291295
github.com/aws/aws-msk-iam-sasl-signer-go v1.0.1 // indirect
292296
github.com/aws/aws-sdk-go-v2 v1.36.3 // indirect
297+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 // indirect
293298
github.com/aws/aws-sdk-go-v2/config v1.29.14 // indirect
294299
github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect
295300
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect
296301
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect
297302
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect
298303
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
304+
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.46.0 // indirect
299305
github.com/aws/aws-sdk-go-v2/service/ec2 v1.211.2 // indirect
300306
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect
301307
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect

go.sum

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,8 @@ github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsemfex
191191
github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsemfexporter v0.0.0-20260511193117-05aea4e97d48/go.mod h1:3CyMeKLU/pTjhm0qL4WEbYtq4/IaHJsOF8e7WiweXJQ=
192192
github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.0.0-20260511193117-05aea4e97d48 h1:C6FTKqHXk6TkpBvIf3eizARmwaPatDtMR9mS07Yv3A4=
193193
github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.0.0-20260511193117-05aea4e97d48/go.mod h1:Jm0k76CRZ1uR0B6kFHYlLPe7AxWJu69aIrCQiygTBFg=
194+
github.com/amazon-contributing/opentelemetry-collector-contrib/extension/awscloudwatchlogsprovisionerextension v0.0.0-20260511193117-05aea4e97d48 h1:nY8eQxUghjYr0xiMlu0rNe3kzgynlnbeG/eVNFoFZLI=
195+
github.com/amazon-contributing/opentelemetry-collector-contrib/extension/awscloudwatchlogsprovisionerextension v0.0.0-20260511193117-05aea4e97d48/go.mod h1:Ggckc2aNo/3fgbgB4uj4vlGxG+NVyyShSjF8fcSt77o=
194196
github.com/amazon-contributing/opentelemetry-collector-contrib/extension/awsmiddleware v0.0.0-20260511193117-05aea4e97d48 h1:MNnRKv8uIAKSaPSajtpDAnTx/g43oHunwSgagtrupD8=
195197
github.com/amazon-contributing/opentelemetry-collector-contrib/extension/awsmiddleware v0.0.0-20260511193117-05aea4e97d48/go.mod h1:KQqi2/SDM6SveSbJmH7yE2ZJrcwvQEsq8fGgj7J42oI=
196198
github.com/amazon-contributing/opentelemetry-collector-contrib/extension/awsproxy v0.0.0-20260511193117-05aea4e97d48 h1:w+W8kEnVcQ3FCfvkZoX5ONvSeA2YPajeq9czhnM8MTA=
@@ -221,8 +223,8 @@ github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws v0.0
221223
github.com/amazon-contributing/opentelemetry-collector-contrib/override/aws v0.0.0-20260511193117-05aea4e97d48/go.mod h1:jGegGUX4PViU3gFU/dPvLUXuXC8GRiY9EYRpJhlczZA=
222224
github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.0.0-20260511193117-05aea4e97d48 h1:DhipKuMt3PXSTfxAl3VULjhWalZ54WS3MFNrm1nMpCY=
223225
github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.0.0-20260511193117-05aea4e97d48/go.mod h1:xrcHPb5eq5BblbNj64IpYqv295gwzpSUPgih7Dyo65E=
224-
github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20260511193117-05aea4e97d48 h1:ZBl8FGyXsJqknuqPX7logKL6SE3YE/IbzOZwooaIr54=
225-
github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20260511193117-05aea4e97d48/go.mod h1:2SjHFWsA3UKr7N4IOP5ph0inaZtn6bteD9DitRAASEc=
226+
github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20260514092325-6fd7b2eb672e h1:Nml+qqpII98zB5jkCXTwFHG4WLKmLyozPbYD5vwXRzw=
227+
github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20260514092325-6fd7b2eb672e/go.mod h1:2SjHFWsA3UKr7N4IOP5ph0inaZtn6bteD9DitRAASEc=
226228
github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/translator/prometheus v0.0.0-20260511193117-05aea4e97d48 h1:rD3pAwt8BHpg5VC4UCbvnW9Genm5SYx+fInWEvEnLQs=
227229
github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/translator/prometheus v0.0.0-20260511193117-05aea4e97d48/go.mod h1:mfl6tGXnVyT0+nga+Oml7bMNWKempeGTtL+5Vs2LzHA=
228230
github.com/amazon-contributing/opentelemetry-collector-contrib/processor/awsattributelimitprocessor v0.0.0-20260511193117-05aea4e97d48 h1:b/qsnzKKW3Givwix4XoBnONIDmxe8xjey/SvCW637DM=
@@ -289,8 +291,8 @@ github.com/aws/aws-sdk-go-v2 v1.9.1/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVj
289291
github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4=
290292
github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM=
291293
github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg=
292-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.13 h1:OPLEkmhXf6xFPiz0bLeDArZIDx1NNS4oJyG4nv3Gct0=
293-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.13/go.mod h1:gpAbvyDGQFozTEmlTFO8XcQKHzubdq0LzRyJpG6MiXM=
294+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 h1:zAybnyUQXIZ5mok5Jqwlf58/TFE7uvd3IAsa1aF9cXs=
295+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10/go.mod h1:qqvMj6gHLR/EXWZw4ZbqlPbQUyenf4h82UQUlKc+l14=
294296
github.com/aws/aws-sdk-go-v2/config v1.8.3/go.mod h1:4AEiLtAb8kLs7vgw2ZV3p2VZ1+hBavOc84hqxVNpCyw=
295297
github.com/aws/aws-sdk-go-v2/config v1.29.14 h1:f+eEi/2cKCg9pqKBoAIwRGzVb70MRKqWX4dg1BDcSJM=
296298
github.com/aws/aws-sdk-go-v2/config v1.29.14/go.mod h1:wVPHWcIFv3WO89w0rE10gzf17ZYy+UVS1Geq8Iei34g=
@@ -317,8 +319,8 @@ github.com/aws/aws-sdk-go-v2/service/appconfig v1.4.2/go.mod h1:FZ3HkCe+b10uFZZk
317319
github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.8.1/go.mod h1:CM+19rL1+4dFWnOQKwDc7H1KwXTz+h61oUSHyhV0b3o=
318320
github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.30.2 h1:T2YjSwrDkLg2laNjhIunyTbjy9Qzd/oZ+yQjrAhdIEA=
319321
github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.30.2/go.mod h1:GuVYdn7tWjbyp/YtZSM6VczmceUUQW6v8Yq98wJ9dWY=
320-
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.13.0 h1:NfqONXoDwWtBCnkPVz7GL/FKMo/s//TnHSwF+PjzG5c=
321-
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.13.0/go.mod h1:OFC7Rn7jyPoKtczT+TARRbxKHRmN9nyrJ2rmCc3ewuQ=
322+
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.46.0 h1:HPS8ojAC0E1tIPYgH+fWi8y88+LZPZrcDowEfhsVdCM=
323+
github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.46.0/go.mod h1:uo14VBn5cNk/BPGTPz3kyLBxgpgOObgO8lmz+H7Z4Ck=
322324
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.14.0 h1:P+eF8PKkeaiTfN/VBe5GI3uNdhwCPVYCQxchRewJcWk=
323325
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.14.0/go.mod h1:15NiwrGGBpsC7C3zScmoaqNo1QJ9SRjdM5jxEPnCUR8=
324326
github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.4.0 h1:QbFWJr2SAyVYvyoOHvJU6sCGLnqNT94ZbWElJMEI1JY=

plugins/plugins.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ import (
88
_ "github.com/aws/amazon-cloudwatch-agent/plugins/processors/ecsdecorator"
99
_ "github.com/aws/amazon-cloudwatch-agent/plugins/processors/k8sdecorator"
1010

11+
// Enabled cloudwatch-agent stanza operators
12+
_ "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/parser/containerlog"
13+
1114
// Enabled cloudwatch-agent input plugins
1215
_ "github.com/aws/amazon-cloudwatch-agent/plugins/inputs/logfile"
1316
_ "github.com/aws/amazon-cloudwatch-agent/plugins/inputs/nvidia_smi"

service/defaultcomponents/components.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter"
99
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxrayexporter"
1010
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter"
11+
"github.com/open-telemetry/opentelemetry-collector-contrib/extension/awscloudwatchlogsprovisionerextension"
1112
"github.com/open-telemetry/opentelemetry-collector-contrib/extension/awsproxy"
1213
"github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension"
1314
"github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecsobserver"
@@ -163,6 +164,7 @@ func Factories() (otelcol.Factories, error) {
163164

164165
if factories.Extensions, err = otelcol.MakeFactoryMap[extension.Factory](
165166
agenthealth.NewFactory(),
167+
awscloudwatchlogsprovisionerextension.NewFactory(),
166168
awsproxy.NewFactory(),
167169
entitystore.NewFactory(),
168170
k8smetadata.NewFactory(),

service/defaultcomponents/components_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ func TestComponents(t *testing.T) {
101101

102102
wantExtensions := []string{
103103
"agenthealth",
104+
"awscloudwatchlogsprovisioner",
104105
"awsproxy",
105106
"ecs_observer",
106107
"entitystore",

0 commit comments

Comments
 (0)