Packages
sentry
4.0.0
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
@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
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 environment_name()}"
Mix.shell.info "hackney_opts: #{inspect 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 environment_name, do: Application.get_env(:sentry, :environment_name)
defp hackney_opts, do: Application.get_env(:sentry, :hackney_opts, [])
defp maybe_send_event() do
env_name = environment_name()
included_envs = included_environments()
if env_name in included_envs do
Mix.shell.info "Sending test event..."
{:ok, task} = "Testing sending Sentry event"
|> RuntimeError.exception
|> Sentry.capture_exception
Task.await(task)
Mix.shell.info "Test event sent!"
else
Mix.shell.info "#{inspect env_name} is not in #{inspect included_envs} so no test event will be sent"
end
end
end