Ember provides a user-friendly dashboard for real-time monitoring of Caddy servers. It simplifies traffic analysis and system performance tracking with zero configuration, connecting seamlessly to Caddy's API. Unlock powerful features for latency tracking and worker management for FrankenPHP without the complexity of additional setup.
Ember provides a powerful real-time monitoring solution for Caddy and FrankenPHP servers, simplifying the process of tracking crucial performance metrics. With Ember, users can easily monitor per-host traffic, latency percentiles, status codes, and more without the complexity of traditional monitoring tools.
Key Features
Caddy Monitoring
- View a detailed per-host traffic table showcasing requests per second (RPS), average latency, status codes, and sparklines.
- Analyze latency percentiles (P50, P90, P95, P99) and Time-to-First-Byte for each host.
- Utilize sorting, filtering, and full-screen ASCII graphs for CPU, RPS, and resident set size (RSS).
- Automatic detection of Caddy restarts ensures up-to-date monitoring.
FrankenPHP Introspection
- Gain insights into per-thread state, methods, URIs, durations, and memory usage (requiring FrankenPHP version 1.13+).
- Manage workers, monitor queue depth, and track crashes effectively.
- Access graphs displaying queue depth and busy threads, with automatic detection and recovery during FrankenPHP start and stop events.
Integration & Operations
- Export Prometheus metrics via a dedicated
/metricsendpoint, with options for basic authentication and a health status endpoint at/healthz. - Operate Ember in daemon mode for headless monitoring, which includes error throttling and TLS certificate reloads via SIGHUP.
- Output metrics in JSON format, useful for scripting, with options for single-snapshot outputs.
- Execute quick health checks with the
ember statuscommand, which can return output in text or JSON. - Ensure Caddy readiness with the
ember waitcommand to block until the server is operational. - Validate deployments with
ember diff before.json after.jsonto compare snapshots of metrics data.
Ease of Configuration and Use
Ember is designed for zero-configuration setup. The ember init command checks your Caddy configuration, enabling necessary metrics without requiring a restart. This makes it straightforward to integrate into existing workflows.
Performance and Compatibility
Ember maintains a lightweight footprint, consuming approximately 15 MB of RSS and executing with a low overhead (~0.3 ms per poll cycle even with multiple threads and hosts). Its cross-platform binaries support operating systems such as Linux, macOS, and Windows, with easy installation options available via Homebrew and Docker.
How It Operates
Ember functions by polling the Caddy admin API and Prometheus metrics endpoint at a defined interval (defaulting to every 1 second). It calculates deltas and derived metrics, such as RPS, percentiles, and error rates, presenting this information through various output formats, including an interactive Bubble Tea terminal user interface, streaming JSONL, headless daemon mode for Prometheus export, or executing the status command for quick checks.
Documentation
Comprehensive documentation is available, covering installation, configuration, dashboards, CLI commands, and more, facilitating a smooth user experience from initial setup to advanced configurations.
No comments yet.
Sign in to be the first to comment.