Back to Mastra

@mastra/laminar

observability/laminar/README.md

2025-12-182.7 KB
Original Source

@mastra/laminar

Laminar observability exporter for Mastra applications.

Exports Mastra spans to Laminar via OTLP/HTTP (protobuf) and supports sending scorer results to Laminar Evaluators.

Installation

bash
npm install @mastra/laminar

Usage

Zero-Config Setup

The exporter automatically reads credentials from environment variables:

bash
# Required
LMNR_PROJECT_API_KEY=lmnr_...

# Optional
LMNR_BASE_URL=https://api.lmnr.ai
LAMINAR_ENDPOINT=https://api.lmnr.ai/v1/traces
ts
import { LaminarExporter } from '@mastra/laminar';

const mastra = new Mastra({
  ...,
  observability: {
    configs: {
      laminar: {
        serviceName: 'my-service',
        exporters: [new LaminarExporter()],
      },
    },
  },
});

Explicit Configuration

ts
import { LaminarExporter } from '@mastra/laminar';

const mastra = new Mastra({
  ...,
  observability: {
    configs: {
      laminar: {
        serviceName: 'my-service',
        exporters: [
          new LaminarExporter({
            apiKey: 'lmnr_...',
            baseUrl: 'https://api.lmnr.ai',
            endpoint: 'https://api.lmnr.ai/v1/traces', // Optional
            realtime: false, // Optional
          }),
        ],
      },
    },
  },
});

Configuration Options

OptionTypeDescription
apiKeystringLaminar project API key. Defaults to LMNR_PROJECT_API_KEY env var
baseUrlstringLaminar base URL. Defaults to LMNR_BASE_URL env var or https://api.lmnr.ai
endpointstringOTLP/HTTP traces endpoint. Defaults to LAMINAR_ENDPOINT env var or /v1/traces
headersRecord<string,string>Additional OTLP headers
realtimebooleanFlush after each span for immediate visibility. Defaults to false
disableBatchbooleanDisable batching (SimpleSpanProcessor). Defaults to false
batchSizenumberMax spans per batch (BatchSpanProcessor). Defaults to 512
timeoutMillisnumberOTLP export timeout (ms). Defaults to 30000

Notes

  • The exporter sets Laminar-specific attributes (lmnr.span.*, lmnr.association.properties.*) so traces render correctly in Laminar.