Skip to content

Proposal: merge pkg/translator/azure and pkg/translator/azurelogs #39969

Open
@Fiery-Fenix

Description

@Fiery-Fenix

Component(s)

pkg/translator/azurelogs

Describe the issue you're reporting

Both components providing similar functionality and even shares some code, for example TimeFormats functionality.
There 2 components that depends on those translators:

  • receiver/azureeventhubreceiver (it even depends on both translators)
  • receiver/kafkareceiver

Because both mentioned receivers can be used for the same purpose - consuming Azure Resource Logs from EventHub (the only difference is that azureeventhubreceiver uses AMQP protocol to communicate with EventHub, while kafkareceiver - Kafka protocol) - it is introducing major discrepancy in received data, because azurelogs and azure has different parsing logic.
To avoid such discrepancy I would like to propose to merge both translators into single one, with maybe some configuration addition to preserve compatibility.
This merge will also helps with future movement of this translators into encoding package (#39095)

Main difference at the moment in translators:
translator/azure:

  • Has support for conversion of Azure Trace Records to OTLP Traces
  • Parses Azure Resource Logs Attributes into OTLP Log Attributes
  • Doesn't have Azure Resource Logs Category specific conversion rules

translator/azurelogs

  • Parses Azure Resource Logs Attributes into OTLP Log Body (transition to OTLP Log Attributes is a WIP at the moment)
  • Has Azure Resource Logs Category specific conversion rules for some part of Categories - this produce more aligned with OpenTelemetry SemConv outcome

As a result of merge, I would propose to have single component (ideally - encoding extension in future) that will have:

  • Support for conversion of Azure Trace Records to OTLP Traces
  • Parser for Azure Resource Logs Attributes into OTLP Log Attributes/Resource Attributes
  • Azure Resource Logs Category specific conversion rules
  • Configurable behavior

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions