From 18ac442b2c53742f3fdcb09667da5c589d05b226 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Thu, 26 Feb 2026 21:31:37 +0000 Subject: [PATCH] Install ErrorTracker --- .formatter.exs | 2 +- config/config.exs | 1 + lib/music_library_web/router.ex | 4 ++++ mix.exs | 1 + mix.lock | 1 + priv/repo/migrations/20260226212444_add_error_tracker.exs | 6 ++++++ 6 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 priv/repo/migrations/20260226212444_add_error_tracker.exs diff --git a/.formatter.exs b/.formatter.exs index 2c5c5f90..4836f716 100644 --- a/.formatter.exs +++ b/.formatter.exs @@ -1,5 +1,5 @@ [ - import_deps: [:ecto, :ecto_sql, :oban, :oban_web, :phoenix, :phoenix_live_view], + import_deps: [:error_tracker, :ecto, :ecto_sql, :oban, :oban_web, :phoenix, :phoenix_live_view], subdirectories: ["priv/*/migrations"], plugins: [Phoenix.LiveView.HTMLFormatter, Quokka], inputs: ["*.{heex,ex,exs}", "{config,lib,test}/**/*.{heex,ex,exs}", "priv/*/seeds.exs"], diff --git a/config/config.exs b/config/config.exs index 90407135..4d4bd470 100644 --- a/config/config.exs +++ b/config/config.exs @@ -7,6 +7,7 @@ # General application configuration import Config +config :error_tracker, repo: MusicLibrary.Repo, otp_app: :music_library, enabled: true config :elixir, :time_zone_database, TimeZoneInfo.TimeZoneDatabase config :time_zone_info, update: :daily diff --git a/lib/music_library_web/router.ex b/lib/music_library_web/router.ex index 96fec62d..a6e8f393 100644 --- a/lib/music_library_web/router.ex +++ b/lib/music_library_web/router.ex @@ -1,5 +1,6 @@ defmodule MusicLibraryWeb.Router do use MusicLibraryWeb, :router + use ErrorTracker.Integrations.Plug use Honeybadger.Plug import MusicLibraryWeb.Auth, only: [require_logged_in: 2, require_api_token: 2] @@ -105,6 +106,7 @@ defmodule MusicLibraryWeb.Router do if Application.compile_env(:music_library, :monitoring_routes) do import Phoenix.LiveDashboard.Router + use ErrorTracker.Web, :router scope "/dev" do pipe_through [:browser, :logged_in] @@ -117,6 +119,8 @@ defmodule MusicLibraryWeb.Router do oban_dashboard "/oban" live "/maintenance", MusicLibraryWeb.MaintenanceLive.Index, :index + + error_tracker_dashboard "/errors" end end end diff --git a/mix.exs b/mix.exs index 322ea9b0..80af69d0 100644 --- a/mix.exs +++ b/mix.exs @@ -117,6 +117,7 @@ defmodule MusicLibrary.MixProject do {:lazy_html, ">= 0.1.0", only: :test}, # Prod error/perf tooling + {:error_tracker, "~> 0.7"}, {:sentry, "~> 11.0"}, {:honeybadger, "~> 0.24"}, {:phoenix_live_dashboard, "~> 0.8.3"}, diff --git a/mix.lock b/mix.lock index 6fc96172..ffd5f0e7 100644 --- a/mix.lock +++ b/mix.lock @@ -17,6 +17,7 @@ "ecto_sqlite3": {:hex, :ecto_sqlite3, "0.22.0", "edab2d0f701b7dd05dcf7e2d97769c106aff62b5cfddc000d1dd6f46b9cbd8c3", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:ecto, "~> 3.13.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:ecto_sql, "~> 3.13.0", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:exqlite, "~> 0.22", [hex: :exqlite, repo: "hexpm", optional: false]}], "hexpm", "5af9e031bffcc5da0b7bca90c271a7b1e7c04a93fecf7f6cd35bc1b1921a64bd"}, "ecto_sqlite3_extras": {:hex, :ecto_sqlite3_extras, "1.2.2", "36e60b561a11441d15f26c791817999269fb578b985162207ebb08b04ca71e40", [:mix], [{:exqlite, ">= 0.13.2", [hex: :exqlite, repo: "hexpm", optional: false]}, {:table_rex, "~> 4.0", [hex: :table_rex, repo: "hexpm", optional: false]}], "hexpm", "2b66ba7246bb4f7e39e2578acd4a0e4e4be54f60ff52d450a01be95eeb78ff1e"}, "elixir_make": {:hex, :elixir_make, "0.9.0", "6484b3cd8c0cee58f09f05ecaf1a140a8c97670671a6a0e7ab4dc326c3109726", [:mix], [], "hexpm", "db23d4fd8b757462ad02f8aa73431a426fe6671c80b200d9710caf3d1dd0ffdb"}, + "error_tracker": {:hex, :error_tracker, "0.7.1", "074f10bfb01961bd0d51eb010c6ddbe13bf40eb4ddfbb25538680ddb520ab1aa", [:mix], [{:ecto, "~> 3.13", [hex: :ecto, repo: "hexpm", optional: false]}, {:ecto_sql, "~> 3.13", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, ">= 0.0.0", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:igniter, "~> 0.5", [hex: :igniter, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:myxql, ">= 0.0.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:phoenix_ecto, "~> 4.6", [hex: :phoenix_ecto, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 1.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:plug, "~> 1.10", [hex: :plug, repo: "hexpm", optional: false]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "cc77434c084d100e17dcc5ccea6bed05b15748186df5207e21fb761651bf4e0d"}, "esbuild": {:hex, :esbuild, "0.10.0", "b0aa3388a1c23e727c5a3e7427c932d89ee791746b0081bbe56103e9ef3d291f", [:mix], [{:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "468489cda427b974a7cc9f03ace55368a83e1a7be12fba7e30969af78e5f8c70"}, "expo": {:hex, :expo, "1.1.1", "4202e1d2ca6e2b3b63e02f69cfe0a404f77702b041d02b58597c00992b601db5", [:mix], [], "hexpm", "5fb308b9cb359ae200b7e23d37c76978673aa1b06e2b3075d814ce12c5811640"}, "exqlite": {:hex, :exqlite, "0.35.0", "90741471945db42b66cd8ca3149af317f00c22c769cc6b06e8b0a08c5924aae5", [:make, :mix], [{:cc_precompiler, "~> 0.1", [hex: :cc_precompiler, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.8", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "a009e303767a28443e546ac8aab2539429f605e9acdc38bd43f3b13f1568bca9"}, diff --git a/priv/repo/migrations/20260226212444_add_error_tracker.exs b/priv/repo/migrations/20260226212444_add_error_tracker.exs new file mode 100644 index 00000000..3ec13561 --- /dev/null +++ b/priv/repo/migrations/20260226212444_add_error_tracker.exs @@ -0,0 +1,6 @@ +defmodule MusicLibrary.Repo.Migrations.AddErrorTracker do + use Ecto.Migration + + def up, do: ErrorTracker.Migration.up() + def down, do: ErrorTracker.Migration.down(version: 1) +end