Packages
sentry
7.0.4
13.3.0
13.2.0
13.1.0
13.0.1
13.0.0
12.0.3
12.0.2
12.0.1
12.0.0
11.0.4
11.0.3
11.0.2
11.0.1
11.0.0
10.10.0
10.9.0
10.8.1
10.8.0
10.7.1
10.7.0
10.6.2
10.6.1
10.6.0
10.5.0
10.4.0
10.3.0
10.2.1
10.2.0
10.2.0-rc.2
10.2.0-rc.1
10.1.0
10.0.3
10.0.2
10.0.1
10.0.0
9.1.0
9.0.0
8.1.0
8.0.6
8.0.5
8.0.4
8.0.3
8.0.2
8.0.1
8.0.0
8.0.0-rc.2
8.0.0-rc.1
8.0.0-rc.0
retired
7.2.5
7.2.4
7.2.3
7.2.2
7.2.1
7.2.0
7.1.0
7.0.6
7.0.5
7.0.4
7.0.3
7.0.2
7.0.1
7.0.0
6.4.2
6.4.1
6.4.0
6.3.0
6.2.1
6.2.0
6.1.0
6.0.5
6.0.4
6.0.3
6.0.2
6.0.1
6.0.0
5.0.1
5.0.0
4.0.3
4.0.2
4.0.1
4.0.0
3.0.0
2.2.0
2.1.0
2.0.2
2.0.1
2.0.0
1.1.2
1.1.1
1.1.0
1.0.0
0.3.2
0.3.1
0.3.0
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
The Official Elixir client for Sentry
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/sentry.send_test_event.ex
defmodule Mix.Tasks.Sentry.SendTestEvent do
use Mix.Task
alias Sentry.Config
@shortdoc "Attempts to send a test event to check Sentry configuration"
@moduledoc """
Send test even to check if Sentry configuration is correct.
"""
def run(args) do
unless "--no-compile" in args do
Mix.Project.compile(args)
end
Application.ensure_all_started(:sentry)
Sentry.Client.get_dsn()
|> print_environment_info()
maybe_send_event()
end
defp print_environment_info({endpoint, public_key, secret_key}) do
Mix.shell().info("Client configuration:")
Mix.shell().info("server: #{endpoint}")
Mix.shell().info("public_key: #{public_key}")
Mix.shell().info("secret_key: #{secret_key}")
Mix.shell().info("included_environments: #{inspect(included_environments())}")
Mix.shell().info("current environment_name: #{inspect(Config.environment_name())}")
Mix.shell().info("hackney_opts: #{inspect(Config.hackney_opts())}\n")
end
defp included_environments do
case Application.fetch_env(:sentry, :included_environments) do
{:ok, envs} when is_list(envs) ->
envs
_ ->
Mix.raise(
"Sentry included_environments is not configured in :sentry, :included_environments"
)
end
end
defp maybe_send_event do
env_name = Config.environment_name()
included_envs = included_environments()
if env_name in included_envs do
Mix.shell().info("Sending test event...")
result =
"Testing sending Sentry event"
|> RuntimeError.exception()
|> Sentry.capture_exception(result: :sync)
case result do
{:ok, id} ->
Mix.shell().info("Test event sent! Event ID: #{id}")
:error ->
Mix.shell().info("Error sending event!")
:excluded ->
Mix.shell().info("No test event was sent because the event was excluded by a filter")
end
else
Mix.shell().info(
"#{inspect(env_name)} is not in #{inspect(included_envs)} so no test event will be sent"
)
end
end
end