💎 Ruby Distributed Tracing & Metrics Sensor for Instana
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
benchmarks
bin
examples
gemfiles
lib
log
test
.codeclimate.yml
.gitignore
.rubocop.yml
.travis.yml
Configuration.md
Dockerfile
Gemfile
LICENSE
README.md
Rakefile
Tracing.md
Troubleshooting.md
instana.gemspec

README.md

Instana

The Instana gem provides Ruby metrics and traces (request, queue & cross-host) for Instana.

Build Status Code Climate Gem Version OpenTracing Badge

Note

This gem supports Ruby versions 2.0 or greater.

Any and all feedback is welcome. Happy Ruby visibility.

rails roda cuba mina logo 100px sinatra padrino rack rack

Installation

The gem is available on Rubygems. To install, add this line to the end of your application's Gemfile:

gem 'instana'

And then execute:

$ bundle

Or install it yourself as:

$ gem install instana

Usage

The instana gem is a zero configuration tool that will automatically collect key metrics from your Ruby processes. Just install and go.

Configuration

Although the gem has no configuration required for out of the box metrics and tracing, components can be configured if needed. See Configuration.md.

Tracing

This Ruby gem provides a simple API for tracing and also supports OpenTracing. See Tracing.md for details.

Documentation

You can find more documentation covering supported components and minimum versions in the Instana documentation portal.

Want End User Monitoring?

Instana provides deep end user monitoring that links server side traces with browser events.

For Ruby templates and views, get your EUM API key from your Instana dashboard and you can call ::Instana::Helpers.eum_snippet('example_api_key_string') from within your layout file. This will output a small javascript snippet of code to instrument browser events. It's based on Weasel. Check it out.

As an example for Haml, you could do the following:

%html{ :lang => "en", :xmlns => "http://www.w3.org/1999/xhtml" }
  %head
    - if user_signed_in?
      = raw ::Instana::Helpers.eum_snippet('example_api_key_string', :username => current_user.username)
    - else
      = raw ::Instana::Helpers.eum_snippet('example_api_key_string')
  %body

Make sure to use the raw helper so the javascript isn't interpolated with escape strings.

The optional second argument to ::Instana::Helpers.eum_snippet is a hash of metadata key/values that will be reported along with the browser instrumentation.

Instana EUM example with metadata

See also the End User Monitoring in the Instana documentation portal.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test 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/instana/ruby-sensor.

More

Want to instrument other languages? See our Nodejs instrumentation, Go instrumentation or many other supported technologies.