From 2367b707f20424b67643bac31cbe07ee4e0ec646 Mon Sep 17 00:00:00 2001 From: Artur Sulej Date: Wed, 28 Feb 2024 15:30:23 +0100 Subject: [PATCH] Config flag controlling if additional spans are emitted (queue, run_query, decode) --- lib/spandex_ecto/ecto_logger.ex | 47 ++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/lib/spandex_ecto/ecto_logger.ex b/lib/spandex_ecto/ecto_logger.ex index 3bc7612..b2bb539 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()