Skip to content

Commit

Permalink
Fix dialyzer warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
solnic committed Sep 27, 2024
1 parent 4c5bfc7 commit 2870a69
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 63 deletions.
7 changes: 2 additions & 5 deletions lib/sentry/client.ex
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,8 @@ defmodule Sentry.Client do
{:ok, id} ->
{:ok, id}

{:error, {status, headers, body}} ->
{:error, ClientError.server_error(status, headers, body)}

{:error, reason} ->
{:error, ClientError.new(reason)}
{:error, %ClientError{} = error} ->
{:error, error}
end
end

Expand Down
3 changes: 2 additions & 1 deletion lib/sentry/opentelemetry/span_record.ex
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
defmodule Sentry.Opentelemetry.SpanRecord do
require Record
require OpenTelemetry

@fields Record.extract(:span, from_lib: "opentelemetry/include/otel_span.hrl")
Record.defrecordp(:span, @fields)
Expand Down Expand Up @@ -54,7 +55,7 @@ defmodule Sentry.Opentelemetry.SpanRecord do
defp cast_timestamp(nil), do: nil

defp cast_timestamp(timestamp) do
nano_timestamp = :opentelemetry.timestamp_to_nano(timestamp)
nano_timestamp = OpenTelemetry.timestamp_to_nano(timestamp)
{:ok, datetime} = DateTime.from_unix(div(nano_timestamp, 1_000_000), :millisecond)

DateTime.to_iso8601(datetime)
Expand Down
64 changes: 7 additions & 57 deletions lib/sentry/transport/sender.ex
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ defmodule Sentry.Transport.Sender do

use GenServer

alias Sentry.{Envelope, Event, Transport, Transaction, LoggerUtils}
alias Sentry.{Envelope, Event, Transport, Transaction}

require Logger

Expand Down Expand Up @@ -61,64 +61,14 @@ defmodule Sentry.Transport.Sender do

@impl GenServer
def handle_cast({:send, client, %Transaction{} = transaction}, %__MODULE__{} = state) do
envelope = Envelope.from_transaction(transaction)

envelope
|> Transport.encode_and_post_envelope(client)
|> maybe_log_send_result([transaction])
_ =
transaction
|> Envelope.from_transaction()
|> Transport.encode_and_post_envelope(client)

# We sent an event, so we can decrease the number of queued events.
Transport.SenderPool.decrease_queued_events_counter()
# We sent a transaction, so we can decrease the number of queued transactions.
Transport.SenderPool.decrease_queued_transactions_counter()

{:noreply, state}
end

## Helpers

defp maybe_log_send_result(send_result, events) do
if Enum.any?(events, fn item ->
case item do
%Event{} -> item.source == :logger
_ -> false
end
end) do
:ok
else
message =
case send_result do
{:error, {:invalid_json, error}} ->
"Unable to encode JSON Sentry error - #{inspect(error)}"

{:error, {:request_failure, last_error}} ->
case last_error do
{kind, data, stacktrace}
when kind in [:exit, :throw, :error] and is_list(stacktrace) ->
Exception.format(kind, data, stacktrace)

_other ->
"Error in HTTP Request to Sentry - #{inspect(last_error)}"
end

{:error, http_reponse} ->
{status, headers, _body} = http_reponse

error_header =
:proplists.get_value("X-Sentry-Error", headers, nil) ||
:proplists.get_value("x-sentry-error", headers, nil) || ""

if error_header != "" do
"Received #{status} from Sentry server: #{error_header}"
else
"Received #{status} from Sentry server"
end

result ->
result
end

if message do
LoggerUtils.log(fn -> ["Failed to send Sentry event. ", message] end)
end
end
end
end
6 changes: 6 additions & 0 deletions lib/sentry/transport/sender_pool.ex
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,12 @@ defmodule Sentry.Transport.SenderPool do
:counters.sub(counter, 1, 1)
end

@spec decrease_queued_transactions_counter() :: :ok
def decrease_queued_transactions_counter do
counter = :persistent_term.get(@queued_transactions_key)
:counters.sub(counter, 1, 1)
end

@spec get_queued_events_counter() :: non_neg_integer()
def get_queued_events_counter do
counter = :persistent_term.get(@queued_events_key)
Expand Down

0 comments on commit 2870a69

Please sign in to comment.