@@ -62,6 +62,14 @@ defmodule Sentry.Config do
6262 ]
6363 ]
6464 ]
65+ ] ,
66+ opentelemetry: [
67+ type: :boolean ,
68+ doc: """
69+ A boolean switch that sets up [OpenTelemetry](https://opentelemetry.io/docs/languages/erlang/)
70+ automatically to instrument your application and export the spans to Sentry.
71+ *Available since vTODO*.
72+ """
6573 ]
6674 ]
6775
@@ -464,37 +472,43 @@ defmodule Sentry.Config do
464472 @ spec dsn ( ) :: nil | { String . t ( ) , String . t ( ) , String . t ( ) }
465473 def dsn , do: get ( :dsn )
466474
467- @ spec envelope_endpoint ( ) :: String . t ( )
475+ @ spec envelope_endpoint ( ) :: nil | String . t ( )
468476 def envelope_endpoint do
469- { base_uri , _ , _ } = dsn ( )
470- base_uri <> "envelope/"
477+ case dsn ( ) do
478+ { base_uri , _ , _ } -> base_uri <> "envelope/"
479+ _ -> nil
480+ end
471481 end
472482
473- @ spec spans_endpoint ( ) :: String . t ( )
483+ @ spec spans_endpoint ( ) :: nil | String . t ( )
474484 def spans_endpoint do
475- { base_uri , _ , _ } = dsn ( )
476- base_uri <> "spans/"
485+ case dsn ( ) do
486+ { base_uri , _ , _ } -> base_uri <> "spans/"
487+ _ -> nil
488+ end
477489 end
478490
479- @ spec auth_headers ( ) :: [ { String . t ( ) , String . t ( ) } ]
491+ @ spec auth_headers ( ) :: nil | [ { String . t ( ) , String . t ( ) } ]
480492 def auth_headers do
481- { _ , public_key , secret_key } = dsn ( )
482-
483- auth_query =
484- [
485- sentry_version: @ sentry_version ,
486- sentry_client: @ sentry_client ,
487- sentry_timestamp: System . system_time ( :second ) ,
488- sentry_key: public_key ,
489- sentry_secret: secret_key
490- ]
491- |> Enum . reject ( fn { _ , value } -> is_nil ( value ) end )
492- |> Enum . map_join ( ", " , fn { name , value } -> "#{ name } =#{ value } " end )
493+ case dsn ( ) do
494+ { _ , public_key , secret_key } ->
495+ auth_query =
496+ [
497+ sentry_version: @ sentry_version ,
498+ sentry_client: @ sentry_client ,
499+ sentry_timestamp: System . system_time ( :second ) ,
500+ sentry_key: public_key ,
501+ sentry_secret: secret_key
502+ ]
503+ |> Enum . reject ( fn { _ , value } -> is_nil ( value ) end )
504+ |> Enum . map_join ( ", " , fn { name , value } -> "#{ name } =#{ value } " end )
493505
494- [
495- { "User-Agent" , @ sentry_client } ,
496- { "X-Sentry-Auth" , "Sentry " <> auth_query }
497- ]
506+ [
507+ { "User-Agent" , @ sentry_client } ,
508+ { "X-Sentry-Auth" , "Sentry " <> auth_query }
509+ ]
510+ _ -> nil
511+ end
498512 end
499513
500514 # TODO: remove me on v11.0.0, :included_environments has been deprecated
0 commit comments