Telemetry Configuration

Wayfinder includes optional telemetry support built on the OpenTelemetry standard. Telemetry is completely opt-in and disabled by default.

Overview

Wayfinder's telemetry system:

  • 100% Opt-in: Disabled by default, only enabled when you explicitly configure it
  • OpenTelemetry Standard: Built on the industry-standard OpenTelemetry framework
  • Your Choice of Destination: Send data to your own servers
  • Configurable: Full control over what data is collected and where it goes

All telemetry is disabled by default. It only activates when you explicitly enable it in your configuration.

Basic Configuration

Minimal Setup

import { Wayfinder, NetworkGatewaysProvider } from '@ar.io/wayfinder-core'
import { ARIO } from '@ar.io/sdk'

const wayfinder = new Wayfinder({
  gatewaysProvider: new NetworkGatewaysProvider({ ario: ARIO.mainnet() }),
  telemetrySettings: {
    enabled: true,
    serviceName: 'my-application',
    sampleRate: 0.1, // 10% of requests
  },
})

Send to Your Own Infrastructure

const wayfinder = new Wayfinder({
  gatewaysProvider: new NetworkGatewaysProvider({ ario: ARIO.mainnet() }),
  telemetrySettings: {
    enabled: true,
    serviceName: 'my-application',
    sampleRate: 0.1,
    exporterUrl: 'https://your-telemetry-server.com/traces',
    apiKey: 'your-api-key',
  },
})

Advanced Configuration

For advanced telemetry configuration, custom instrumentation, and detailed trace management, refer to the OpenTelemetry documentation.

Wayfinder uses these OpenTelemetry packages:

  • @opentelemetry/api
  • @opentelemetry/exporter-trace-otlp-http
  • @opentelemetry/sdk-trace-base

Best Practices

Production Settings

const wayfinder = new Wayfinder({
  gatewaysProvider: new NetworkGatewaysProvider({ ario: ARIO.mainnet() }),
  telemetrySettings: {
    enabled: true,
    serviceName: 'my-app-prod',
    sampleRate: 0.01, // 1% sampling for production
    exporterUrl: process.env.TELEMETRY_EXPORTER_URL,
  },
})

Development Settings

const wayfinder = new Wayfinder({
  gatewaysProvider: new NetworkGatewaysProvider({ ario: ARIO.mainnet() }),
  telemetrySettings: {
    enabled: true,
    serviceName: 'my-app-dev',
    sampleRate: 0.5, // Higher sampling for debugging
  },
})

Frequently Asked Questions

Q: Is telemetry enabled by default? A: No, telemetry is completely disabled by default and only activates when you explicitly configure it.

Q: Can I use my own telemetry backend? A: Yes, specify your own exporterUrl to send data to any OpenTelemetry-compatible backend.

Q: Does this affect performance? A: Minimal impact when using appropriate sampling rates (1-10% for production).

Q: Can I disable telemetry after enabling it? A: Yes, simply set enabled: false or remove the telemetrySettings configuration entirely.

Was this page helpful?