Skip to main content

Method Tracing

SkySignal automatically tracks all Meteor Method calls, providing detailed performance insights.

What Gets Tracked

For each Method call, SkySignal captures:

FieldDescription
methodNameThe name of the Meteor Method
responseTimeTotal execution time in milliseconds
argumentsMethod arguments (configurable)
errorError details if the method failed
userIdThe user who called the method
timestampWhen the method was called
hostWhich server handled the request

Viewing Method Data

Methods Dashboard

Navigate to your site's Methods tab to see:

  • Response Time Chart - Visualize response times over time
  • Method List - See all tracked methods with metrics
  • Slow Methods - Quickly identify performance bottlenecks

Method Details

Click on any method to see:

  • Response time percentiles (p50, p95, p99)
  • Error rate and recent errors
  • Sample traces with arguments
  • Historical trends

Configuration

Enable/Disable Method Tracking

SkySignal.init({
apiKey: '...',
trackMethods: true, // Enable (default)
});

Argument Capture

Control whether method arguments are captured:

SkySignal.init({
apiKey: '...',
captureMethodArgs: true, // Capture arguments
maxArgSize: 1024, // Max 1KB per argument
});

Ignore Specific Methods

Exclude methods from tracking:

SkySignal.init({
apiKey: '...',
ignoreMethods: [
'health.check', // Exact match
/^internal\./, // Regex: any method starting with 'internal.'
/\.heartbeat$/, // Regex: any method ending with '.heartbeat'
],
});

Redact Sensitive Data

Prevent sensitive arguments from being captured:

SkySignal.init({
apiKey: '...',
redactMethods: [
'users.login', // Don't capture login credentials
'payments.processCard', // Don't capture payment info
],
});

Performance Insights

Response Time Percentiles

SkySignal calculates percentile metrics:

  • p50 - Median response time (50% of requests are faster)
  • p95 - 95th percentile (95% of requests are faster)
  • p99 - 99th percentile (99% of requests are faster)
Focus on p95/p99

Average response time can be misleading. Focus on p95 and p99 to understand the experience of your slowest users.

Identifying Slow Methods

Methods are flagged as "slow" when they exceed thresholds:

  • Warning: > 500ms response time
  • Critical: > 2000ms response time

Configure custom thresholds in your alert settings.

Best Practices

1. Name Methods Descriptively

Use clear, hierarchical naming:

// Good
Meteor.methods({
'users.profile.update': function() { ... },
'orders.checkout.process': function() { ... },
});

// Bad
Meteor.methods({
'update': function() { ... },
'process': function() { ... },
});

2. Don't Track Health Checks

Exclude health check endpoints to avoid noise:

ignoreMethods: ['health.check', 'ping']

3. Review Argument Capture

Be mindful of what arguments you capture:

  • Passwords and tokens should always be redacted
  • Large arguments increase data transfer
  • Consider PII regulations (GDPR, etc.)

Troubleshooting

Methods Not Appearing

  1. Verify trackMethods: true in your config
  2. Check if the method is in ignoreMethods
  3. Ensure the agent is initialized before methods are defined
  4. Enable debug mode to see tracking logs

Arguments Not Captured

  1. Check captureMethodArgs: true
  2. Verify the method isn't in redactMethods
  3. Check if arguments exceed maxArgSize

Next Steps