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
واچلاگ از پروتکل استاندارد OpenTelemetry (OTLP) پشتیبانی میکند. از هر زبان یا فریمورکی که OpenTelemetry را پشتیبانی میکند استفاده کنید.
Node.js
OpenTelemetry JS SDK با پشتیبانی از Express, NestJS و ...
Python
OpenTelemetry Python SDK با پشتیبانی از FastAPI, Django, Flask
Java
OpenTelemetry Java SDK با پشتیبانی از Spring Boot و ...
Go
OpenTelemetry Go SDK با پشتیبانی از Gin, Echo و ...
کافی است OpenTelemetry OTLP exporter را به endpoint واچلاگ متصل کنید. نیازی به پکیج اختصاصی نیست.
OpenTelemetry OTLP exporter خود را به endpoint زیر متصل کنید:
http://localhost:3774/apm/YOUR_APP_NAME/v1/traces http://watchlog-agent:3774/apm/YOUR_APP_NAME/v1/traces توجه:
localhost:3774 یا watchlog-agent:3774 را با آدرس و پورت agent خود جایگزین کنیدYOUR_APP_NAME را با نام اپلیکیشن خود جایگزین کنیدUsage
// Install OpenTelemetry packages
npm install @opentelemetry/api
npm install @opentelemetry/sdk-node
npm install @opentelemetry/exporter-trace-otlp-http
npm install @opentelemetry/instrumentation
// tracing.js
const { NodeSDK } = require('@opentelemetry/sdk-node');
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-http');
const { getNodeAutoInstrumentations } = require('@opentelemetry/auto-instrumentations-node');
const sdk = new NodeSDK({
traceExporter: new OTLPTraceExporter({
url: 'http://localhost:3774/apm/YOUR_APP_NAME/v1/traces',
}),
instrumentations: [getNodeAutoInstrumentations()],
});
sdk.start();
// index.js
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello Watchlog APM with OpenTelemetry!');
});
app.listen(3000);دید عمیق روی درخواستها
Route spans + child spans (DB, Cache, HTTP)
روندهای قابل اقدام
میانگین/p95/بیشینه، حافظه، نرخ خطا و مقایسه دیپلوی
متن خطاها
استکتریس + همبستگی با لاگها برای پرش سریع
مقایسه سریع
OpenTelemetry یک استاندارد صنعتی است که با هر زبان و فریمورکی کار میکند. نیازی به پکیج اختصاصی نیست و میتوانید از SDKهای استاندارد استفاده کنید.
در حالت معمول ۲–۵٪ CPU بسته به نمونهبرداری و اینتگریشنها. نرخ نمونهبرداری و نوع اسپنها قابل تنظیم است.
بله، سراسری یا در سطح مسیر/اسپن. میتوانید روی خطا/کندی نمونهبرداری را بالا ببرید.
بله، برای جاب/صف/کران میتوانید اسپنهای سفارشی بسازید و به Trace متصل کنید.
بخشهای پویا (مانند /users/:id) نرمال میشوند تا کاردینالیتی کنترل شود و نمودارها معنادار بمانند.
در محیطهای حساس فقط زمان و نام جدول را ذخیره کنید. امکان ماسک/حذف بخشهای حساس وجود دارد.
OpenTelemetry را پیکربندی کنید و مسیرها، کوئریها و خطاها را زنده ببینید.