Watchlog • APM

پایش کارایی اپلیکیشن (APM) برای بک‌اندهای مدرن

رهگیری درخواست‌ها، کشف گلوگاه‌ها و کنترل خطاها — با مسیرهای نرمال‌سازی‌شده، اسپن‌های دیتابیس و نمودارهای p95/p99، آماده برای رشد محصول شما.

Node.js • Python • PHPTraces + Metrics + LogsAlerts & Webhooks
service: checkout-api
{
    "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؟

دید عملیاتی قابل اتکا، بدون شلوغی

  • رهگیری سرتاسری میان سرویس‌ها، دیتابیس و فراخوانی‌های بیرونی.
  • p95/p99 لحظه‌ای + مقایسه قبل/بعد از استقرار (Regression Spotting).
  • SQL/NoSQL Slow Query، N+1 Detector و برآورد هزینه کوئری.
  • هشدار هوشمند (Spike/Drop) با Webhook/Slack/Telegram.
رهگیری‌ها در APM

نمونه نمایشی — داده‌های ساختگی

امکانات کلیدی • APM

همه‌چیز برای پیدا کردن گلوگاه‌ها

از اسپن‌های مسیر تا دیتابیس، از خطاها تا حافظه — همه در یک نما.

Trace کامل درخواست‌ها

Route, Method, Status, Duration, Child Spans

  • نرمال‌سازی مسیرها (/:id)
  • پرش از اسپن به لاگ مرتبط
  • نمونه‌برداری پویا بر اساس خطا/کندی

متریک‌های عملکرد

میانگین، p95/p99، Throughput و Error Rate به تفکیک سرویس/مسیر

  • مقایسه بازه‌ها (قبل/بعد از دیپلوی)
  • Grouping بر اساس Tag/Env/Version

بینش دیتابیس

Slow Query، Plan ساده، فراوانی و سهم از کل زمان پاسخ

  • N+1 Detector
  • فیلتر بر اساس جدول/ایندکس
  • پیشنهادهای ساده تنظیم

مدیریت خطا

استک‌تریس، دسته‌بندی، Rate محدودیت، Ignore Rules

  • Auto-grouping بر اساس امضا
  • پیوند به درخواست/کاربر
  • Alert روی روند غیرعادی

پایش حافظه و منابع

RSS/Heap، CPU، GC Events و ارتباط با ترافیک

  • نشت احتمالی حافظه (trend)
  • حد آستانه با آلارم
  • Export برای تحلیل آفلاین

هشدار و خودکارسازی

Threshold/Anomaly برای تأخیر/خطا/منابع + Webhook/Slack/Telegram

  • Windowed thresholds
  • Auto-mute روی طغیان خطا
  • Maintenance windows

زبان‌ها و فریم‌ورک‌های پشتیبانی‌شده

Node.js (Express & NestJS)

میان‌افزار آماده برای زمان‌بندی مسیر و خطا

Flask

اینترسپتور سراسری برای رهگیری سازگار

FastAPI

میانگین سربار پایین با ASGI

Django

میان‌افزار WSGI و دکوراتورها

نصب در چند دقیقه

Node.js (Express & NestJS)

Node.js

Install

npm install @watchlog/apm-node

Usage

// 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'))
فریم‌ورک دیگری می‌خواهید؟ مستندات کامل APM را ببینید.باز کردن مستندات

دید عمیق روی درخواست‌ها

Route spans + child spans (DB, Cache, HTTP)

  • زمان‌بندی مسیر با مسیرهای نرمال‌سازی‌شده
  • اسپن‌های دیتابیس برای SQL و NoSQL (کوئری، ردیف، زمان)
  • ابزارسازی فراخوانی‌های بیرونی (HTTP، کش)

روندهای قابل اقدام

میانگین/p95/بیشینه، حافظه، نرخ خطا و مقایسه دیپلوی

  • درخواست، خطا، میانگین/p95/بیشینه و روند حافظه
  • مقایسهٔ قبل/بعد از استقرار برای کشف پسرفت
  • جدول مسیرهای برتر و رهگیری‌های کند

متن خطاها

استک‌تریس + همبستگی با لاگ‌ها برای پرش سریع

  • استک‌تریس با متن درخواست/هدرها
  • همبستگی با لاگ برای پرش از خطا به لاگ
  • پیوند به متریک‌های مرتبط برای دید ۳۶۰ درجه

مقایسه سریع

چرا واچ‌لاگ APM برای تیم‌های چابک مناسب‌تر است؟

Watchlog APM

  • ⚡️ نصب در چند دقیقه، حداقل تنظیمات
  • 🧭 مسیرهای نرمال‌سازی‌شده بدون کاردینالیتی وحشی
  • 🔗 پرش یک‌کلیک از اسپن به لاگ/متریک مرتبط
  • 📈 داشبوردهای آماده + Export

ابزارهای عمومی

  • ⏳ راه‌اندازی طولانی و پرهزینه
  • 🌀 مسیرهای متنوع = نمودارهای شلوغ و بی‌فایده
  • 🔍 ارتباط دستی بین لاگ/متریک/تریس
  • 🧩 وابستگی به افزونه‌های متعدد

سوالات متداول

سربار APM چقدر است؟

در حالت معمول ۲–۵٪ CPU بسته به نمونه‌برداری و اینتگریشن‌ها. نرخ نمونه‌برداری و نوع اسپن‌ها قابل تنظیم است.

آیا می‌توانم نمونه‌برداری کنم؟

بله، سراسری یا در سطح مسیر/اسپن. می‌توانید روی خطا/کندی نمونه‌برداری را بالا ببرید.

کارهای پس‌زمینه پشتیبانی می‌شود؟

بله، برای جاب/صف/کران می‌توانید اسپن‌های سفارشی بسازید و به Trace متصل کنید.

نرمال‌سازی مسیرها چگونه است؟

بخش‌های پویا (مانند /users/:id) نرمال می‌شوند تا کاردینالیتی کنترل شود و نمودارها معنادار بمانند.

متن کوئری دیتابیس قابل مشاهده است؟

در محیط‌های حساس فقط زمان و نام جدول را ذخیره کنید. امکان ماسک/حذف بخش‌های حساس وجود دارد.

آمادهٔ رهگیری اولین درخواست هستید؟

میان‌افزار را نصب کنید و مسیرها، کوئری‌ها و خطاها را زنده ببینید.