-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[cmd/opampsupervisor] Allow collector logs to passthrough to stdout #35473
Labels
Comments
dpaasman00
added
enhancement
New feature or request
needs triage
New item requiring triage
labels
Sep 27, 2024
Pinging code owners:
See Adding Labels via Comments if you do not have permissions to add labels yourself. |
jriguera
pushed a commit
to springernature/opentelemetry-collector-contrib
that referenced
this issue
Oct 4, 2024
…emetry#35474) **Description:** <Describe what has changed.> <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> Allow collector logs to passthrough to stdout instead of strictly being sent to a file. If configured to do so, the supervisor will capture collector output and log it using it's logger. This way, the supervisor should be configured to log to stdout if running in a containerized env. This PR follows closely with this [PR](open-telemetry#35468). Right now the supervisor exclusively logs to stdout, but under the assumption that it can be configured to log elsewhere, this change uses the supervisor logger rather than setting the collector's `exec.Cmd` to log to stdout and stderr. **Link to tracking Issue:** Closes open-telemetry#35473 **Testing:** <Describe what testing was performed and which tests were added.> I built a docker image of the supervisor and collector and ran it using the `containerized` param. This is a sample of what the output looked like: ``` 2024-09-30T12:42:47.472Z DEBUG commander/commander.go:73 Starting agent {"agent": "/collector/observiq-otel-collector"} 2024-09-30T12:42:47.472Z DEBUG commander/commander.go:163 Agent process started {"pid": 11} 2024-09-30T12:42:47.525Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.525Z info [email protected]/service.go:178 Setting up own telemetry... 2024-09-30T12:42:47.525Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.525Z info [email protected]/telemetry.go:98 Serving metrics {"address": ":8888", "metrics level": "Normal"} 2024-09-30T12:42:47.525Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.525Z info [email protected]/service.go:263 Starting observiq-otel-collector... {"Version": "v2.0.0", "NumCPU": 12} 2024-09-30T12:42:47.525Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.525Z info extensions/extensions.go:38 Starting extensions... 2024-09-30T12:42:47.525Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.525Z info extensions/extensions.go:41 Extension is starting... {"kind": "extension", "name": "opamp"} 2024-09-30T12:42:47.525Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.525Z info extensions/extensions.go:58 Extension started. {"kind": "extension", "name": "opamp"} 2024-09-30T12:42:47.526Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.526Z info [email protected]/service.go:289 Everything is ready. Begin running and processing data. 2024-09-30T12:42:47.526Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.526Z info localhostgate/featuregate.go:63 The default endpoints for all servers in components have changed to use localhost instead of 0.0.0.0. Disable the feature gate to temporarily revert to the previous default. {"feature gate ID": "component.UseLocalHostAsDefaultHost"} 2024-09-30T12:42:47.528Z DEBUG commander/commander.go:220 Stopping agent process {"pid": 11} ``` **Documentation:** <Describe the documentation added.>
Eromosele-SM
pushed a commit
to sematext/opentelemetry-collector-contrib
that referenced
this issue
Oct 9, 2024
…emetry#35474) **Description:** <Describe what has changed.> <!--Ex. Fixing a bug - Describe the bug and how this fixes the issue. Ex. Adding a feature - Explain what this achieves.--> Allow collector logs to passthrough to stdout instead of strictly being sent to a file. If configured to do so, the supervisor will capture collector output and log it using it's logger. This way, the supervisor should be configured to log to stdout if running in a containerized env. This PR follows closely with this [PR](open-telemetry#35468). Right now the supervisor exclusively logs to stdout, but under the assumption that it can be configured to log elsewhere, this change uses the supervisor logger rather than setting the collector's `exec.Cmd` to log to stdout and stderr. **Link to tracking Issue:** Closes open-telemetry#35473 **Testing:** <Describe what testing was performed and which tests were added.> I built a docker image of the supervisor and collector and ran it using the `containerized` param. This is a sample of what the output looked like: ``` 2024-09-30T12:42:47.472Z DEBUG commander/commander.go:73 Starting agent {"agent": "/collector/observiq-otel-collector"} 2024-09-30T12:42:47.472Z DEBUG commander/commander.go:163 Agent process started {"pid": 11} 2024-09-30T12:42:47.525Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.525Z info [email protected]/service.go:178 Setting up own telemetry... 2024-09-30T12:42:47.525Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.525Z info [email protected]/telemetry.go:98 Serving metrics {"address": ":8888", "metrics level": "Normal"} 2024-09-30T12:42:47.525Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.525Z info [email protected]/service.go:263 Starting observiq-otel-collector... {"Version": "v2.0.0", "NumCPU": 12} 2024-09-30T12:42:47.525Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.525Z info extensions/extensions.go:38 Starting extensions... 2024-09-30T12:42:47.525Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.525Z info extensions/extensions.go:41 Extension is starting... {"kind": "extension", "name": "opamp"} 2024-09-30T12:42:47.525Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.525Z info extensions/extensions.go:58 Extension started. {"kind": "extension", "name": "opamp"} 2024-09-30T12:42:47.526Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.526Z info [email protected]/service.go:289 Everything is ready. Begin running and processing data. 2024-09-30T12:42:47.526Z INFO collector commander/commander.go:156 2024-09-30T12:42:47.526Z info localhostgate/featuregate.go:63 The default endpoints for all servers in components have changed to use localhost instead of 0.0.0.0. Disable the feature gate to temporarily revert to the previous default. {"feature gate ID": "component.UseLocalHostAsDefaultHost"} 2024-09-30T12:42:47.528Z DEBUG commander/commander.go:220 Stopping agent process {"pid": 11} ``` **Documentation:** <Describe the documentation added.>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Component(s)
No response
Is your feature request related to a problem? Please describe.
When running the supervisor, collector logs are strictly directed to a file. This proves troublesome when running in a containerized environment. Collector logs can't be easily captured by the container platform's log management solution.
Describe the solution you'd like
An option to configure the supervisor to direct collector logs to passthrough to stdout would solve this problem.
Describe alternatives you've considered
Volume mounting the collector log file could be a valid workaround, but best practice for containers is to log to stdout by default. The user would need to worry about how to separate supervisor and collector logs, but at least this way they don't need to worry about configuring a volume mounted file.
Additional context
This issue is somewhat related to another issue I'm working on, #35466. The solution I have for this issue works by capturing collector output and using the supervisor's logging to send them to the same place as the supervisor's. The idea being that when running in a container the supervisor would be configured to log to stdout.
The text was updated successfully, but these errors were encountered: