Skip to content
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

Components subcommand no longer outputs component names #9855

Closed
FISHMANPET opened this issue Mar 26, 2024 · 4 comments · Fixed by #9856
Closed

Components subcommand no longer outputs component names #9855

FISHMANPET opened this issue Mar 26, 2024 · 4 comments · Fixed by #9856
Labels
bug Something isn't working

Comments

@FISHMANPET
Copy link

Describe the bug
The output of the components subcommand no longer contain the names of the component, merely {}

Steps to reproduce

  1. Download the latest collector or build your own.
  2. Run collector components

What did you expect to see?
I expected the output to include the names of components, like this (from the 0.96.0 release)

    - name: signalfx
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta

What did you see instead?

    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta

What version did you use?
v0.97.0

What config did you use?
N/A

Environment
MacOS 13.6.6
For the compiled version, built using ocb 0.97.0, running go 1.22.1

Additional context
I'm wondering if this is related to the changes described in #9208 ?

@FISHMANPET FISHMANPET added the bug Something isn't working label Mar 26, 2024
@TylerHelmuth
Copy link
Member

Tested this with make otelcontribcol in Contrib and was able to reproduce:

buildinfo:
    command: otelcontribcol
    description: Local OpenTelemetry Collector Contrib binary, testing only.
    version: 0.97.0-dev
receivers:
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Development
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Beta
        traces: Alpha
    - name: {}
      stability:
        logs: Undefined
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Development
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Development
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Development
        traces: Beta
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Alpha
        traces: Alpha
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Development
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Development
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Stable
        traces: Stable
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Development
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Alpha
    - name: {}
      stability:
        logs: Undefined
        metrics: Alpha
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Development
        metrics: Undefined
        traces: Development
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Alpha
        traces: Alpha
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Development
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Development
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Alpha
        traces: Undefined
processors:
    - name: {}
      stability:
        logs: Alpha
        metrics: Alpha
        traces: Alpha
    - name: {}
      stability:
        logs: Undefined
        metrics: Development
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Development
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Alpha
        metrics: Alpha
        traces: Alpha
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Alpha
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Alpha
        metrics: Alpha
        traces: Alpha
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Development
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
exporters:
    - name: {}
      stability:
        logs: Beta
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Deprecated
    - name: {}
      stability:
        logs: Beta
        metrics: Development
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Alpha
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Alpha
        metrics: Alpha
        traces: Alpha
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Development
    - name: {}
      stability:
        logs: Alpha
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Alpha
    - name: {}
      stability:
        logs: Unmaintained
        metrics: Unmaintained
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Development
        metrics: Development
        traces: Development
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Alpha
    - name: {}
      stability:
        logs: Beta
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Development
        metrics: Undefined
        traces: Alpha
    - name: {}
      stability:
        logs: Alpha
        metrics: Alpha
        traces: Alpha
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Stable
        traces: Stable
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Beta
        traces: Undefined
    - name: {}
      stability:
        logs: Alpha
        metrics: Undefined
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Stable
        traces: Stable
    - name: {}
      stability:
        logs: Alpha
        metrics: Alpha
        traces: Alpha
    - name: {}
      stability:
        logs: Alpha
        metrics: Alpha
        traces: Alpha
    - name: {}
      stability:
        logs: Undefined
        metrics: Deprecated
        traces: Undefined
    - name: {}
      stability:
        logs: Beta
        metrics: Beta
        traces: Beta
    - name: {}
      stability:
        logs: Undefined
        metrics: Undefined
        traces: Beta
connectors:
    - name: {}
      stability:
        logs-to-logs: Alpha
        logs-to-metrics: Undefined
        logs-to-traces: Undefined
        metrics-to-logs: Undefined
        metrics-to-metrics: Alpha
        metrics-to-traces: Undefined
        traces-to-logs: Undefined
        traces-to-metrics: Undefined
        traces-to-traces: Alpha
    - name: {}
      stability:
        logs-to-logs: Undefined
        logs-to-metrics: Undefined
        logs-to-traces: Undefined
        metrics-to-logs: Undefined
        metrics-to-metrics: Undefined
        metrics-to-traces: Undefined
        traces-to-logs: Undefined
        traces-to-metrics: Alpha
        traces-to-traces: Undefined
    - name: {}
      stability:
        logs-to-logs: Undefined
        logs-to-metrics: Undefined
        logs-to-traces: Undefined
        metrics-to-logs: Undefined
        metrics-to-metrics: Undefined
        metrics-to-traces: Undefined
        traces-to-logs: Undefined
        traces-to-metrics: Alpha
        traces-to-traces: Undefined
    - name: {}
      stability:
        logs-to-logs: Beta
        logs-to-metrics: Undefined
        logs-to-traces: Undefined
        metrics-to-logs: Undefined
        metrics-to-metrics: Beta
        metrics-to-traces: Undefined
        traces-to-logs: Undefined
        traces-to-metrics: Undefined
        traces-to-traces: Beta
    - name: {}
      stability:
        logs-to-logs: Undefined
        logs-to-metrics: Development
        logs-to-traces: Undefined
        metrics-to-logs: Undefined
        metrics-to-metrics: Development
        metrics-to-traces: Undefined
        traces-to-logs: Undefined
        traces-to-metrics: Development
        traces-to-traces: Undefined
    - name: {}
      stability:
        logs-to-logs: Undefined
        logs-to-metrics: Undefined
        logs-to-traces: Undefined
        metrics-to-logs: Undefined
        metrics-to-metrics: Undefined
        metrics-to-traces: Undefined
        traces-to-logs: Undefined
        traces-to-metrics: Beta
        traces-to-traces: Beta
    - name: {}
      stability:
        logs-to-logs: Undefined
        logs-to-metrics: Undefined
        logs-to-traces: Undefined
        metrics-to-logs: Undefined
        metrics-to-metrics: Undefined
        metrics-to-traces: Undefined
        traces-to-logs: Development
        traces-to-metrics: Development
        traces-to-traces: Undefined
extensions:
    - name: {}
      stability:
        extension: Alpha
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Development
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Development
    - name: {}
      stability:
        extension: Alpha
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Development
    - name: {}
      stability:
        extension: Alpha
    - name: {}
      stability:
        extension: Alpha
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Alpha
    - name: {}
      stability:
        extension: Development
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Deprecated
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Development
    - name: {}
      stability:
        extension: Alpha
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Development
    - name: {}
      stability:
        extension: Development
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Beta
    - name: {}
      stability:
        extension: Beta

@TylerHelmuth
Copy link
Member

TylerHelmuth commented Mar 26, 2024

I'm guessing this is caused by #9472

@FISHMANPET
Copy link
Author

FISHMANPET commented Mar 27, 2024

Another issue I found that's probably related to #9472 so I'll mention it here (but I can open a new issue if you'd like):
When running validate against a config with invalid components, the possible "valid values" given look like YAML nonsense as well:

% otelcol validate --config=config.yaml
Error: failed to get config: cannot unmarshal the configuration: 1 error(s) decoding:

* error decoding 'processors': unknown type: "probabilistic_samspler" for id: "probabilistic_samspler" (valid values: [<component.Type Value> <component.Type Value> <component.Type Value> <component.Type Value>])
2024/03/27 10:18:57 collector server run finished with error: failed to get config: cannot unmarshal the configuration: 1 error(s) decoding:

* error decoding 'processors': unknown type: "probabilistic_samspler" for id: "probabilistic_samspler" (valid values: [<component.Type Value> <component.Type Value> <component.Type Value> <component.Type Value>])

I was expecting the validation to fail, as I purposfully misspelled the name of the processor (adding the s to sampler to make samspler) but I would expect the possible "valid values" to be one of the four processors I have included in this collector build. It gives 4 instances of the YAML nonsense so it's properly enumerating all the processors I have in my collector, it's just failing to properly generate their names.

@TylerHelmuth
Copy link
Member

I agree that it is related, but the PR I opened doesn't fix this validate issue so it needs more investigation. Can you open a separate issue?

dmitryax pushed a commit that referenced this issue Mar 27, 2024
**Description:**
Adds `MarshalText` function so that `Type` can be properly marshaled as yaml.

**Link to tracking Issue:** Fixes #9855
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants