Skip to content

mderazon/bunyan-opbeat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bunyan-opbeat

Bunyan stream for Opbeat

Build Status js-standard-style

Install

# install bunyan
$ npm i --save bunyan

# install bunyan-opbeat
$ npm i --save bunyan-opbeat

Use

var bunyan = require('bunyan')
var BunyanOpbeat = require('bunyan-opbeat')

var log = bunyan.createLogger({
  name: 'my-logger',
  streams: [
    {
      level: 'warn',
      type: 'raw', // <-- this is mandatory so bunyan-opbeat gets the log as an object
      stream: new BunyanOpbeat({
        config: {
          appId: '...',
          organizationId: '...',
          secretToken: '...',
          // you can also add any other parameter that opbeat module accepts, it will be passed on
        }
      })
    }
  ]
})

log.error(new Error('whoops'))

Alternatively, if you've already started an opbeat instance somewhere else in your code, you can pass it directly to bunyan-opbeat and it will use it instead:

var bunyan = require('bunyan')
var BunyanOpbeat = require('bunyan-opbeat')
var opbeat = require('opbeat').start({
  appId: '...',
  organizationId: '...',
  secretToken: '...'
})

var log = bunyan.createLogger({
  name: 'my-logger',
  streams: [
    {
      level: 'warn',
      type: 'raw', // <-- this is mandatory so bunyan-opbeat gets the log as an object
      stream: new BunyanOpbeat({
        client: opbeat
      })
    }
  ]
})

log.error(new Error('whoops'))
  • note: bunyan-opbeat requires opbeat client version >= 4.8.0

How does it work?

bunyan-opbeat reads data coming from your bunyan logger and uses opbeat.captureError() to post it to Opbeat. It will do it's best to pass on some common fields like user, time, hostname and level. Anything else in your logs that opbeat can't understand will be passed as an extra field

Releases

No releases published

Packages

No packages published