Skip to content

ETW exporter field names #466

Description

@maxgolov

Opened to follow-up to action item in this PR #376

Problem Statement

ETW - Event Tracing for Windows - allows to express an event as structured key-value pairs. Field / property names for event - could be anything. The idea is to align ETW field names with OpenTelemetry protocol spec / OTLP spec as close as possible. However, some other non-OTLP collector flows may require different standard schema / field names.

Proposed Solution

ETW exporter may handle this as follows:

  • extension point (pluggable method, extension, additional class) that allows to remap from OpenTelemetry fields, attributes, resource names to custom protocol
  • compile-time header that defines the mapping, that defines - customer event field X has to be assigned to ETW event field Y, that may be implemented either as a set of C const char* constants, or as std::map, that header with definitions can be added to the build system via macro define - to override some default set of fields.
  • ability for vendor to implement custom flavor of ETW exporter by inheriting from the default ETW exporter implementation. Different ETW listener agents may expect their own unique standard schemas, so some extensibility is nice-to-have. Unfortunately since C++ SDK does not provide runtime loadable extension points for SDK, this would have to manifest as yet another additional exporter, exporter-schemaA or exporter-schemaB added into vendor-compiled SDK.

Due to limited time given to @mishal23 (his community bridge internship ends end of December 2020) / extent of changes / scope of this "flexible fields naming" proposal, tracking this issue separately from his PR, to implement the feature in a separate PR.

Activity

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions