https://github.com/iaintshine/ruby-method-tracer
OpenTracing instrumentation for Ruby methods
https://github.com/iaintshine/ruby-method-tracer
opentracing ruby tracing
Last synced: about 2 months ago
JSON representation
OpenTracing instrumentation for Ruby methods
- Host: GitHub
- URL: https://github.com/iaintshine/ruby-method-tracer
- Owner: iaintshine
- License: apache-2.0
- Created: 2017-08-13T19:54:14.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2019-04-11T22:12:47.000Z (about 6 years ago)
- Last Synced: 2025-03-26T10:47:56.257Z (2 months ago)
- Topics: opentracing, ruby, tracing
- Language: Ruby
- Size: 19.5 KB
- Stars: 0
- Watchers: 1
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://travis-ci.org/iaintshine/ruby-method-tracer)
# Method::Tracer
The gem provides OpenTracing instrumentation for custom Ruby methods.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'method-tracer'
```And then execute:
$ bundle
Or install it yourself as:
$ gem install method-tracer
## Usage
First of all you need to initialize the gem using `Method::Tracer.configure` method. You need to supply an instance of a tracer, and an active span provider - a proc which returns a current active span. The gem plays nicely with [spanmanager](https://github.com/iaintshine/ruby-spanmanager).
```ruby
require 'spanmanager'
require 'method-tracer'OpenTracing.global_tracer = SpanManager::Tracer.new(OpenTracing.global_tracer)
Method::Tracer.configure(tracer: OpenTracing.global_tracer,
active_span: -> { OpenTracing.global_tracer.active_span })
```The gem comes in two flavours. You can either use 'magic mode', and include `Method::Tracer` module and then use `trace_method` method, or skip the magic and use `Method::Tracer.trace` class method within your business code. See usage examples below:
```ruby
class TracedClass
class << self
def class_method
endinclude Method::Tracer
trace_method :class_method
enddef instance_method
Method::Tracer.trace("inner span") do |span|
# business code
end
endinclude Method::Tracer
trace_method :instance_method
end
```## 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](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/iaintshine/ruby-method-tracer. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.