Add OTEL CI logs agent components #2113
Merged
Merged
Conversation
f64e46a to
fbf7257
Compare
miconeilaws
added a commit
to aws-observability/helm-charts
that referenced
this pull request
May 14, 2026
…host)
Adds opt-in OTEL log collection to the existing CloudWatch Agent DaemonSet.
No new K8s resources created — logs config is injected into the agent's
otelConfig when otelContainerInsights.logs=true.
Pipelines:
- logs/cw_k8s_ci_v0_app: container logs via filelog + container_log_parser
- logs/cw_k8s_ci_v0_node: host OS logs (/var/log/messages, dmesg, secure)
Key design decisions:
- Shares k8sattributes processor instances with metrics (one API watch)
- cwlogsprovision extension pre-creates log groups/streams at startup
- Log groups: /aws/otel/containerinsights/<cluster>/{application,host}
- Simple config: enabled=false ignores everything under otelContainerInsights
- No cross-flag validation with FluentBit (deferred to v7.0.0)
- Dataplane logs deferred (no journald/aws-node collection)
Depends on:
- amazon-contributing/opentelemetry-collector-contrib#533
- aws/amazon-cloudwatch-agent#2113
fbf7257 to
75bf0cd
Compare
miconeilaws
added a commit
to aws-observability/helm-charts
that referenced
this pull request
May 15, 2026
…host)
Adds opt-in OTEL log collection to the existing CloudWatch Agent DaemonSet.
No new K8s resources created — logs config is injected into the agent's
otelConfig when otelContainerInsights.logs=true.
Pipelines:
- logs/cw_k8s_ci_v0_app: container logs via filelog + container_log_parser
- logs/cw_k8s_ci_v0_node: host OS logs (/var/log/messages, dmesg, secure)
Key design decisions:
- Shares k8sattributes processor instances with metrics (one API watch)
- cwlogsprovision extension pre-creates log groups/streams at startup
- Log groups: /aws/otel/containerinsights/<cluster>/{application,host}
- Simple config: enabled=false ignores everything under otelContainerInsights
- No cross-flag validation with FluentBit (deferred to v7.0.0)
- Dataplane logs deferred (no journald/aws-node collection)
Depends on:
- amazon-contributing/opentelemetry-collector-contrib#533
- aws/amazon-cloudwatch-agent#2113
75bf0cd to
066a76e
Compare
miconeilaws
added a commit
to aws-observability/helm-charts
that referenced
this pull request
May 15, 2026
…host)
Adds opt-in OTEL log collection to the existing CloudWatch Agent DaemonSet.
No new K8s resources created — logs config is injected into the agent's
otelConfig when otelContainerInsights.logs=true.
Pipelines:
- logs/cw_k8s_ci_v0_app: container logs via filelog + container_log_parser
- logs/cw_k8s_ci_v0_node: host OS logs (/var/log/messages, dmesg, secure)
Key design decisions:
- Shares k8sattributes processor instances with metrics (one API watch)
- cwlogsprovision extension pre-creates log groups/streams at startup
- Log groups: /aws/otel/containerinsights/<cluster>/{application,host}
- Simple config: enabled=false ignores everything under otelContainerInsights
- No cross-flag validation with FluentBit (deferred to v7.0.0)
- Dataplane logs deferred (no journald/aws-node collection)
Depends on:
- amazon-contributing/opentelemetry-collector-contrib#533
- aws/amazon-cloudwatch-agent#2113
sky333999
reviewed
May 15, 2026
| if factories.Extensions, err = otelcol.MakeFactoryMap[extension.Factory]( | ||
| agenthealth.NewFactory(), | ||
| awsproxy.NewFactory(), | ||
| awscloudwatchlogsprovisionerextension.NewFactory(), |
Contributor
There was a problem hiding this comment.
niti: alphabetical order for this file and the test one
| // For clear resource attributes after copy functionality https://github.com/amazon-contributing/opentelemetry-collector-contrib/pull/148 | ||
| github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry => github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.0.0-20260511193117-05aea4e97d48 | ||
| github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza => github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20260511193117-05aea4e97d48 | ||
| github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza => github.com/amazon-contributing/opentelemetry-collector-contrib/pkg/stanza v0.0.0-20260514092325-6fd7b2eb672e |
Contributor
There was a problem hiding this comment.
once contrib is merged in, lets update this and all the contrib components to that same new commit.
|
|
||
| require github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1 | ||
| require ( | ||
| github.com/open-telemetry/opentelemetry-collector-contrib/extension/awscloudwatchlogsprovisionerextension v0.0.0-00010101000000-000000000000 |
Contributor
There was a problem hiding this comment.
Instead of having this here, mind modelling it similar to the awscontainerinsightskueuereceiver above for now?
a5d9c8d to
bc090bb
Compare
movence
reviewed
May 15, 2026
|
|
||
| require github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1 | ||
| require ( | ||
| github.com/open-telemetry/opentelemetry-collector-contrib/extension/awscloudwatchlogsprovisionerextension v0.124.1 |
Contributor
There was a problem hiding this comment.
nit: could move this to require block above
bc090bb to
e4043b5
Compare
sky333999
previously approved these changes
May 15, 2026
…ovisioner 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)
e4043b5 to
2a58765
Compare
movence
approved these changes
May 15, 2026
sky333999
approved these changes
May 15, 2026
jj22ee
pushed a commit
to jj22ee/amazon-cloudwatch-agent
that referenced
this pull request
May 16, 2026
Co-authored-by: Michael O'Neill <miconeil@amazon.com>
louisall
pushed a commit
to aws-observability/helm-charts
that referenced
this pull request
May 20, 2026
…host)
Adds opt-in OTEL log collection to the existing CloudWatch Agent DaemonSet.
No new K8s resources created — logs config is injected into the agent's
otelConfig when otelContainerInsights.logs=true.
Pipelines:
- logs/cw_k8s_ci_v0_app: container logs via filelog + container_log_parser
- logs/cw_k8s_ci_v0_node: host OS logs (/var/log/messages, dmesg, secure)
Key design decisions:
- Shares k8sattributes processor instances with metrics (one API watch)
- cwlogsprovision extension pre-creates log groups/streams at startup
- Log groups: /aws/otel/containerinsights/<cluster>/{application,host}
- Simple config: enabled=false ignores everything under otelContainerInsights
- No cross-flag validation with FluentBit (deferred to v7.0.0)
- Dataplane logs deferred (no journald/aws-node collection)
Depends on:
- amazon-contributing/opentelemetry-collector-contrib#533
- aws/amazon-cloudwatch-agent#2113
louisall
pushed a commit
to aws-observability/helm-charts
that referenced
this pull request
May 20, 2026
…host)
Adds opt-in OTEL log collection to the existing CloudWatch Agent DaemonSet.
No new K8s resources created — logs config is injected into the agent's
otelConfig when otelContainerInsights.logs=true.
Pipelines:
- logs/cw_k8s_ci_v0_app: container logs via filelog + container_log_parser
- logs/cw_k8s_ci_v0_node: host OS logs (/var/log/messages, dmesg, secure)
Key design decisions:
- Shares k8sattributes processor instances with metrics (one API watch)
- cwlogsprovision extension pre-creates log groups/streams at startup
- Log groups: /aws/otel/containerinsights/<cluster>/{application,host}
- Simple config: enabled=false ignores everything under otelContainerInsights
- No cross-flag validation with FluentBit (deferred to v7.0.0)
- Dataplane logs deferred (no journald/aws-node collection)
Depends on:
- amazon-contributing/opentelemetry-collector-contrib#533
- aws/amazon-cloudwatch-agent#2113
louisall
pushed a commit
to aws-observability/helm-charts
that referenced
this pull request
May 20, 2026
…host)
Adds opt-in OTEL log collection to the existing CloudWatch Agent DaemonSet.
No new K8s resources created — logs config is injected into the agent's
otelConfig when otelContainerInsights.logs=true.
Pipelines:
- logs/cw_k8s_ci_v0_app: container logs via filelog + container_log_parser
- logs/cw_k8s_ci_v0_node: host OS logs (/var/log/messages, dmesg, secure)
Key design decisions:
- Shares k8sattributes processor instances with metrics (one API watch)
- cwlogsprovision extension pre-creates log groups/streams at startup
- Log groups: /aws/otel/containerinsights/<cluster>/{application,host}
- Simple config: enabled=false ignores everything under otelContainerInsights
- No cross-flag validation with FluentBit (deferred to v7.0.0)
- Dataplane logs deferred (no journald/aws-node collection)
Depends on:
- amazon-contributing/opentelemetry-collector-contrib#533
- aws/amazon-cloudwatch-agent#2113
louisall
pushed a commit
to aws-observability/helm-charts
that referenced
this pull request
May 20, 2026
…host)
Adds opt-in OTEL log collection to the existing CloudWatch Agent DaemonSet.
No new K8s resources created — logs config is injected into the agent's
otelConfig when otelContainerInsights.logs=true.
Pipelines:
- logs/cw_k8s_ci_v0_app: container logs via filelog + container_log_parser
- logs/cw_k8s_ci_v0_node: host OS logs (/var/log/messages, dmesg, secure)
Key design decisions:
- Shares k8sattributes processor instances with metrics (one API watch)
- cwlogsprovision extension pre-creates log groups/streams at startup
- Log groups: /aws/otel/containerinsights/<cluster>/{application,host}
- Simple config: enabled=false ignores everything under otelContainerInsights
- No cross-flag validation with FluentBit (deferred to v7.0.0)
- Dataplane logs deferred (no journald/aws-node collection)
Depends on:
- amazon-contributing/opentelemetry-collector-contrib#533
- aws/amazon-cloudwatch-agent#2113
louisall
pushed a commit
to aws-observability/helm-charts
that referenced
this pull request
May 20, 2026
…host)
Adds opt-in OTEL log collection to the existing CloudWatch Agent DaemonSet.
No new K8s resources created — logs config is injected into the agent's
otelConfig when otelContainerInsights.logs=true.
Pipelines:
- logs/cw_k8s_ci_v0_app: container logs via filelog + container_log_parser
- logs/cw_k8s_ci_v0_node: host OS logs (/var/log/messages, dmesg, secure)
Key design decisions:
- Shares k8sattributes processor instances with metrics (one API watch)
- cwlogsprovision extension pre-creates log groups/streams at startup
- Log groups: /aws/otel/containerinsights/<cluster>/{application,host}
- Simple config: enabled=false ignores everything under otelContainerInsights
- No cross-flag validation with FluentBit (deferred to v7.0.0)
- Dataplane logs deferred (no journald/aws-node collection)
Depends on:
- amazon-contributing/opentelemetry-collector-contrib#533
- aws/amazon-cloudwatch-agent#2113
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add container_log_parser operator and awscloudwatchlogsprovisioner extension
Registers the agent-side components needed for OTEL Container Insights log pipelines.
Changes
plugins/plugins.go— importscontainer_log_parserstanza operator from the forkservice/defaultcomponents/components.go— registersawscloudwatchlogsprovisionerextensiongo.mod— adds dependency + replace directive pointing at merged fork commitWhat these components do
container_log_parser — parses CRI/Docker container log format (strips timestamp, stream, flags envelope from raw log lines). Code lives in
otel-contrib#533 (merged).
awscloudwatchlogsprovisioner — lazily creates CloudWatch log groups/streams on first request via the HTTP auth chain. Already merged in
otel-contrib#511. No new extension code in this PR — just
registration.
Why this PR exists
Without these registrations, the agent fails at config load time with "unknown operator/extension type" when the helm chart references them.
Dependencies