GustavoZiaugra

GustavoZiaugra

Monitorex gives you a live-updating dark-theme dashboard to monitor all HTTP traffic in your Phoenix application — outbound (Tesla, Finch) and inbound (Phoenix router) — without needing a database. Everything runs on ETS, auto-prunes old events, and updates every 2 seconds via LiveView.

Key Features

Zero-database architecture
No Postgres, no Redis, no SQLite. All events are stored in ETS with configurable TTL pruning. Just add the dependency and mount the dashboard.

def deps do
  [`
    {:monitorex, "~> 0.4.0"}
  ]
end

Mount in your router:

scope "/monitoring" do
  pipe_through :browser
  http_dashboard []
end

Visit /monitoring — you’re done.

Multi-client outbound monitoring
Track every HTTP request your app makes, regardless of the client:

config :monitorex, :sources, [:tesla, :finch, :phoenix]

Tesla, Finch telemetry events are normalized into a unified event stream. Also handles deduplication when both Tesla and Finch observe the same request.

Inbound Phoenix traffic
Monitorex hooks into Phoenix router dispatch and gives you per-route and per-consumer breakdowns. Identify callers by Basic Auth username, API key header, or a custom function.

Live dashboard (8 pages)

Outbound Overview

• Page: Outbound Overview
• Description: Summary cards + host table

Host Detail

• Page: Host Detail
• Description: Per-endpoint breakdown

Timeline Inspector

• Page: Timeline Inspector
• Description: Time-grouped events with search, filters, and request/response detail viewer

Inbound Overview

• Page: Inbound Overview
• Description: Route table + summary

Inbound Consumers

• Page: Inbound Consumers
• Description: Per-consumer stats

Route Detail

• Page: Route Detail
• Description: Consumer breakdown + recent requests

All pages feature sortable tables, URL-persisted filters/pagination, and auto-refresh.

Production features

  • Health check — GET /monitorex/health with Collector status, queue depths, ETS sizes
  • Prometheus metrics — GET /monitorex/metrics for requests, errors, latency
  • Alert webhooks — configurable thresholds (error_rate, host_down, high_latency) with debounced dispatch
  • Cluster support — aggregate data across multiple BEAM nodes with merge strategies
  • Authentication — extensible Monitorex.Resolver behaviour; bring your own auth
  • Header redaction — sensitive headers (authorization, set-cookie, etc.) auto-masked
  • Responsive — works on mobile with collapsible sidebar and card-layout tables

Installation

{:monitorex, "~> 0.4.0"}

Then configure your sources, mount the dashboard, and you’re live.

Current Status

Version 0.4.0 is out on Hex with:

  • Timeline revamp with time-grouped sections, search bar, and status/method filters (#51)
  • 363 tests, Dialyzer-clean, Credo-clean
  • Full CI pipeline (Elixir 1.15 & 1.17, OTP 26 & 27)
  • Published docs on hexdocs.pm/monitorex

Up next on the roadmap: Req adapter, ExDoc guide pages, and configurable event memory limits for production hardening.

Questions for the community

  • How are you currently monitoring HTTP traffic in your Phoenix apps?
  • What telemetry data do you wish you had but can’t easily capture today?
  • Would a full ExDoc guide + Getting Started tutorial make adoption easier?

https://github.com/GustavoZiaugra/monitorex

Where Next? Top

Trending in Announcing Top

type1fool
WebAuthnLiveComponent WebAuthnComponents See this post about renaming the package. Passwordless authentication for Phoenix LiveView app...
New
GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
woylie
I released Doggo, a collection of unstyled Phoenix components. https://github.com/woylie/doggo Features Unstyled Phoenix components....
New
ahamez
Hi everyone, I’ve been working on this protobuf library for 3 years. We use it in the company I work for, EasyMile, to communicate with ...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
kip
I’ll shortly be launching Text, a nascent text analysis library. Current functionality In this early version (not ready for prime time) ...
New
kip
Following on from my CLDR lbraries I started work on Unicode transforms. But like everything related to CLDR there is a lot of yak-shavin...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New
budgie
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with. But I don’t use it anymore. Serverless was the promis...
New
type1fool
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews