Skip to main content

Configuration

Complete reference for all SkySignal agent configuration options.

Settings Structure

SkySignal uses Meteor's settings system with two configuration sections:

{
"skysignal": {
// Server-side configuration (private)
},
"public": {
"skysignal": {
// Client-side configuration (RUM, error tracking)
}
}
}

Server-Side Configuration

Configure server-side monitoring in settings.skysignal:

Required

OptionTypeDescription
apiKeyStringYour SkySignal API key (sk_xxx format)

General Options

OptionTypeDefaultDescription
enabledBooleantrueEnable/disable the agent
debugBooleanfalseEnable verbose debug logging
endpointStringhttps://dash.skysignal.appAPI endpoint URL
hostStringAuto-detectedOverride hostname identification
appVersionStringAuto-detectedApplication version for tracking releases

Batching & Performance

OptionTypeDefaultDescription
batchSizeInteger50Max items before auto-flush
batchSizeBytesInteger262144Max bytes per batch (256KB)
flushIntervalInteger10000Flush interval in ms
maxBatchRetriesInteger3Max retries for failed batches
requestTimeoutInteger3000API request timeout in ms
maxMemoryMBInteger50Max memory for batches

Sampling

OptionTypeDefaultDescription
traceSampleRateNumber1.0Method trace sampling (0.0-1.0)
rumSampleRateNumber0.5RUM data sampling (0.0-1.0)

System Metrics

OptionTypeDefaultDescription
collectSystemMetricsBooleantrueCollect CPU, memory, event loop
systemMetricsIntervalInteger60000Collection interval (ms)

Method Tracing

OptionTypeDefaultDescription
collectTracesBooleantrueTrack Meteor Methods
traceMethodArgumentsBooleantrueCapture method arguments
maxArgLengthInteger1000Max string length for arguments
traceMethodOperationsBooleantrueCapture detailed operation timeline

Error Tracking

OptionTypeDefaultDescription
collectErrorsBooleantrueTrack server-side errors

MongoDB Monitoring

OptionTypeDefaultDescription
collectMongoPoolBooleantrueTrack connection pool stats
mongoPoolIntervalInteger60000Collection interval (ms)
mongoPoolFixedConnectionMemoryNumbernullFixed bytes per connection
collectCollectionStatsBooleantrueTrack collection statistics
collectionStatsIntervalInteger300000Collection interval (5 min)

Index Usage Tracking

OptionTypeDefaultDescription
captureIndexUsageBooleantrueCapture MongoDB explain() data
indexUsageSampleRateNumber0.05Sample rate for explain (5%)
explainVerbosityStringexecutionStatsqueryPlanner, executionStats, or allPlansExecution
explainSlowQueriesOnlyBooleanfalseOnly explain slow queries

DDP Connections

OptionTypeDefaultDescription
collectDDPConnectionsBooleantrueTrack DDP connections
ddpConnectionsIntervalInteger30000Collection interval (ms)

HTTP Requests

OptionTypeDefaultDescription
collectHttpRequestsBooleantrueTrack HTTP requests

Background Jobs

OptionTypeDefaultDescription
collectJobsBooleantrueTrack background jobs
jobsIntervalInteger30000Collection interval (ms)
jobsPackageStringAuto-detectJob package (msavin:sjobs)

Worker Threads

OptionTypeDefaultDescription
useWorkerThreadBooleanfalseOffload to worker thread
workerThresholdInteger50Pool size to trigger worker

Client-Side Configuration (RUM)

Configure Real User Monitoring in settings.public.skysignal:

Required

OptionTypeDescription
publicKeyStringYour SkySignal public key (pk_xxx format)

RUM Options

Configure under settings.public.skysignal.rum:

OptionTypeDefaultDescription
enabledBooleantrueEnable RUM collection
trackUserActionsBooleantrueTrack clicks, form submits
trackPageViewsBooleantrueTrack page navigation
debugBooleanfalseEnable debug logging

Error Tracking Options

Configure under settings.public.skysignal.errorTracking:

OptionTypeDefaultDescription
enabledBooleantrueEnable client error tracking
attachScreenshotsBooleanfalseCapture screenshots on error
screenshotQualityNumber0.7Screenshot JPEG quality
screenshotSamplingRateNumber100% of errors to screenshot
maxScreenshotSizeInteger512000Max screenshot size (bytes)
redactSelectorsArray[]CSS selectors to redact
captureUnhandledRejectionsBooleantrueCapture Promise rejections
captureConsoleErrorsBooleanfalseCapture console.error calls
ignoreErrorsArray[]Error messages to ignore
debugBooleanfalseEnable debug logging

Example Configurations

Minimal Setup

{
"skysignal": {
"apiKey": "sk_live_xxxxxxxxxxxx"
},
"public": {
"skysignal": {
"publicKey": "pk_live_xxxxxxxxxxxx"
}
}
}

Development

{
"skysignal": {
"apiKey": "sk_dev_xxxxxxxxxxxx",
"debug": true,
"traceSampleRate": 1.0
},
"public": {
"skysignal": {
"publicKey": "pk_dev_xxxxxxxxxxxx",
"rum": {
"enabled": true,
"debug": true
},
"errorTracking": {
"enabled": true,
"attachScreenshots": true,
"debug": true
}
}
}
}
{
"skysignal": {
"apiKey": "sk_live_xxxxxxxxxxxx",
"enabled": true,
"debug": false,
"appVersion": "1.2.3",

"collectSystemMetrics": true,
"systemMetricsInterval": 60000,

"collectTraces": true,
"traceMethodArguments": true,
"traceSampleRate": 1.0,

"collectErrors": true,

"collectMongoPool": true,
"mongoPoolInterval": 60000,
"captureIndexUsage": true,
"indexUsageSampleRate": 0.05,

"collectDDPConnections": true,
"collectHttpRequests": true,

"collectJobs": true
},
"public": {
"skysignal": {
"publicKey": "pk_live_xxxxxxxxxxxx",
"rum": {
"enabled": true,
"trackUserActions": true,
"trackPageViews": true
},
"errorTracking": {
"enabled": true,
"attachScreenshots": false,
"captureUnhandledRejections": true
}
}
}
}

High-Traffic (Reduced Sampling)

{
"skysignal": {
"apiKey": "sk_live_xxxxxxxxxxxx",
"traceSampleRate": 0.1,
"rumSampleRate": 0.1,
"indexUsageSampleRate": 0.01,
"systemMetricsInterval": 120000,
"mongoPoolInterval": 120000,
"batchSize": 100,
"flushInterval": 30000
},
"public": {
"skysignal": {
"publicKey": "pk_live_xxxxxxxxxxxx",
"rum": {
"enabled": true,
"trackUserActions": false
}
}
}
}

Server-Only (No RUM)

{
"skysignal": {
"apiKey": "sk_live_xxxxxxxxxxxx",
"collectSystemMetrics": true,
"collectTraces": true,
"collectErrors": true,
"collectMongoPool": true
}
}

Environment Variables

You can also configure the agent via environment variables:

# API Key (required)
export SKYSIGNAL_API_KEY=sk_live_xxxxxxxxxxxx

# Custom endpoint (optional)
export SKYSIGNAL_ENDPOINT=https://dash.skysignal.app

Environment variables take precedence over settings for supported options.

Programmatic Configuration

For advanced use cases, configure the agent programmatically:

import { SkySignalAgent } from 'meteor/skysignal:agent';

// Configure with custom options
SkySignalAgent.configure({
apiKey: process.env.SKYSIGNAL_API_KEY,
debug: true,
traceSampleRate: 0.5,
collectJobs: false
});

// Start the agent
SkySignalAgent.start();
Override auto-start

If using programmatic configuration, ensure your settings.json doesn't have a skysignal.apiKey to prevent auto-start.

Performance Impact

The agent is designed for minimal overhead:

  • CPU: < 1% additional usage
  • Memory: < 50MB (configurable via maxMemoryMB)
  • Latency: < 2ms per method call

Reducing Impact

For resource-constrained environments:

{
"skysignal": {
"apiKey": "sk_live_xxx",
"traceSampleRate": 0.1,
"systemMetricsInterval": 300000,
"mongoPoolInterval": 300000,
"traceMethodArguments": false,
"captureIndexUsage": false,
"batchSize": 100,
"flushInterval": 60000
}
}

Next Steps