Japan Voyage Performance Monitoring

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

1

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.

2

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>.

3

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).

4

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

POST /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": {} }
  ]
}
GET /api/v1/status/:badge_token

Get the latest performance status for a project. Public, no authentication required.

GET /badges/:badge_token.svg

Dynamic SVG response time badge. Public. Cached for 5 minutes.

Badge Colors

< 100ms (green) 100-300ms (yellow-green) 300ms-1s (orange) > 1s (red)

Badge Examples

Add a response time badge to your project README

Markdown

![Response Time](https://performance.japanvoyage.jp/badges/YOUR_BADGE_TOKEN.svg)

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.