Metrics
Prometheus HTTP instrumentation with request count, duration, and response size.
RapidGo includes Prometheus metrics for HTTP request instrumentation.
Setup
import "github.com/RAiWorks/RapidGo/v2/core/metrics"
m := metrics.New()
// Add metrics middleware to all routes
r.Use(m.Middleware())
// Expose /metrics endpoint for Prometheus scraping
r.Get("/metrics", metrics.Handler())
Collected Metrics
| Metric | Type | Labels | Description |
|---|---|---|---|
http_requests_total |
Counter | method, path, status | Total HTTP requests |
http_request_duration_seconds |
Histogram | method, path, status | Request duration |
http_response_size_bytes |
Histogram | method, path, status | Response body size |
Prometheus Configuration
Add a scrape target in your prometheus.yml:
scrape_configs:
- job_name: 'rapidgo'
scrape_interval: 15s
static_configs:
- targets: ['localhost:8080']
Grafana Dashboard
The metrics follow standard Prometheus naming conventions and work with common Grafana dashboards for HTTP monitoring. You can visualize:
- Request rate (requests/second)
- Error rate (4xx/5xx responses)
- Response time percentiles (p50, p95, p99)
- Response size distribution