https://github.com/remind101/formatted-metrics
Easily produce metrics for consumption by l2met.
https://github.com/remind101/formatted-metrics
Last synced: over 1 year ago
JSON representation
Easily produce metrics for consumption by l2met.
- Host: GitHub
- URL: https://github.com/remind101/formatted-metrics
- Owner: remind101
- License: mit
- Created: 2013-07-30T20:22:49.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2019-05-05T22:49:58.000Z (over 7 years ago)
- Last Synced: 2025-04-05T20:01:43.504Z (over 1 year ago)
- Language: Ruby
- Size: 72.3 KB
- Stars: 3
- Watchers: 90
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Formatted Metrics
[](https://travis-ci.org/remind101/formatted-metrics) [](https://codeclimate.com/github/remind101/formatted-metrics)
Easily produce metrics that can be consumed by [l2met](https://github.com/ryandotsmith/l2met) or statsd.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'formatted-metrics'
```
## Usage
### Rack
If you want to instrument rack request times:
```
use Rack::Instrumentation
```
### Instrument
Use `Metrics.instrument` to instrument events to STDOUT.
```ruby
Metrics.instrument 'rack.request' do
@app.call(env)
end
# => 'source=app measure.rack.request=50ms'
Metrics.instrument 'workers.busy', 10, units: 'workers'
# => 'source=app measure.workers.busy=10workers'
Metrics.instrument 'sidekiq.queue', source: 'background' do
yield
end
# => 'source=app.background measure.sidekiq.queue=500ms'
Metrics.group 'sidekiq' do |group|
group.instrument 'queues.process', 100, units: 'jobs'
group.instrument 'workers.busy', 10, units: 'workers'
group.instrument 'queue.time', source: 'worker.1' do
sleep 1
end
end
# => 'source=app measure.sidekiq.queues.processed=100jobs measure.sidekiq.workers.busy=10workers'
# => 'source=app.worker.1 measure.sidekiq.queue.time=1000.00ms'
```
## TODO
* Add Rack middleware for outputting rack performance metrics.
* Instrument some default rails stuff.
## Contributing
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request