This is a transport for the Pino logging library that sends logs to an Openobserve server in batches.
This package requires Node.js version 18.0.0 or later and pino v7+
You can install this package using npm or Yarn.
With npm:
npm install @openobserve/pino-openobserve
With Yarn:
yarn add @openobserve/pino-openobserve
The transport accepts an options object with the following properties:
Property | Required | Default | Description |
---|---|---|---|
url | Yes | - | The URL of your Openobserve server. |
organization | Yes | - | The name of your organization. |
streamName | Yes | - | The name of the stream to which logs should be sent. |
auth | Yes | { username: "", password: "" } |
An object with username and password properties for authenticating with the Openobserve server |
batchSize | No | 100 |
The number of logs to include in each batch. |
timeThreshold | No | 300000 (5 mins) |
The interval, in milliseconds, at which logs should be sent. |
silentSuccess | No | false | A boolean indicating whether to suppress successful operation messages. |
silentError | No | false | A boolean indicating whether to suppress error messages. |
The way you import the pino
and @openobserve/pino-openobserve
packages depends on whether you're using import
or require
.
Using import
:
import pino from 'pino';
import OpenobserveTransport from '@openobserve/pino-openobserve';
Using require
:
const pino = require('pino');
const OpenobserveTransport = require('@openobserve/pino-openobserve');
After importing the necessary packages, you can use this transport with Pino like this:
const logger = pino({
level: 'info',
transport: {
target: OpenobserveTransport,
options: {
url: 'https://your-openobserve-server.com',
organization: 'your-organization',
streamName: 'your-stream',
auth: {
username: 'your-username',
password: 'your-password',
},
},
},
});
logger.info('Hello, world!');
logger.info({ lang: 'js', code: 'Node.js' }, 'Logging with JSON');
In this example, the second logger.info
call logs a JSON object containing the properties lang
and code
, along with the message 'Logging with JSON'. This is a common way to include structured data in your logs when using Pino.
This package is licensed under the Apache License, Version 2.0. See the LICENSE
file for more details.