Skip to content

mersieS/salopulse-ruby-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  • SQLActiveSupport::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.capture_message("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, secret
  • access_token, refresh_token, authorization, cookie
  • credit_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

Teslimat Davranışı

  • SQL event'leri request içinde hemen POST edilmez; önce request sonunda flush_request_scope_events ile kuyruğa alınır. Bu, N+1 tespiti için bilinçli bir tasarım.
  • Kuyruğa alınan event'ler varsayılan olarak anında değil, background flusher tarafından flush_interval kadar bekletilip toplu gönderilir. Varsayılan değer 5 saniyedir.
  • Process kapanırken close son flush'ı zorlar. Bu yüzden fork'lu sunucularda veya kısa ömürlü process'lerde sorun varsa davranış "ancak kapanışta gidiyor" gibi görünebilir.
  • Daha hızlı görünürlük istiyorsanız flush_interval değerini düşürün veya kritik yerlerde Salopulse.flush çağırın.

Geliştirme

bundle install
bundle exec rspec

Lisans

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages