Salopulse Ruby SDK
Otomatik SQL, hata ve HTTP performans telemetrisi — Ruby uygulamaları için Salopulse APM istemcisi.
Kurulum
# Gemfile
gem "salopulse"
bundle install
Hızlı Başlangıç
# config/initializers/salopulse.rb
Salopulse.init(dsn: ENV["SALOPULSE_DSN"])
Rails varsa bu kadarı yeter — middleware ve ActiveRecord aboneliği otomatik kurulur.
Otomatik Yakalanan Olaylar
- SQL —
ActiveSupport::Notificationsüzerinden her sorgu (schema/transaction/cached hariç) - Hata — Rack middleware'den sızan tüm exception'lar
- Performans — Her HTTP request için süre + status
Manuel API
Salopulse.capture_exception(error, user_context: { user_id: 1 })
Salopulse.("cache miss", level: :warning)
Salopulse.set_user(id: 1, email: "a@b.com")
Salopulse.set_tag(:feature, "checkout-v2")
Salopulse.flush(timeout: 5)
Salopulse.close
Konfigürasyon
| Seçenek | Varsayılan | Açıklama |
|---|---|---|
dsn |
— | Zorunlu. http(s)://api_key@host formatı |
release |
nil |
Sürüm etiketi (genelde git SHA) |
environment |
nil |
production / staging / ... |
sample_rate |
1.0 |
0..1 arası örnekleme oranı |
flush_interval |
5 sn |
Background flush periyodu |
flush_batch_size |
100 |
Tek POST'ta gönderilen event sayısı |
n1_threshold |
10 |
Aynı fingerprint kaç defadan sonra N+1 sayılır |
max_buffer_size |
10_000 |
Buffer üst sınırı; aşılırsa silent drop |
before_send |
nil |
->(event) { event }; nil dönerse atılır |
logger |
stdout | SDK iç logları için |
enabled |
true |
false → SDK tamamen no-op |
Gizlilik
SDK aşağıdaki alanları otomatik maskeler ([FILTERED]):
password,password_confirmation,token,api_key,secretaccess_token,refresh_token,authorization,cookiecredit_card,card_number,cvv,ssn- Header'lar:
Authorization,Cookie,X-Api-Key,X-Auth-Token
Performans
- Tüm I/O background thread'inde — istek path'i bloklanmaz
- Buffer üst sınırlı (
max_buffer_size); patlayıp uygulamayı çökertmez - Transport hatalarında exponential backoff retry (max 3) — başarısızsa event düşer, uygulamaya hata sızmaz
Geliştirme
bundle install
bundle exec rspec
Lisans
MIT