Watchlog APM

Application Performance Monitoring to trace, analyze, and optimize your backend services in real time.

30‑day trial on paid features. No credit card to start.

Why choose Watchlog APM?

  • End‑to‑end tracing across services and databases with minimal overhead.
  • Timing metrics like avg, p95, and max to spot regressions instantly.
  • Automatic error tracking with stack traces and request context.
  • SQL/NoSQL insight with slow queries and N+1 detectors.
APM Traces
p95
Latency distribution

Track your 95th percentile over time to catch outliers.

Top
Slowest endpoints

Rank routes by average and max duration.

Rate
Error spikes

Detect bursts of exceptions and status 5xx.

DB
Query hotspots

Find the queries that dominate request time.

Supported frameworks & languages

Node.js (Express)

Drop‑in middleware for route timings & errors

NestJS

Global interceptor for consistent traces

FastAPI

ASGI middleware with low overhead

Django / Flask

WSGI middleware & decorators

Install in minutes

# Nodejs 
npm install @watchlog/apm
  
// index.js — must be first
const { instrument } = require('@watchlog/apm');

// Initialize with your service name and options
const sdk = instrument({
  app: 'my-service',          // your application name
  errorTPS: 5,                // max 5 error spans/sec
  sendErrorTraces: true,      // always send error spans
  slowThresholdMs: 300,       // always send spans slower than 300ms
  sampleRate: 1               // random sample rate (0.0–1.0, capped at 0.3)
});

// Continue loading your application
const express = require('express');
const app = express();

app.get('/', (req, res) => res.send('Hello World!'));
app.listen(3000, () => console.log('Listening on 3000'));

  
Need another framework? See the full APM docs.Open docs

Deep request visibility

  • Per‑route timings with normalized paths
  • DB spans for SQL & NoSQL (queries, rows, timings)
  • External call instrumentation (HTTP, cache)

Actionable trends

  • Requests, errors, avg/p95/max, memory trends
  • Compare before/after deploys for regressions
  • Top endpoints & slow traces tables

Error context

  • Stack traces with request/headers context
  • Log correlation to jump from error to logs
  • Link to related metrics for a 360° view

Frequently asked questions

How much overhead does APM add?

Typical overhead is < 2–5% CPU depending on sampling and enabled spans. You can tune sampling and disable integrations per service.

Can I sample traces?

Yes. Set global or route‑level sampling rates to balance cost and visibility.

Does it support background jobs?

Yes. You can create custom spans around jobs, queues, or cron tasks.

How are routes normalized?

We normalize dynamic segments (e.g., /users/:id) so high‑cardinality paths roll up correctly.

Can I see database query text?

You can capture query text with safeguards (redaction). For sensitive environments, log only timings and tables.

Ready to trace your first request?

Install the middleware and watch routes, queries, and errors come to life.