nginxinc / nginx-otel

Apache License 2.0
165 stars 19 forks source link

Allow using the module without specifying an exporter #61

Open akheron opened 2 months ago

akheron commented 2 months ago

Is your feature request related to a problem? Please describe

For some use cases, it might be beneficial to use this module even without specifying an exporter at all, or "exporting" the traces by printing/logging.

Use cases:

Describe the solution you'd like

Don't require an otel_exporter section at all, or allow configuring a printing/logging exporter in otel_exporter section.

Describe alternatives you've considered

Alternatively, only require otel_exporter section if tracing on; is used in a location block. tracing off; would not require it. This is the "worst" option in my opinion, but would also be a workaround to allow enabling the module.

Additional context

None

p-pautov commented 2 months ago

You should be able to use module without otel_exporter today, if there are no explicit otel_trace directives, which is quite close to the "worst" alternative above. Another "creative" workaround is to use dummy exporter (exporter errors do not block traffic processing) and/or set "forever" interval.

However, running without exporter or even with "logging exporter" won't be "the same code", as the bulk of module's logic is dedicated to gRPC export.

There might be some value in "logging exporter", but it seems rather limited, given otelcol project provides binaries for many platforms.

akheron commented 2 months ago

You should be able to use module without otel_exporter today, if there are no explicit otel_trace directives, which is quite close to the "worst" alternative above.

Thanks! I guess this suffices as a workaround for now.

However, running without exporter or even with "logging exporter" won't be "the same code", as the bulk of module's logic is dedicated to gRPC export.

Fair point.