GrafanaAnnotations
Add custom annotations to grafana from your ruby application.
Installation
Add this line to your application's Gemfile:
gem 'grafana_annotations', '~> 0.1.1'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install grafana_annotations
Usage
Configuration
GrafanaAnnotations.configure do |c|
# Logs requests and responses. Optional.
c.logger Rails.logger
# Tags for rake tasks instrumentation. Empty by default.
c.rake_tags [:my_app, :rake]
# Rake task annotation prefix
c.rake_text_prefix 'Rake task'
# URL to your grafana installation.
c.grafana_base_url ENV.fetch('GRAFANA_URL')
# Grafana authorization (i.e. `Bearer xxxxx`)
c.grafana_authorization ENV.fetch('GRAFANA_AUTHZ')
end
Creating annotations
result = GrafanaAnnotations.default_api_client.create(
time: GrafanaAnnotations::Utils::Time.now_ms, # timestamp in milliseconds (integer), optional
tags: [:my_app, :my_event],
text: "Boom!"
)
Creating annotation span
wrap
utility function creates an annotation when block starts executing and updates it with end time after.
GrafanaAnnotations.wrap(text: 'something is happening', tags: [:my_app, :something]) do
do_something()
end
Rake tasks instrumentation
Just require grafana_annotations/rake
within your Rakefile and annotation request will be sent for every rake task.
# Rakefile
require 'grafana_annotations/rake'
Development
After checking out the repo, run bin/setup
to install dependencies. You can also run bin/console
for an interactive prompt that will allow you to experiment.
Deployment
- Update changelog and git add it
bump2version patch --allow-dirty
- git push && git push --tags
- gem build
- gem push grafana_annotations-x.x.x.gem