Files
elixirAI/lib/elixir_ai/application.ex
Alex Mickelson 9a0203dac4
Some checks failed
CI/CD Pipeline / build (push) Has been cancelled
logs
2026-03-09 15:25:18 -06:00

61 lines
1.6 KiB
Elixir

defmodule ElixirAi.Application do
@moduledoc false
use Application
@impl true
def start(_type, _args) do
# Attach telemetry handler to filter health check logs
:telemetry.attach(
"filter-health-logs",
[:phoenix, :endpoint, :stop],
&filter_health_logs/4,
nil
)
children = [
ElixirAiWeb.Telemetry,
ElixirAi.Repo,
{Cluster.Supervisor,
[Application.get_env(:libcluster, :topologies, []), [name: ElixirAi.ClusterSupervisor]]},
{Phoenix.PubSub, name: ElixirAi.PubSub},
ElixirAi.ToolTesting,
ElixirAiWeb.Endpoint,
{Horde.Registry,
[
name: ElixirAi.ChatRegistry,
keys: :unique,
members: :auto,
delta_crdt_options: [sync_interval: 100]
]},
{Horde.DynamicSupervisor,
[
name: ElixirAi.ChatRunnerSupervisor,
strategy: :one_for_one,
members: :auto,
delta_crdt_options: [sync_interval: 100],
process_redistribution: :active
]},
ElixirAi.ClusterSingleton
]
opts = [strategy: :one_for_one, name: ElixirAi.Supervisor]
Supervisor.start_link(children, opts)
end
@impl true
def config_change(changed, _new, removed) do
ElixirAiWeb.Endpoint.config_change(changed, removed)
:ok
end
# Filter health check requests from telemetry logs
defp filter_health_logs(_event, _measurements, %{conn: %{request_path: "/health"}}, _config) do
:ok
end
defp filter_health_logs(event, measurements, metadata, config) do
# Forward to default Phoenix logger
:telemetry.execute(event, measurements, metadata)
end
end