Getting Started
This guide will walk you through setting up SkySignal in your Meteor.js application in under 5 minutes.
Prerequisites
Before you begin, make sure you have:
- A Meteor.js application (v3.0 or later)
- A SkySignal account (free tier available)
Step 1: Create a Site
- Log in to your SkySignal dashboard
- Click "Add Site" in the Sites view
- Enter a name for your application
- Copy both keys:
- API Key (
sk_xxx) - For server-side monitoring - Public Key (
pk_xxx) - For client-side RUM tracking
- API Key (
Your API key authenticates your server with SkySignal. Never commit it to version control. The public key is safe to include in client code.
Step 2: Add the Agent Package
Add the SkySignal agent to your Meteor project:
meteor add skysignal:agent
Step 3: Configure Your Settings
Add your keys to your Meteor settings file. Create or update settings.json:
{
"skysignal": {
"apiKey": "sk_live_xxxxxxxxxxxx"
},
"public": {
"skysignal": {
"publicKey": "pk_live_xxxxxxxxxxxx"
}
}
}
The skysignal key (private) configures server-side monitoring, while public.skysignal configures client-side Real User Monitoring (RUM).
Development Settings
For development with debug logging enabled:
{
"skysignal": {
"apiKey": "sk_dev_xxxxxxxxxxxx",
"debug": true
},
"public": {
"skysignal": {
"publicKey": "pk_dev_xxxxxxxxxxxx",
"rum": {
"enabled": true,
"debug": true
},
"errorTracking": {
"enabled": true,
"debug": true
}
}
}
}
Step 4: Start Your Application
Run your Meteor app with the settings file:
meteor run --settings settings.json
You should see messages in the console:
[SkySignal] Agent started - host: your-hostname
And in the browser console (if RUM is enabled):
[SkySignal RUM] Initialized successfully
Step 5: Verify Installation
- Make a few Method calls or navigate around your app
- Open your SkySignal dashboard
- You should see data appearing within seconds!
What Gets Tracked?
Server-Side (Automatic)
| Feature | Data Collected |
|---|---|
| Methods | Name, response time, arguments, errors |
| Publications | Name, response time, document count |
| Errors | Message, stack trace, context |
| System | CPU, memory, event loop lag |
| MongoDB | Query times, connection pool stats |
| DDP | Active connections, message stats |
| Live Queries | Observer counts, document updates |
| Background Jobs | Steve Jobs metrics (if installed) |
Client-Side (RUM)
| Feature | Data Collected |
|---|---|
| Page Views | Route, load time, referrer |
| Core Web Vitals | LCP, FID, CLS, TTFB, FCP |
| User Actions | Clicks, form submissions |
| Client Errors | JavaScript errors, stack traces |
| Session | Duration, pages visited |
Configuration Options
Server-Side Configuration
{
"skysignal": {
"apiKey": "sk_live_xxx",
"enabled": true,
"debug": false,
"appVersion": "1.0.0",
"collectSystemMetrics": true,
"systemMetricsInterval": 60000,
"collectTraces": true,
"traceMethodArguments": true,
"traceSampleRate": 1.0,
"collectErrors": true,
"collectMongoPool": true,
"mongoPoolInterval": 60000,
"collectDDPConnections": true,
"ddpConnectionsInterval": 30000,
"collectHttpRequests": true,
"collectJobs": true,
"jobsInterval": 30000
}
}
Client-Side Configuration (RUM)
{
"public": {
"skysignal": {
"publicKey": "pk_live_xxx",
"rum": {
"enabled": true,
"trackUserActions": true,
"trackPageViews": true,
"debug": false
},
"errorTracking": {
"enabled": true,
"attachScreenshots": false,
"captureUnhandledRejections": true,
"captureConsoleErrors": false,
"debug": false
}
}
}
}
See the Configuration Guide for all available options.
Production Deployment
For production, use a separate settings file with production keys:
{
"skysignal": {
"apiKey": "sk_live_xxxxxxxxxxxx",
"enabled": true,
"debug": false
},
"public": {
"skysignal": {
"publicKey": "pk_live_xxxxxxxxxxxx",
"rum": {
"enabled": true
},
"errorTracking": {
"enabled": true
}
}
}
}
Galaxy Deployment
For Meteor Galaxy, set your settings in the Galaxy dashboard or deploy with:
meteor deploy myapp.meteorapp.com --settings settings-production.json
Docker Deployment
Pass settings via environment or mount:
docker run -v /path/to/settings.json:/app/settings.json \
-e METEOR_SETTINGS="$(cat settings.json)" \
my-meteor-app
Next Steps
Now that you have SkySignal installed, explore these guides:
- Agent Configuration - Fine-tune what gets tracked
- Dashboard Overview - Navigate the dashboard
- Setting Up Alerts - Get notified of issues
- Performance Optimization - Use SkySignal to improve performance
Troubleshooting
No data appearing in dashboard?
- Check your API key - Make sure it matches the key shown in your Site settings
- Check the console - Look for
[SkySignal]messages in your server logs - Enable debug mode - Set
"debug": truein your settings to see detailed logs - Check network - Ensure your server can reach
https://dash.skysignal.app
RUM not working?
- Check public key - Ensure
publicKeyis insettings.public.skysignal - Check browser console - Look for
[SkySignal RUM]messages - Verify RUM is enabled - Set
rum.enabled: truein settings
Agent not starting?
Make sure your settings.json has the correct structure:
{
"skysignal": {
"apiKey": "sk_live_xxx"
},
"public": {
"skysignal": {
"publicKey": "pk_live_xxx"
}
}
}
The skysignal key (lowercase) must be at the root level of your settings.
Need more help? Check our Troubleshooting guide or contact support.