summaryrefslogtreecommitdiff
path: root/lib/silmataivas_web/telemetry.ex
diff options
context:
space:
mode:
authorDawid Rycerz <dawid@rycerz.xyz>2025-07-14 19:34:59 +0300
committerDawid Rycerz <dawid@rycerz.xyz>2025-07-14 19:34:59 +0300
commit50ce8cb96b2b218751c2fc2a6b19372f51846acc (patch)
treee2c634d2ce856062d527667d47815a05a53361c8 /lib/silmataivas_web/telemetry.ex
parent0ab2e5ba2b0631b28b5b1405559237b3913c878f (diff)
feat: rewrite in rust
Diffstat (limited to 'lib/silmataivas_web/telemetry.ex')
-rw-r--r--lib/silmataivas_web/telemetry.ex93
1 files changed, 0 insertions, 93 deletions
diff --git a/lib/silmataivas_web/telemetry.ex b/lib/silmataivas_web/telemetry.ex
deleted file mode 100644
index f893b0e..0000000
--- a/lib/silmataivas_web/telemetry.ex
+++ /dev/null
@@ -1,93 +0,0 @@
-defmodule SilmataivasWeb.Telemetry do
- use Supervisor
- import Telemetry.Metrics
-
- def start_link(arg) do
- Supervisor.start_link(__MODULE__, arg, name: __MODULE__)
- end
-
- @impl true
- def init(_arg) do
- children = [
- # Telemetry poller will execute the given period measurements
- # every 10_000ms. Learn more here: https://hexdocs.pm/telemetry_metrics
- {:telemetry_poller, measurements: periodic_measurements(), period: 10_000}
- # Add reporters as children of your supervision tree.
- # {Telemetry.Metrics.ConsoleReporter, metrics: metrics()}
- ]
-
- Supervisor.init(children, strategy: :one_for_one)
- end
-
- def metrics do
- [
- # Phoenix Metrics
- summary("phoenix.endpoint.start.system_time",
- unit: {:native, :millisecond}
- ),
- summary("phoenix.endpoint.stop.duration",
- unit: {:native, :millisecond}
- ),
- summary("phoenix.router_dispatch.start.system_time",
- tags: [:route],
- unit: {:native, :millisecond}
- ),
- summary("phoenix.router_dispatch.exception.duration",
- tags: [:route],
- unit: {:native, :millisecond}
- ),
- summary("phoenix.router_dispatch.stop.duration",
- tags: [:route],
- unit: {:native, :millisecond}
- ),
- summary("phoenix.socket_connected.duration",
- unit: {:native, :millisecond}
- ),
- sum("phoenix.socket_drain.count"),
- summary("phoenix.channel_joined.duration",
- unit: {:native, :millisecond}
- ),
- summary("phoenix.channel_handled_in.duration",
- tags: [:event],
- unit: {:native, :millisecond}
- ),
-
- # Database Metrics
- summary("silmataivas.repo.query.total_time",
- unit: {:native, :millisecond},
- description: "The sum of the other measurements"
- ),
- summary("silmataivas.repo.query.decode_time",
- unit: {:native, :millisecond},
- description: "The time spent decoding the data received from the database"
- ),
- summary("silmataivas.repo.query.query_time",
- unit: {:native, :millisecond},
- description: "The time spent executing the query"
- ),
- summary("silmataivas.repo.query.queue_time",
- unit: {:native, :millisecond},
- description: "The time spent waiting for a database connection"
- ),
- summary("silmataivas.repo.query.idle_time",
- unit: {:native, :millisecond},
- description:
- "The time the connection spent waiting before being checked out for the query"
- ),
-
- # VM Metrics
- summary("vm.memory.total", unit: {:byte, :kilobyte}),
- summary("vm.total_run_queue_lengths.total"),
- summary("vm.total_run_queue_lengths.cpu"),
- summary("vm.total_run_queue_lengths.io")
- ]
- end
-
- defp periodic_measurements do
- [
- # A module, function and arguments to be invoked periodically.
- # This function must call :telemetry.execute/3 and a metric must be added above.
- # {SilmataivasWeb, :count_users, []}
- ]
- end
-end