Trace کامل درخواستها
Route, Method, Status, Duration, Child Spans
- نرمالسازی مسیرها (/:id)
- پرش از اسپن به لاگ مرتبط
- نمونهبرداری پویا بر اساس خطا/کندی
Watchlog • APM
رهگیری درخواستها، کشف گلوگاهها و کنترل خطاها — با مسیرهای نرمالسازیشده، اسپنهای دیتابیس و نمودارهای p95/p99، آماده برای رشد محصول شما.
{
"route": "/orders/:id",
"method": "GET",
"latency_ms": 182,
"p95_ms": 341,
"db": { "engine": "postgres", "duration_ms": 73 },
"cache": { "hit": true, "provider": "redis" },
"status": 200,
"traceId": "apm_9b20…3a",
"error": null
}چرا واچلاگ APM؟

نمونه نمایشی — دادههای ساختگی
امکانات کلیدی • APM
از اسپنهای مسیر تا دیتابیس، از خطاها تا حافظه — همه در یک نما.
Trace کامل درخواستها
Route, Method, Status, Duration, Child Spans
متریکهای عملکرد
میانگین، p95/p99، Throughput و Error Rate به تفکیک سرویس/مسیر
بینش دیتابیس
Slow Query، Plan ساده، فراوانی و سهم از کل زمان پاسخ
مدیریت خطا
استکتریس، دستهبندی، Rate محدودیت، Ignore Rules
پایش حافظه و منابع
RSS/Heap، CPU، GC Events و ارتباط با ترافیک
هشدار و خودکارسازی
Threshold/Anomaly برای تأخیر/خطا/منابع + Webhook/Slack/Telegram
Node.js (Express & NestJS)
میانافزار آماده برای زمانبندی مسیر و خطا
Flask
اینترسپتور سراسری برای رهگیری سازگار
FastAPI
میانگین سربار پایین با ASGI
Django
میانافزار WSGI و دکوراتورها
Install
npm install @watchlog/apm-nodeUsage
// index.js — باید زودترین ایمپورت باشد
const { instrument } = require('@watchlog/apm-node');
const sdk = instrument({
app: 'my-service',
errorTPS: 5,
sendErrorTraces: true,
slowThresholdMs: 300,
sampleRate: 1
})
const express = require('express')
const app = express()
app.get('/', (req,res)=> res.send('Hello Watchlog APM'))
app.listen(3000, ()=> console.log('Listening on 3000'))دید عمیق روی درخواستها
Route spans + child spans (DB, Cache, HTTP)
روندهای قابل اقدام
میانگین/p95/بیشینه، حافظه، نرخ خطا و مقایسه دیپلوی
متن خطاها
استکتریس + همبستگی با لاگها برای پرش سریع
مقایسه سریع
در حالت معمول ۲–۵٪ CPU بسته به نمونهبرداری و اینتگریشنها. نرخ نمونهبرداری و نوع اسپنها قابل تنظیم است.
بله، سراسری یا در سطح مسیر/اسپن. میتوانید روی خطا/کندی نمونهبرداری را بالا ببرید.
بله، برای جاب/صف/کران میتوانید اسپنهای سفارشی بسازید و به Trace متصل کنید.
بخشهای پویا (مانند /users/:id) نرمال میشوند تا کاردینالیتی کنترل شود و نمودارها معنادار بمانند.
در محیطهای حساس فقط زمان و نام جدول را ذخیره کنید. امکان ماسک/حذف بخشهای حساس وجود دارد.
میانافزار را نصب کنید و مسیرها، کوئریها و خطاها را زنده ببینید.