Monitor Your App Performance
Hosted performance monitoring for Ruby on Rails apps. Push metrics from production, view request duration trends, error rates, slow endpoints, and server stats. Works with Puma and Falcon.
Features
Everything you need to monitor and optimize your Rails app
Request Duration Tracking
Track average response times across all endpoints. Identify slow controllers and actions with time-series charts and percentile breakdowns.
Error Rate Monitoring
Monitor 5xx error rates in real-time. Get alerted when error rates spike and drill down to see which endpoints are failing.
Server Stats
Monitor workers, thread pool capacity, CPU, memory, and request backlog. Works with both Puma and Falcon out of the box.
Quick Start
Get Japan Voyage Performance Monitoring running in 4 steps
Sign in with GitHub & create a project
Sign in with your GitHub account, then add a new project from the dashboard. You'll receive an API token for pushing metrics.
Add the gems to your Gemfile
# Gemfile
group :production do
gem "yabeda-rails"
gem "yabeda-japan-voyage"
end
Then run <code class="card-subtle-bg px-1.5 py-0.5 rounded text-sm">bundle install</code>.
Configure the initializer
# config/initializers/yabeda_japan_voyage.rb
YabedaJapanVoyage.configure do |config|
config.api_token = ENV["VOYAGE_PERFORMANCE_TOKEN"]
config.endpoint = "https://performance.japanvoyage.jp"
config.push_interval = 60 # seconds
end
The gem silently skips when <code class="card-subtle-bg px-1.5 py-0.5 rounded text-sm">VOYAGE_PERFORMANCE_TOKEN</code> is absent (local development).
Set VOYAGE_PERFORMANCE_TOKEN in production
# .env.production or deployment config
VOYAGE_PERFORMANCE_TOKEN=your_api_token_here
Add the project's API token to your production environment. Metrics will be pushed automatically every 60 seconds.
API Reference
RESTful endpoints for Japan Voyage Performance Monitoring
/api/v1/snapshots
Push a metrics snapshot. Requires token authentication.
Authentication
Authorization: Bearer <VOYAGE_PERFORMANCE_TOKEN>
Request Body (JSON)
{
"environment": "production",
"hostname": "web-1",
"ruby_version": "3.4.1",
"rails_version": "8.1.1",
"app_version": "abc123",
"metrics": [
{ "name": "rails_requests_total", "type": "counter", "value": 42,
"labels": { "controller": "posts", "action": "index", "status": "200" } },
{ "name": "rails_request_duration", "type": "histogram", "value": 125.3,
"labels": { "controller": "posts", "action": "index" } },
{ "name": "puma_backlog", "type": "gauge", "value": 0, "labels": {} },
{ "name": "falcon_cpu_utilization", "type": "gauge", "value": 12.5, "labels": {} },
{ "name": "falcon_memory_rss", "type": "gauge", "value": 131072, "labels": {} }
]
}
/api/v1/status/:badge_token
Get the latest performance status for a project. Public, no authentication required.
/badges/:badge_token.svg
Dynamic SVG response time badge. Public. Cached for 5 minutes.
Badge Colors
Badge Examples
Add a response time badge to your project README
Markdown

HTML
<img src="https://performance.japanvoyage.jp/badges/YOUR_BADGE_TOKEN.svg" alt="Response Time">
Configuration
Environment variables for the yabeda-japan-voyage gem
| Variable | Required | Default | Description |
|---|---|---|---|
VOYAGE_PERFORMANCE_TOKEN |
Yes | — | Project API token from the dashboard. Pushes are skipped when absent. |
Ready to monitor your app?
Sign up for Japan Voyage Performance Monitoring and start tracking metrics in minutes.