Add Sentry
This commit is contained in:
parent
6e0271bf4b
commit
fce1bf6c2f
|
@ -30,6 +30,8 @@ config :phoenix, :json_library, Jason
|
||||||
|
|
||||||
config :logger, truncate: :infinity
|
config :logger, truncate: :infinity
|
||||||
|
|
||||||
|
config :frenzy, sentry_enabled: false
|
||||||
|
|
||||||
# Import environment specific config. This must remain at the bottom
|
# Import environment specific config. This must remain at the bottom
|
||||||
# of this file so it overrides the configuration defined above.
|
# of this file so it overrides the configuration defined above.
|
||||||
import_config "#{Mix.env()}.exs"
|
import_config "#{Mix.env()}.exs"
|
||||||
|
|
|
@ -6,4 +6,8 @@ defmodule Frenzy do
|
||||||
Contexts are also responsible for managing your data, regardless
|
Contexts are also responsible for managing your data, regardless
|
||||||
if it comes from the database, an external API or others.
|
if it comes from the database, an external API or others.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def sentry_enabled? do
|
||||||
|
Application.get_env(:frenzy, :sentry_enabled)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -100,6 +100,13 @@ defmodule Frenzy.Pipeline.ScrapeStage do
|
||||||
|
|
||||||
Logger.error(Exception.format(:error, e, __STACKTRACE__))
|
Logger.error(Exception.format(:error, e, __STACKTRACE__))
|
||||||
|
|
||||||
|
if Frenzy.sentry_enabled?() do
|
||||||
|
Sentry.capture_exception(e,
|
||||||
|
stacktrace: __STACKTRACE__,
|
||||||
|
extra: %{extractor: module_name, item_url: url}
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
{:ok, Readability.article(body)}
|
{:ok, Readability.article(body)}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -75,6 +75,13 @@ defmodule Frenzy.UpdateFeeds do
|
||||||
Logger.warn(
|
Logger.warn(
|
||||||
"Encountered error updating feed #{feed.id} #{feed.feed_url}: #{inspect(error)}"
|
"Encountered error updating feed #{feed.id} #{feed.feed_url}: #{inspect(error)}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if Frenzy.sentry_enabled?() do
|
||||||
|
Sentry.capture_exception(error,
|
||||||
|
stacktrace: __STACKTRACE__,
|
||||||
|
extra: %{feed_id: feed.id, feed_url: feed.feed_url}
|
||||||
|
)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
defmodule FrenzyWeb.Endpoint do
|
defmodule FrenzyWeb.Endpoint do
|
||||||
|
if Frenzy.sentry_enabled?() do
|
||||||
|
use Sentry.PlugCapture
|
||||||
|
end
|
||||||
|
|
||||||
use Phoenix.Endpoint, otp_app: :frenzy
|
use Phoenix.Endpoint, otp_app: :frenzy
|
||||||
|
|
||||||
@session_options [
|
@session_options [
|
||||||
|
@ -39,6 +43,10 @@ defmodule FrenzyWeb.Endpoint do
|
||||||
pass: ["*/*"],
|
pass: ["*/*"],
|
||||||
json_decoder: Phoenix.json_library()
|
json_decoder: Phoenix.json_library()
|
||||||
|
|
||||||
|
if Frenzy.sentry_enabled?() do
|
||||||
|
plug Sentry.PlugContext
|
||||||
|
end
|
||||||
|
|
||||||
plug Plug.MethodOverride
|
plug Plug.MethodOverride
|
||||||
plug Plug.Head
|
plug Plug.Head
|
||||||
|
|
||||||
|
|
6
mix.exs
6
mix.exs
|
@ -56,7 +56,8 @@ defmodule Frenzy.MixProject do
|
||||||
{:floki, "~> 0.23"},
|
{:floki, "~> 0.23"},
|
||||||
{:phoenix_live_view,
|
{:phoenix_live_view,
|
||||||
git: "https://github.com/phoenixframework/phoenix_live_view", branch: "master"},
|
git: "https://github.com/phoenixframework/phoenix_live_view", branch: "master"},
|
||||||
{:gemini, git: "https://git.shadowfacts.net/shadowfacts/gemini-ex.git", branch: "main"}
|
{:gemini, git: "https://git.shadowfacts.net/shadowfacts/gemini-ex.git", branch: "main"},
|
||||||
|
{:sentry, "~> 8.0"}
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -70,7 +71,8 @@ defmodule Frenzy.MixProject do
|
||||||
[
|
[
|
||||||
"ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
|
"ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
|
||||||
"ecto.reset": ["ecto.drop", "ecto.setup"],
|
"ecto.reset": ["ecto.drop", "ecto.setup"],
|
||||||
test: ["ecto.create --quiet", "ecto.migrate", "test"]
|
test: ["ecto.create --quiet", "ecto.migrate", "test"],
|
||||||
|
sentry_recompile: ["deps.compile sentry --force", "compile"]
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
1
mix.lock
1
mix.lock
|
@ -44,6 +44,7 @@
|
||||||
"ranch": {:hex, :ranch, "1.7.1", "6b1fab51b49196860b733a49c07604465a47bdb78aa10c1c16a3d199f7f8c881", [:rebar3], [], "hexpm", "451d8527787df716d99dc36162fca05934915db0b6141bbdac2ea8d3c7afc7d7"},
|
"ranch": {:hex, :ranch, "1.7.1", "6b1fab51b49196860b733a49c07604465a47bdb78aa10c1c16a3d199f7f8c881", [:rebar3], [], "hexpm", "451d8527787df716d99dc36162fca05934915db0b6141bbdac2ea8d3c7afc7d7"},
|
||||||
"readability": {:git, "https://git.shadowfacts.net/shadowfacts/readability.git", "1538ca2a8c3c3b6b041c9e86b560f368c4547896", [branch: "master"]},
|
"readability": {:git, "https://git.shadowfacts.net/shadowfacts/readability.git", "1538ca2a8c3c3b6b041c9e86b560f368c4547896", [branch: "master"]},
|
||||||
"saxy": {:hex, :saxy, "0.6.0", "cdb2f2fcd8133d1f3f8b0cf6a131ee1ca348dca613de266e9a239db850c4a093", [:mix], [], "hexpm"},
|
"saxy": {:hex, :saxy, "0.6.0", "cdb2f2fcd8133d1f3f8b0cf6a131ee1ca348dca613de266e9a239db850c4a093", [:mix], [], "hexpm"},
|
||||||
|
"sentry": {:hex, :sentry, "8.0.5", "5ca922b9238a50c7258b52f47364b2d545beda5e436c7a43965b34577f1ef61f", [:mix], [{:hackney, "~> 1.8", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}, {:plug, "~> 1.6", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, "~> 2.3", [hex: :plug_cowboy, repo: "hexpm", optional: true]}], "hexpm", "4972839fdbf52e886d7b3e694c8adf421f764f2fa79036b88fb4742049bd4b7c"},
|
||||||
"socket": {:hex, :socket, "0.3.13", "98a2ab20ce17f95fb512c5cadddba32b57273e0d2dba2d2e5f976c5969d0c632", [:mix], [], "hexpm", "f82ea9833ef49dde272e6568ab8aac657a636acb4cf44a7de8a935acb8957c2e"},
|
"socket": {:hex, :socket, "0.3.13", "98a2ab20ce17f95fb512c5cadddba32b57273e0d2dba2d2e5f976c5969d0c632", [:mix], [], "hexpm", "f82ea9833ef49dde272e6568ab8aac657a636acb4cf44a7de8a935acb8957c2e"},
|
||||||
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.6", "cf344f5692c82d2cd7554f5ec8fd961548d4fd09e7d22f5b62482e5aeaebd4b0", [:make, :mix, :rebar3], [], "hexpm", "bdb0d2471f453c88ff3908e7686f86f9be327d065cc1ec16fa4540197ea04680"},
|
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.6", "cf344f5692c82d2cd7554f5ec8fd961548d4fd09e7d22f5b62482e5aeaebd4b0", [:make, :mix, :rebar3], [], "hexpm", "bdb0d2471f453c88ff3908e7686f86f9be327d065cc1ec16fa4540197ea04680"},
|
||||||
"telemetry": {:hex, :telemetry, "0.4.2", "2808c992455e08d6177322f14d3bdb6b625fbcfd233a73505870d8738a2f4599", [:rebar3], [], "hexpm", "2d1419bd9dda6a206d7b5852179511722e2b18812310d304620c7bd92a13fcef"},
|
"telemetry": {:hex, :telemetry, "0.4.2", "2808c992455e08d6177322f14d3bdb6b625fbcfd233a73505870d8738a2f4599", [:rebar3], [], "hexpm", "2d1419bd9dda6a206d7b5852179511722e2b18812310d304620c7bd92a13fcef"},
|
||||||
|
|
Loading…
Reference in New Issue