Skip to main content

@robojs/better-stack

Welcome to @robojs/better-stack! This plugin seamlessly integrates with your existing Robo.js project, providing a comprehensive link to Better Stack, a renowned third-party service. With Better Stack, monitor your Robo's uptime and integrate logs in a visually appealing and searchable format.

Prerequisites​

Before integrating this plugin, ensure you've signed up for an account on Better Stack.

Installation​

To install this plugin, navigate to your existing Robo project's directory and run the following command:

Terminal
npx robo add @robojs/better-stack

Once installed, the plugin enhances your Robo with Better Stack's capabilities.

Heartbeat Monitoring Setup​

To initiate heartbeat monitoring:

  1. Log into your Better Stack account.
  2. Create a new heartbeat, preferably naming it after your Robo.
  3. Copy the generated URL.
  4. Paste the URL into the plugin's config file: /config/plugins/roboplay/plugin-better-stack.mjs
export default {
heartbeat: {
url: 'https://uptime.betterstack.com/api/v1/heartbeat/8XMvMa5y7xtONEtUfj2yb8f'
}
}

Optional Configurations:​

  • interval: Set the frequency of requests to the heartbeat URL in milliseconds. Defaults to 5000ms (5 seconds).
  • debug: Control debug logging for the heartbeat. While it's set to false by default to prevent spam, turning it on ensures correct heartbeat setup.

Log Integration​

Firstly, set up your source in Better Stack to receive a unique sourceToken.

Method 1: Using Config File

In the plugin config file, pass your sourceToken:

export default {
sourceToken: 'YOUR_UNIQUE_SOURCE_TOKEN'
}

Method 2: Using Environment Variable

Use an environment variable in your .env file:

BETTER_STACK_SOURCE_TOKEN="YOUR_UNIQUE_SOURCE_TOKEN"

Method 3: Direct Drain Creation

Create a drain directly within the primary config file, robo.mjs. This method captures logs early, ensuring comprehensive log coverage.

// @ts-check
import { createLogtailDrain } from '@robojs/better-stack'

/**
* @type {import('robo.js').Config}
**/
export default {
// ... other configurations
logger: {
drain: createLogtailDrain(process.env.LOGTAIL_TOKEN)
}
}

Yet to embark on a Robo.js journey? Kickstart your Robo project!

Harness the synergy of Robo.js and Better Stack for an enhanced bot experience! πŸš€

More on GitHub​

Robo.js Logo

MIT Β© 2024 Robo.js By WavePlay