opentelemetry-cpp icon indicating copy to clipboard operation
opentelemetry-cpp copied to clipboard

[CONFIG] Implement file configuration

Open marcalff opened this issue 1 year ago • 0 comments

The spec for file configuration is shaping up, opentelemetry-cpp needs to start planning for this.

  • https://github.com/open-telemetry/oteps/pull/225
  • https://github.com/open-telemetry/opentelemetry-specification/pull/3805
  • https://github.com/open-telemetry/opentelemetry-specification/pull/3840
  • https://github.com/open-telemetry/opentelemetry-specification/pull/3850
  • https://github.com/open-telemetry/opentelemetry-specification/pull/3948
  • https://github.com/open-telemetry/opentelemetry-specification/pull/3804
  • https://github.com/open-telemetry/opentelemetry-specification/pull/3802
  • https://github.com/open-telemetry/opentelemetry-specification/issues/3752
  • https://github.com/open-telemetry/opentelemetry-specification/issues/3967
  • https://github.com/open-telemetry/opentelemetry-specification/issues/3966
  • https://github.com/open-telemetry/opentelemetry-configuration/issues/100

Spec: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/file-configuration.md

Sub tasks:

  • [X] Define the config file format (yaml)
  • [X] Define the config file schema - experimental, see https://github.com/open-telemetry/opentelemetry-configuration
  • [ ] Pick a yaml parser
    • [X] Evaluate yaml-cpp - DO NOT USE
    • [X] Evaluate libyaml - DO NOT USE
    • [X] Evaluate rapidyaml - OK technically. MIT License.
    • [ ] Legal - confirm license compatibility, see https://github.com/open-telemetry/community/issues/2383
    • [ ] Evaluate other choices.
  • [X] Define C++ classes for the config model
    • [X] Propagators.
    • [X] Traces.
    • [X] Metrics.
    • [X] Logs.
  • [X] Implement environment variables substitution from yaml
  • [X] Populate the C++ config model from yaml
    • [X] Propagators.
    • [X] Traces.
    • [X] Metrics.
    • [X] Logs.
  • [ ] Instantiate SDK and exporter objects from the C++ config model
    • [X] Propagators.
    • [X] Traces.
    • [ ] Metrics.
    • [ ] Logs.
  • [ ] User documentation
  • [X] Define a registry for plugin components
    • [X] propagators
    • [X] trace plugins
      • [X] samplers
      • [X] span processors
      • [X] span exporters
    • [ ] metric plugins
    • [ ] logs plugins
  • [X] Populate config model from yaml, for registered third party components
    • [X] propagators
    • [X] trace plugins
      • [X] samplers
      • [X] span processors
      • [X] span exporters
    • [ ] metric plugins
    • [ ] logs plugins
  • [X] Instantiate plugins from config model, for registered third party components
    • [X] propagators
    • [X] trace plugins
      • [X] samplers
      • [X] span processors
      • [X] span exporters
    • [ ] metric plugins
    • [ ] logs plugins
  • [ ] Third party documentation (for implementing plugins)

Related issues, found while implementing this feature:

  • community
    • https://github.com/open-telemetry/community/issues/2383
  • opentelemetry-configuration
    • https://github.com/open-telemetry/opentelemetry-configuration/issues/70
    • https://github.com/open-telemetry/opentelemetry-configuration/issues/72
    • https://github.com/open-telemetry/opentelemetry-configuration/issues/74
    • https://github.com/open-telemetry/opentelemetry-configuration/issues/75
    • https://github.com/open-telemetry/opentelemetry-configuration/issues/108
    • https://github.com/open-telemetry/opentelemetry-configuration/issues/109
  • opentelemetry-specifications
    • https://github.com/open-telemetry/opentelemetry-specification/issues/3894
    • https://github.com/open-telemetry/opentelemetry-specification/pull/3913
    • https://github.com/open-telemetry/opentelemetry-specification/issues/3920
  • opentelemetry-cpp
    • https://github.com/open-telemetry/opentelemetry-cpp/issues/2545
    • https://github.com/open-telemetry/opentelemetry-cpp/issues/2552
    • https://github.com/open-telemetry/opentelemetry-cpp/issues/2664
  • ryml
    • https://github.com/biojppm/rapidyaml/issues/455
    • https://github.com/biojppm/rapidyaml/issues/458
    • https://github.com/biojppm/rapidyaml/issues/468

marcalff avatar Jan 10 '24 00:01 marcalff