diff --git a/lib/spandex_ecto/ecto_logger.ex b/lib/spandex_ecto/ecto_logger.ex index 3bc7612..ab0a1c9 100644 --- a/lib/spandex_ecto/ecto_logger.ex +++ b/lib/spandex_ecto/ecto_logger.ex @@ -21,6 +21,7 @@ defmodule SpandexEcto.EctoLogger do tracer = config[:tracer] || raise "tracer is a required option for #{inspect(__MODULE__)}" service = config[:service] || :ecto truncate = config[:truncate] || 5000 + emit_detailed_spans = Keyword.get(config, :emit_detailed_spans, true) if tracer.current_trace_id() do now = :os.system_time(:nano_seconds) @@ -58,34 +59,36 @@ defmodule SpandexEcto.EctoLogger do report_error(tracer, log_entry) - if queue_time != 0 do - tracer.start_span("queue") - tracer.update_span(service: service, start: start, completion_time: start + queue_time) - tracer.finish_span() - end + if emit_detailed_spans do + if queue_time != 0 do + tracer.start_span("queue") + tracer.update_span(service: service, start: start, completion_time: start + queue_time) + tracer.finish_span() + end - if query_time != 0 do - tracer.start_span("run_query") + if query_time != 0 do + tracer.start_span("run_query") - tracer.update_span( - service: service, - start: start + queue_time, - completion_time: start + queue_time + query_time - ) + tracer.update_span( + service: service, + start: start + queue_time, + completion_time: start + queue_time + query_time + ) - tracer.finish_span() - end + tracer.finish_span() + end - if decoding_time != 0 do - tracer.start_span("decode") + if decoding_time != 0 do + tracer.start_span("decode") - tracer.update_span( - service: service, - start: start + queue_time + query_time, - completion_time: now - ) + tracer.update_span( + service: service, + start: start + queue_time + query_time, + completion_time: now + ) - tracer.finish_span() + tracer.finish_span() + end end tracer.finish_span()