DEV.co
Open-Source Observability · yabeda-rb

yabeda

Yabeda is a Ruby metrics framework that lets you collect and export application performance data to monitoring systems like Prometheus and Datadog. It provides a modular plugin architecture for instrumenting Rails, Sidekiq, ActiveRecord, and other components with minimal boilerplate.

Source: GitHub — github.com/yabeda-rb/yabeda
955
GitHub stars
34
Forks
Ruby
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryyabeda-rb/yabeda
Owneryabeda-rb
Primary languageRuby
LicenseMIT — OSI-approved
Stars955
Forks34
Open issues5
Latest releasev0.16.0 (2026-03-12)
Last updated2026-07-06
Sourcehttps://github.com/yabeda-rb/yabeda

What yabeda is

Yabeda abstracts metric collection (counters, gauges, histograms, summaries) behind a DSL-based configuration layer, with pluggable adapters for different backends and pre-built collectors for common Ruby frameworks. It supports tag-based grouping, thread-local tag scoping, and periodic collection of application state metrics.

Quickstart

Get the yabeda source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/yabeda-rb/yabeda.gitcd yabeda# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Rails monitoring with Prometheus

Instrument request latency, job queue depths, and database performance using yabeda-rails and yabeda-prometheus adapters with minimal configuration.

Background job observability

Monitor Sidekiq or Faktory job execution metrics (counts, durations, failure rates) across workers using pre-built yabeda-sidekiq plugin.

Custom application metrics

Define business metrics (e.g., feature usage, conversion events) alongside infrastructure metrics in a single configuration, exporting to your APM of choice.

Implementation considerations

  • Declare metrics early in the app boot sequence and call Yabeda.configure! after initialization; Rails does this automatically.
  • Use tagged metrics carefully: the with_tags block requires all tags to be defined on all metrics within it to avoid runtime errors.
  • Collector blocks run frequently and should be fast; slow queries or network calls will degrade performance.
  • Choose an adapter (Prometheus, Datadog, NewRelic) before deploying; adapters are not swappable at runtime.
  • For multi-process app servers (e.g., Puma), consider yabeda-prometheus-mmap to avoid lock contention on metric objects.

When to avoid it — and what to weigh

  • Non-Ruby applications — Yabeda is Ruby-only; use language-native clients (Prometheus Go client, Rust crate) for other ecosystems.
  • Need for real-time metric computation — Yabeda collects and exports snapshots; it does not compute aggregates or perform stream processing on metrics.
  • Extremely low-latency, high-frequency metric recording — While it supports high cardinality, performance under extreme load is not documented; benchmark with your workload.
  • Compliance with strict observability standards — No explicit security audit, FIPS, SOC2, or other certification data provided; verify against your policy requirements.

License & commercial use

Yabeda is released under the MIT License, a permissive OSI-approved license allowing unrestricted commercial use, modification, and distribution with no copyleft obligations.

MIT License permits commercial use without restriction. No proprietary code, vendor lock-in, or commercial licensing model documented. Suitable for closed-source products. Verify all plugins and adapters also use compatible licenses before deployment.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitStrong
Assessment confidenceHigh
Security considerations

No public security audit, penetration test results, or CVE history provided in the data. Yabeda is a library that collects and exports metrics; typical risks include metric data exposure (cardinality explosion, sensitive label leakage) and adapter vulnerabilities. Ensure your backend (Prometheus, Datadog) is hardened and authenticated. Review custom collector blocks for unintended data exposure. No encryption or authentication mechanism built into Yabeda itself.

Alternatives to consider

Prometheus Ruby client (direct)

Lower-level, no abstraction. Useful if you control all backend/adapter decisions and need minimal overhead, but requires more boilerplate.

Datadog-ruby (direct)

Vendor-specific, tightly integrated with Datadog platform. Simpler if Datadog is your only backend; locks you to that vendor.

New Relic Ruby agent

Opinionated all-in-one APM with built-in instrumentation. Less flexible than Yabeda but requires fewer plugins and less configuration for New Relic users.

Software development agency

Build on yabeda with DEV.co software developers

Yabeda makes it simple to collect, organize, and export metrics. Get started with a Rails plugin, configure a backend adapter, and begin monitoring in minutes.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

yabeda FAQ

Does Yabeda require a specific monitoring backend?
No. Yabeda is backend-agnostic. You must install and configure an adapter (yabeda-prometheus, yabeda-datadog, etc.) to export metrics. Without an adapter, metrics are collected but not exported.
Can I use Yabeda with non-Rails Ruby apps?
Yes. Yabeda works with any Ruby app. You must call Yabeda.configure! manually in non-Rails apps; Rails does this automatically.
What is the performance overhead?
Not quantified in the data. Overhead depends on metric cardinality, adapter choice, and collection frequency. Enable debug mode (YABEDA_DEBUG=true) to measure collector block performance.
How do I avoid cardinality explosion with tagged metrics?
Keep tag values low-cardinality (e.g., HTTP method, status code). Avoid high-cardinality values like user IDs or request paths. Yabeda enforces tag definition but does not limit cardinality; backend limits apply (Prometheus default ~10k series per metric).

Software development & web development with DEV.co

From first prototype to production, DEV.co delivers software development services around tools like yabeda. Our software development agency staffs experienced software developers and web developers for custom software development, web development, integrations, and ongoing support across open-source observability and beyond.

Ready to instrument your Ruby application?

Yabeda makes it simple to collect, organize, and export metrics. Get started with a Rails plugin, configure a backend adapter, and begin monitoring in minutes.