Packages
sentry
2.0.1
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"
def run(_args) do
Application.ensure_all_started(:sentry)
{endpoint, public_key, secret_key} = case Application.fetch_env(:sentry, :dsn) do
{:ok, dsn} when is_binary(dsn) -> Sentry.Client.parse_dsn!(dsn)
_ ->
Mix.raise "Sentry DSN is not configured in :sentry, :dsn"
end
included_environments = 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
environment_name = Application.get_env(:sentry, :environment_name)
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}\n"
maybe_send_event(environment_name, included_environments)
end
def maybe_send_event(env_name, included_envs) do
if env_name in included_envs do
Mix.shell.info "Sending test event..."
Sentry.capture_exception(RuntimeError.exception("Testing sending Sentry event"))
|> Task.await()
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