open-telemetry / opentelemetry-go

OpenTelemetry Go API and SDK
https://opentelemetry.io/docs/languages/go
Apache License 2.0
5.36k stars 1.09k forks source link

Add otlplogfile exporter #5408

Open pellared opened 6 months ago

pellared commented 6 months ago

Blocked:

Implement an OTLP Log File exporter based on https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/file-exporter.md

thomasgouveia commented 3 months ago

Hi @pellared!

Before doing this one, as stated in #5500, maybe it will be necessary to introduce something that can serialize the data into the OpenTelemetry JSON format.

Because as you mentioned here, we can add a public function into a otlplogfile package, but is it coherent with what the package is responsible for? I mean that IMHO, the otlplogfile package should be responsible for appending log records to a JSON file.

If we extract the serialization part into another internal (or public, if it makes sense) package such as otlpserde (naming is just an example), we can use a dependency into otlplogfile and stdoutlog, so the format will be consistent across the different implementations.

What do you think about it?

pellared commented 3 months ago

stdoutlog is intended to be used mainly for debugging therefore it aims for human-readability.

otlplogfile is on the other hand MUST serialize telemetry in computer-readable format as defined in the specification.

I suggest not extracting any separate package until necessary.

pellared commented 2 months ago

During last SIG meeting (https://github.com/open-telemetry/opentelemetry-go/pull/5743#issuecomment-2346847692) we decided that we do not want to maintain such exporter until it is stable.

@thomasgouveia, it may be worth to move the exporter you have created in https://github.com/open-telemetry/opentelemetry-go/pull/5743 to a separate repository and maintain it there. I can help you in maintaining it.

thomasgouveia commented 2 months ago

@pellared may it be located in the contrib repository? Or the contrib focuses only on stable implementation?

If we can't put it in the contrib repository, I can transfer it to a repository on my account, until the specification is stable.

pellared commented 2 months ago

During SIG it was recommended to not put it to contrib as well yet.

I can transfer it to a repository on my account, until the specification is stable.

Let's do this.

pellared commented 6 days ago

A shout-out to work related to OTLP File exporter:

However, let's wait until it is stable in the specification as we miss velocity to maintain an new experimental module at this point of time.