Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Treasure Data logging library for Ruby / Rails
Ruby
Pull request Compare This branch is 82 commits behind treasure-data:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
ChangeLog
Gemfile
README.rdoc
Rakefile
VERSION
td-logger.gemspec

README.rdoc

Treasure Data logging library for Rails

About

This gem is a logging library for Treasure Data. The events logged by this module will be uploaded into the cloud. There're two ways to upload:

  • 1) direct upload from applications: app -> cloud (used by default)

  • 2) in-direct upload from td-agent: app -> td-agent -> cloud

(1) is more easy to configure and extra setup, but it requires extra memory in the application processes. (2) requires the extra installation of the daemons into your cluster, but lowers the logging impact to your applications. You can choose whether to use, by config file described laster.

Getting Started

Add the following line to your Gemfile:

gem 'td-logger'

For Rails 2.x (not tested) without Bundler, edit environment.rb and add to the initalizer block:

config.gem "td-logger"

And then add config/treasure_data.yml file as followings. This is a template, which is doing the direct upload from the application processes.

development:
  apikey: "YOUR_API_KEY"
  database: rails_development
  debug_mode: true  # enable debug mode

production:
  apikey: "YOUR_API_KEY"
  database: rails_production
  debug_mode: false

# disable logging
test:

Logging events

You can log anytime using 'TD.event.post' method:

class MyClass
  def mymethod
    TD.event.post('table_name', {:foo=>:bar})
  end
end

Rails extension

In rails application, you can use 'TD.event.attribute' to set static attribute to all events:

class ApplicationController
  def authenticate
    # set 'uid' attribute to succeeding event logs
    TD.event.attribute[:uid] = 198
  end
end

class MyController < ApplicationController
  def mymethod
    authenticate()
    # this event includes 'uid' attribute
    TD.event.post('table_name', {:foo=>:bar})
  end
end

Configuration file

Direct Upload from Application Buffer

This configuration enables the application to upload the events, directly from the application processes (app -> cloud).

production:
  apikey: "YOUR_API_KEY"
  database: rails_production
  debug_mode: false

In-Direct Upload from td-agent

When 'agent' and 'tag' options are specified, the events are logged into the local td-agent daemon. Later on, the daemon uploads the event periodically to the cloud (app -> td-agent -> cloud).

This requires the additional setup to your infrastructure, but lowers the memory and performance impact to your application processes. For the installation process, please look at our knowledge base page.

NOTE: This configuration is not supported on PaaP platforms.

production:
  agent: "localhost:24224"
  tag: td.myapp
  debug_mode: false

Further Readings

If you have any problem, please ask us from the support site.

Copyright

Copyright

Copyright © 2011 Treasure Data Inc.

License

Apache License, Version 2.0

Something went wrong with that request. Please try again.