diff --git a/config/runtime.exs b/config/runtime.exs index c264e8e3..354250f1 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -129,6 +129,8 @@ config :wanderer_app, admin_username: System.get_env("WANDERER_ADMIN_USERNAME", "admin"), admin_password: System.get_env("WANDERER_ADMIN_PASSWORD"), admins: admins, + base_metrics_only: + System.get_env("WANDERER_BASE_METRICS_ONLY", "false") |> String.to_existing_atom(), corp_id: System.get_env("WANDERER_CORP_ID", "-1") |> String.to_integer(), corp_wallet: System.get_env("WANDERER_CORP_WALLET", ""), corp_wallet_eve_id: System.get_env("WANDERER_CORP_WALLET_EVE_ID", "-1"), diff --git a/lib/wanderer_app/character.ex b/lib/wanderer_app/character.ex index fa51c713..cfd416e1 100644 --- a/lib/wanderer_app/character.ex +++ b/lib/wanderer_app/character.ex @@ -263,7 +263,7 @@ defmodule WandererApp.Character do end end - defp maybe_merge_map_character_settings(%{id: character_id} = character, map_id, true) do + defp maybe_merge_map_character_settings(%{id: character_id} = character, _map_id, true) do {:ok, tracking_paused} = WandererApp.Cache.lookup("character:#{character_id}:tracking_paused", false) diff --git a/lib/wanderer_app/env.ex b/lib/wanderer_app/env.ex index 168828f6..b2b397a1 100644 --- a/lib/wanderer_app/env.ex +++ b/lib/wanderer_app/env.ex @@ -11,49 +11,50 @@ defmodule WandererApp.Env do def vsn(), do: Application.spec(@app)[:vsn] def git_sha(), do: get_key(:git_sha, "") - def base_url, do: get_key(:web_app_url, "") - def custom_route_base_url, do: get_key(:custom_route_base_url, "") - def invites, do: get_key(:invites, false) + def base_url(), do: get_key(:web_app_url, "") + def base_metrics_only(), do: get_key(:base_metrics_only, false) + def custom_route_base_url(), do: get_key(:custom_route_base_url, "") + def invites(), do: get_key(:invites, false) - def map_subscriptions_enabled?, do: get_key(:map_subscriptions_enabled, false) - def websocket_events_enabled?, do: get_key(:websocket_events_enabled, false) - def public_api_disabled?, do: get_key(:public_api_disabled, false) + def map_subscriptions_enabled?(), do: get_key(:map_subscriptions_enabled, false) + def websocket_events_enabled?(), do: get_key(:websocket_events_enabled, false) + def public_api_disabled?(), do: get_key(:public_api_disabled, false) @decorate cacheable( cache: WandererApp.Cache, key: "active_tracking_pool" ) - def active_tracking_pool, do: get_key(:active_tracking_pool, "default") + def active_tracking_pool(), do: get_key(:active_tracking_pool, "default") @decorate cacheable( cache: WandererApp.Cache, key: "tracking_pool_max_size" ) - def tracking_pool_max_size, do: get_key(:tracking_pool_max_size, 300) - def character_tracking_pause_disabled?, do: get_key(:character_tracking_pause_disabled, true) - def character_api_disabled?, do: get_key(:character_api_disabled, false) - def wanderer_kills_service_enabled?, do: get_key(:wanderer_kills_service_enabled, false) - def wallet_tracking_enabled?, do: get_key(:wallet_tracking_enabled, false) - def admins, do: get_key(:admins, []) - def admin_username, do: get_key(:admin_username) - def admin_password, do: get_key(:admin_password) - def corp_wallet, do: get_key(:corp_wallet, "") - def corp_wallet_eve_id, do: get_key(:corp_wallet_eve_id, "-1") - def corp_eve_id, do: get_key(:corp_id, -1) - def subscription_settings, do: get_key(:subscription_settings) + def tracking_pool_max_size(), do: get_key(:tracking_pool_max_size, 300) + def character_tracking_pause_disabled?(), do: get_key(:character_tracking_pause_disabled, true) + def character_api_disabled?(), do: get_key(:character_api_disabled, false) + def wanderer_kills_service_enabled?(), do: get_key(:wanderer_kills_service_enabled, false) + def wallet_tracking_enabled?(), do: get_key(:wallet_tracking_enabled, false) + def admins(), do: get_key(:admins, []) + def admin_username(), do: get_key(:admin_username) + def admin_password(), do: get_key(:admin_password) + def corp_wallet(), do: get_key(:corp_wallet, "") + def corp_wallet_eve_id(), do: get_key(:corp_wallet_eve_id, "-1") + def corp_eve_id(), do: get_key(:corp_id, -1) + def subscription_settings(), do: get_key(:subscription_settings) @decorate cacheable( cache: WandererApp.Cache, key: "restrict_maps_creation" ) - def restrict_maps_creation?, do: get_key(:restrict_maps_creation, false) + def restrict_maps_creation?(), do: get_key(:restrict_maps_creation, false) - def sse_enabled? do + def sse_enabled?() do Application.get_env(@app, :sse, []) |> Keyword.get(:enabled, false) end - def webhooks_enabled? do + def webhooks_enabled?() do Application.get_env(@app, :external_events, []) |> Keyword.get(:webhooks_enabled, false) end @@ -62,19 +63,19 @@ defmodule WandererApp.Env do cache: WandererApp.Cache, key: "map-connection-auto-expire-hours" ) - def map_connection_auto_expire_hours, do: get_key(:map_connection_auto_expire_hours) + def map_connection_auto_expire_hours(), do: get_key(:map_connection_auto_expire_hours) @decorate cacheable( cache: WandererApp.Cache, key: "map-connection-auto-eol-hours" ) - def map_connection_auto_eol_hours, do: get_key(:map_connection_auto_eol_hours) + def map_connection_auto_eol_hours(), do: get_key(:map_connection_auto_eol_hours) @decorate cacheable( cache: WandererApp.Cache, key: "map-connection-eol-expire-timeout-mins" ) - def map_connection_eol_expire_timeout_mins, + def map_connection_eol_expire_timeout_mins(), do: get_key(:map_connection_eol_expire_timeout_mins) def get_key(key, default \\ nil), do: Application.get_env(@app, key, default) @@ -83,7 +84,7 @@ defmodule WandererApp.Env do A single map containing environment variables made available to react """ - def to_client_env do + def to_client_env() do %{detailedKillsDisabled: not wanderer_kills_service_enabled?()} end end diff --git a/lib/wanderer_app/metrics/prom_ex_plugin.ex b/lib/wanderer_app/metrics/prom_ex_plugin.ex index 7baf0e51..065c0995 100644 --- a/lib/wanderer_app/metrics/prom_ex_plugin.ex +++ b/lib/wanderer_app/metrics/prom_ex_plugin.ex @@ -29,15 +29,24 @@ defmodule WandererApp.Metrics.PromExPlugin do @impl true def event_metrics(_opts) do - [ + base_metrics = [ user_event_metrics(), - character_event_metrics(), map_event_metrics(), - map_subscription_metrics(), + map_subscription_metrics() + ] + + advanced_metrics = [ + character_event_metrics(), characters_distribution_event_metrics(), esi_event_metrics(), json_api_metrics() ] + + if WandererApp.Env.base_metrics_only() do + base_metrics + else + base_metrics ++ advanced_metrics + end end defp user_event_metrics do @@ -227,8 +236,8 @@ defmodule WandererApp.Metrics.PromExPlugin do defp get_esi_error_tag_values(metadata) do %{ endpoint: Map.get(metadata, :endpoint, "unknown"), - error_type: to_string(Map.get(metadata, :error_type, "unknown")), - tracking_pool: Map.get(metadata, :tracking_pool, "unknown") + error_type: inspect(Map.get(metadata, :error_type, "unknown")), + tracking_pool: Map.get(metadata, :tracking_pool, "default") } end