From e58ffcbe852c7e46708274bd89983830c52c8851 Mon Sep 17 00:00:00 2001 From: Peter Solnica Date: Fri, 27 Sep 2024 09:21:23 +0000 Subject: [PATCH] More dialyzer fixes --- lib/sentry/envelope.ex | 2 +- lib/sentry/opentelemetry/span_processor.ex | 21 ++++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/sentry/envelope.ex b/lib/sentry/envelope.ex index 69421e15..a8470495 100644 --- a/lib/sentry/envelope.ex +++ b/lib/sentry/envelope.ex @@ -6,7 +6,7 @@ defmodule Sentry.Envelope do @type t() :: %__MODULE__{ event_id: UUID.t(), - items: [Event.t() | Attachment.t() | CheckIn.t(), ...] + items: [Event.t() | Attachment.t() | CheckIn.t() | Transaction.t(), ...] } @enforce_keys [:event_id, :items] diff --git a/lib/sentry/opentelemetry/span_processor.ex b/lib/sentry/opentelemetry/span_processor.ex index ab42728d..39ec6845 100644 --- a/lib/sentry/opentelemetry/span_processor.ex +++ b/lib/sentry/opentelemetry/span_processor.ex @@ -1,6 +1,8 @@ defmodule Sentry.Opentelemetry.SpanProcessor do @behaviour :otel_span_processor + require Logger + alias Sentry.{Span, Transaction, Opentelemetry.SpanStorage, Opentelemetry.SpanRecord} @impl true @@ -24,13 +26,26 @@ defmodule Sentry.Opentelemetry.SpanProcessor do transaction = build_transaction(root_span, child_spans) - Sentry.send_transaction(transaction) + result = + case Sentry.send_transaction(transaction) do + {:ok, _id} -> + true + + :ignored -> + true + + {:error, error} -> + Logger.error("Failed to send transaction to Sentry: #{inspect(error)}") + {:error, :invalid_span} + end SpanStorage.remove_span(span_record.span_id) SpanStorage.remove_child_spans(span_record.span_id) - end - :ok + result + else + true + end end @impl true