Yabeda - 用于从Ruby应用程序收集和导出指标的可扩展框架

网友投稿 734 2022-10-11

Yabeda - 用于从Ruby应用程序收集和导出指标的可扩展框架

Yabeda - 用于从Ruby应用程序收集和导出指标的可扩展框架

Yabeda

This software is Work in Progress: features will appear and disappear, API will be changed, your feedback is always welcome!

Extendable solution for easy setup of monitoring in your Ruby apps.

Read more about Yabeda and the reasoning behind it in Martian Chronicles: “Meet Yabeda: Modular framework for instrumenting Ruby applications”

Installation

Most of the time you don't need to add this gem to your Gemfile directly (unless you're only collecting your custom metrics):

gem 'yabeda'# Then add monitoring system adapter, e.g.:# gem 'yabeda-prometheus'

And then execute:

$ bundle

Usage

Declare your metrics:Yabeda.configure do group :your_app counter :bells_rang_count, "Total number of bells being rang" gauge :whistles_active, "Number of whistles ready to whistle" histogram :whistle_runtime, "How long whistles are being active", unit: :secondsend Access metric in your app and use it!def ring_the_bell(id) bell = Bell.find(id) bell.ring! Yabeda.your_app_bells_rang_count.increment({bell_size: bell.size}, by: 1)enddef whistle! Yabeda.your_app_whistle_runtime.measure do # Run your code endend Setup collecting of metrics that do not tied to specific events in you application. E.g.: reporting your app's current stateYabeda.configure do # This block will be executed periodically few times in a minute # (by timer or external request depending on adapter you're using) # Keep it fast and simple! collect do your_app_whistles_active.set({}, Whistle.where(state: :active).count endend See the docs for the adapter you're using Enjoy!

Roadmap (aka TODO or Help wanted)

Ability to change metric settings for individual adaptershistogram :foo, comment: "say what?" do adapter :prometheus do buckets [0.01, 0.5, …, 60, 300, 3600] endend Ability to route some metrics only for given adapter:adapter :prometheus do include_group :sidekiqend

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/yabeda-rb/yabeda.

License

The gem is available as open source under the terms of the MIT License.

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:从0开始配置深度学习环境
下一篇:那些年何恺明在顶会上的分享 | 附PPT下载
相关文章

 发表评论

暂时没有评论,来抢沙发吧~