Giter Site home page Giter Site logo

loggie's Introduction

Loggie CircleCI Gem Version

Loggie is a log aggregator to query your logs that have been pushed to third party log hosting providers.

It uses adapters to query different providers, and currently supports the following :

  • Logentries

Installation

Add this line to your application's Gemfile:

gem 'loggie'

And then execute:

$ bundle

Or install it yourself as:

$ gem install loggie

Configuring

Loggie.configure do |config|
  # from https://logentries.com/app/<app>#/user-account/apikey
  config.read_token = 'key'

  # A comma separated list of log file ids
  # From LogEntries logset "KEY: 83cacd7-ad66-4f6d-9171-00dd478gbd11
  # "Use the key with our REST API to query the log."
  config.log_files = ['e20bd6af', 'c83c7cd7', '6fb426fd', '776dfea9']

  # Depending on the size of the underlying dataset of the complexity of the query,
  # a request may not yield a value straight away. In this case this gem will request
  # the results up until this retry count
  config.max_retry = 50

  # Time to sleep before each retry, smaller value will poll more
  # and could get get result quicker, but will eat into rate limit
  # of request count
  config.sleep_before_retry_seconds = 0.5

  # If the log message is JSON parsable, then it will slice off all but
  # the ones listed here. Whole log line is returned otherwise.
  config.default_fields_included = ["keys", "from", "log", "output"]
end

Usage

Loggie.search(query: "foobar") { |progress| puts "#{progress}% there!" }
  => {:timestamp=>Sun, 08 Jan 2017 01:00:58 +0000,
  :message=>
  { "remote_addr"=>"11.11.36.72",
    "version"=>"HTTP/1.1",
    "host"=>"host.com",
    "x_forwared_for"=>"11.11.11.11",
    ...

Or, use from the command line with:

loggie foobar

env is required for command line usage, and can be prefixed to the command, eg:

READ_TOKEN=abc LOG_FILES=x,y,z loggie foobar

Or the create a .loggie file somewhere in the current path.

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.

To add a new adapter, create the directory in /lib/loggie/name-of-adapter.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/IanVaughan/loggie.

  1. Fork it ( https://github.com/IanVaughan/loggie/fork )
  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 a new Pull Request

License

The gem is available as open source under the terms of the MIT License.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.