Overview

Axiom transport for Pino logger

Prerequisites#

Install SDK#

To install the SDK, run the following:

npm install @axiomhq/pino

Create Pino logger#

The example below creates a Pino logger with Axiom configured. Set the edge option to the edge domain that matches the region your dataset lives in — see Configure region for the full list.

import pino from 'pino';
 
const logger = pino(
  { level: 'info' },
  pino.transport({
    target: '@axiomhq/pino',
    options: {
      dataset: process.env.AXIOM_DATASET,
      token: process.env.AXIOM_TOKEN,
      edge: 'eu-central-1.aws.edge.axiom.co',
    },
  }),
);
import pino from 'pino';
 
const logger = pino(
  { level: 'info' },
  pino.transport({
    target: '@axiomhq/pino',
    options: {
      dataset: process.env.AXIOM_DATASET,
      token: process.env.AXIOM_TOKEN,
      edge: 'us-east-1.aws.edge.axiom.co',
    },
  }),
);

After setting up the Axiom transport for Pino, use the logger as usual:

logger.info('Hello from Pino!');

Configure region#

Set the edge option on the transport to the edge domain for your Axiom deployment.

Edge deployment Base domain for ingest and query
US East 1 (AWS) us-east-1.aws.edge.axiom.co
EU Central 1 (AWS) eu-central-1.aws.edge.axiom.co

Always use the edge option to target a region. Don't put a regional hostname in url — url is reserved for non-ingest API operations and will not route ingest correctly.

Transport options#

Option Required Description
dataset yes The Axiom dataset to ingest logs into.
token yes An Axiom API or personal token with ingest permission for the dataset.
edge no Edge domain for ingest, without scheme. Example: eu-central-1.aws.edge.axiom.co. Use this to target a region.
edgeUrl no Full edge URL (with scheme). Takes precedence over edge if both are set. Useful for self-hosted or proxy setups.
url no Base URL for non-ingest API operations. Only needed if you call other Axiom APIs from the same client.

Examples#

For more examples, see the examples in GitHub.

Updated

Was this page helpful?