Packages
sentry
10.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
alias Sentry.Config
@shortdoc "Send a test event to Sentry to check your Sentry configuration"
@moduledoc """
Sends a test event to Sentry to check if your Sentry configuration is correct.
This task reports a `RuntimeError` exception like this one:
%RuntimeError{message: "Testing sending Sentry event"}
## Options
* `--no-compile` - does not compile, even if files require compilation.
"""
@impl true
def run(args) when is_list(args) do
unless "--no-compile" in args do
Mix.Task.run("compile", args)
end
case Application.ensure_all_started(:sentry) do
{:ok, _apps} ->
:ok
{:error, reason} ->
Mix.raise("Failed to start the :sentry application:\n\n#{inspect(reason)}")
end
print_environment_info()
if Config.dsn() do
send_event()
else
Mix.shell().info([
:yellow,
"Event not sent because the :dsn option is not set (or set to nil)"
])
end
end
defp print_environment_info do
Mix.shell().info("Client configuration:")
if Config.dsn() do
{endpoint, public_key, secret_key} = Sentry.Transport.get_dsn()
Mix.shell().info("server: #{endpoint}")
Mix.shell().info("public_key: #{public_key}")
Mix.shell().info("secret_key: #{secret_key}")
end
Mix.shell().info("current environment_name: #{inspect(to_string(Config.environment_name()))}")
Mix.shell().info("hackney_opts: #{inspect(Config.hackney_opts())}\n")
end
defp send_event do
Mix.shell().info("Sending test event...")
exception = %RuntimeError{message: "Testing sending Sentry event"}
{:current_stacktrace, stacktrace} = Process.info(self(), :current_stacktrace)
case Sentry.capture_exception(exception, result: :sync, stacktrace: stacktrace) do
{:ok, id} ->
Mix.shell().info([:green, :bright, "Test event sent", :reset, "\nEvent ID: #{id}"])
{:error, reason} ->
Mix.raise("Error sending event:\n\n#{inspect(reason)}")
:excluded ->
Mix.shell().info("No test event was sent because the event was excluded by a filter")
:unsampled ->
Mix.shell().info("""
No test event was sent because the event was excluded according to the :sample_rate \
configuration option.
""")
end
end
end