نصب SDK مرورگر
پکیج را با npm نصب کنید و آن را پیش از رندر اصلی برنامه مقداردهی کنید.
npm install @didban/browser-sdkانتخاب SDK
SDK را انتخاب کنید، یک مسیر کوتاه را جلو بروید و خطا را با زمینهای بفرستید که به رفع آن کمک میکند.
ثبت خودکار خطاهای مرورگر، درخواستهای شبکه و ردپای رفتار کاربر.
@didban/browser-sdkپکیج را با npm نصب کنید و آن را پیش از رندر اصلی برنامه مقداردهی کنید.
npm install @didban/browser-sdkتوکن اپلیکیشن، محیط و شناسهٔ یکتای build را مشخص کنید.
مقدار release باید با مقداری که هنگام آپلود source map میفرستید یکسان باشد.
import Didban from '@didban/browser-sdk';
Didban.init({
apiKey: 'YOUR_API_KEY',
appName: 'storefront-web',
config: {
baseUrl: 'https://api.getdidban.ir',
environment: 'production',
release: 'web@1.4.0',
},
});برای اینکه گزارش خطا قابل اقدام باشد، زمینهٔ کسبوکار را کنار خطا بفرستید.
Didban.setUser({ id: 'user-42' });
Didban.addClue('Checkout opened', { cartId: 'cart-8' });
await Didban.capture(new Error('Payment failed'));خطاهای fetch و XHR خودکار ثبت میشوند. آستانهٔ درخواست کند را متناسب با SLO سرویس تنظیم کنید.
config: {
reportSlowRequests: true,
slowRequestThresholdMs: 3000,
ignoreUrls: ['/health'],
}SDK فیلدهای رایج مانند password، token و apiKey را پاکسازی میکند؛ دادهٔ حساس اختصاصی محصول را هم پیش از ارسال فیلتر کنید.
بدنهٔ درخواست و پاسخ را فقط جایی فعال نگه دارید که سیاست نگهداری دادهٔ سازمان اجازه میدهد.
خطاهای JavaScript، مسیرهای اپ و شاخصهای FPS در اپ موبایل.
@didban/react-nativeپکیج React Native را در پروژهٔ اپ نصب کنید.
npm install @didban/react-nativeمقداردهی را یک بار و در بالاترین نقطهٔ چرخهٔ اجرای اپ انجام دهید.
import Didban from '@didban/react-native';
Didban.init({
apiKey: 'YOUR_API_KEY',
appName: 'mobile-app',
config: {
baseUrl: 'https://api.getdidban.ir',
environment: 'production',
release: 'mobile@1.0.0',
},
});در تغییر هر صفحه، مسیر فعلی را ثبت کنید تا breadcrumb ناوبری به خطا متصل شود.
Didban.setUser({ id: 'user-42' });
Didban.setCurrentRoute('Checkout', { cartId: 'cart-8' });پروفایل صفحه و افت فریم را فعال کنید و نتیجه را همیشه روی build نوع release ارزیابی کنید.
config: {
enableScreenProfiling: true,
reportFpsDrops: true,
minimumFps: 50,
slowFrameThresholdMs: 32,
}نسخهٔ فعلی خطاهای thread جاوااسکریپت را پوشش میدهد. crash بومی iOS/Android یا توقف UI thread به ماژول native نیاز دارد.
این محدودیت را هنگام تعریف هشدار و انتظار تیم عملیات در نظر بگیرید.
نبض CPU و RAM، رخدادهای سرویس و خطاهای شبکهٔ سمت سرور.
didban-server-agentAgent را کنار سرویس Node.js نصب کنید.
npm install didban-server-agentبرای هر سرور agentId یکتا و نامی قابل تشخیص بگذارید. کلید را از متغیر محیطی بخوانید.
import { DidbanServerAgent } from 'didban-server-agent';
const agent = new DidbanServerAgent({
serverUrl: 'wss://api.getdidban.ir/api/v1/live',
apiKey: process.env.DIDBAN_API_KEY,
agentId: 'checkout-api-1',
name: 'Checkout API',
});
agent.start();فقط خطاهای زیرساختی مرتبط را با category مشخص بفرستید تا snapshot همان لحظه کنار رخداد نگهداری شود.
agent.captureException(error, {
category: 'network',
upstream: 'payments',
});نمونهٔ CPU و RAM فقط برای خطاهای network/server نگهداری میشود تا مصرف فضای ذخیرهسازی کنترل شود.
برای سرویسهای ASP.NET Core یا هر زبان دیگر، Agent مستقل را روی همان ماشین اجرا کنید؛ این روش زبانمستقل است.
curl -fsSL https://raw.githubusercontent.com/GetDidban/didban-server-agent/master/install.sh \
| sudo bash -s -- --api-key 'didban_...' \
--server 'wss://api.getdidban.ir/api/v1/live' \
--name 'Production API'در حال حاضر SDK بومی APM برای .NET منتشر نشده است. Agent مستقل Linux نبض ماشین را ثبت میکند و اتصال مستقیم سرویس میتواند با پروتکل telemetry سازگار انجام شود.
تبدیل stack فشرده به فایل و خط واقعی همان release.
@getdidban/cliاز تنظیمات اپلیکیشن یک توکن با دسترسی source_maps:write بسازید و آن را در secretهای CI نگه دارید.
DIDBAN_TOKEN=didban_sm_...فرمان آپلود را بلافاصله بعد از build و پیش از deploy اجرا کنید.
npx @getdidban/cli sourcemaps upload \
--directory dist \
--release "$GITHUB_SHA" \
--url-prefix /assets \
--delete-after-uploadتا زمان انتشار عمومی CLI، این فرمان را با نسخهٔ داخلی pipeline اجرا کنید.
شناسهٔ release در SDK و فرمان آپلود باید دقیقاً برابر باشد. commit SHA انتخاب مطمئنی برای CI است.
source map را عمومی deploy نکنید؛ پس از آپلود حذفش کنید.
artifact هر release را مستقل نگه دارید.
شکست آپلود را باعث توقف pipeline کنید.