open-telemetry / opentelemetry-dotnet

The OpenTelemetry .NET Client
https://opentelemetry.io
Apache License 2.0
3.25k stars 767 forks source link

[feature request] Official file exporter #5920

Open DrEsteban opened 1 month ago

DrEsteban commented 1 month ago

Package

None

Is your feature request related to a problem?

No response

What is the expected behavior?

It would be nice if there were an "official" filesystem exporter for traces/logs/metrics in .NET. I find it useful for local debugging, as well as job-based workloads where the logs could be exported or further processed.

Which alternative solutions or features have you considered?

I've copy/pasted the implementation of the ConsoleExporter(s) and simply updated the WriteLine() method in the base class to write to a FileStream instead of the console.

This is fine for most cases, (aside from the annoyance of having to copy/paste/adapt), but it's obviously in a very human-readable format. It'd be nice if there were perhaps 2 official implementations or modes: One to output in a similar human-readable format, and one that's serialized for a more machine-readable format.

Additional context

5231

cijothomas commented 1 month ago

Once https://github.com/open-telemetry/opentelemetry-specification/pull/4183 lands, this is doable.

martinjt commented 1 week ago

The relevant one is this: https://github.com/open-telemetry/opentelemetry-specification/issues/3817

Whether that will become a thing is a different question. From stdout you should be able to pipe the data though, and in all other scenarios, a collector with the file exporter would likely be the more efficient way to do this.

I suppose we'll see whether this becomes a requirement, but until then, there are other ways this can be achieved and therefore I don't think we should leave this open.