Skip to content

Conversation

@stuart23
Copy link
Contributor

Description

This PR adds the exporter_creator component that dynamically creates exporters at runtime based on observed endpoints from observer extensions (such as k8s_observer and jsonfile_observer). The component enables dynamic telemetry routing based on resource attributes, allowing exporters to be created and configured automatically when Kubernetes CRDs or other infrastructure resources are discovered.

Key features:

  • Dynamic exporter creation based on observer endpoint discovery
  • Telemetry routing based on resource attribute matching
  • Support for k8s CRD and JSON file observers
  • Metrics for tracking created exporters and non-routable telemetry
  • Configuration expansion using endpoint properties

Link to tracking issue

Fixes #45801

Testing

  • Added comprehensive unit tests for routing logic (router_test.go, router_mismatch_test.go)
  • Added tests for config expansion (config_expansion_test.go)
  • Added tests for CRD observer routing (crd_test.go, observer_routing_test.go)
  • Added tests for wrapped exporter functionality (exporter_wrapped_test.go)
  • All tests pass and provide coverage for:
    • Resource attribute to endpoint property matching
    • Configuration expansion with backtick expressions
    • Dynamic exporter creation and lifecycle management
    • Telemetry routing to matched exporters
    • Handling of non-routable telemetry

Documentation

  • Added README.md with component overview, configuration examples, and usage instructions
  • Added documentation for routing rules and exporter templates
  • Added examples for endpoint value expansion
  • Component is marked as [development] stability for logs, metrics, and traces

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dynamic Telemetry Exporters

1 participant