رفتن به محتوا
Vercel

Vercel

Status200 را از Vercel Marketplace به تیم Vercel خود اضافه کنید. با حساب Vercel خود وارد می‌شوید و هزینه را روی صورت‌حساب Vercel خود می‌پردازید، و پروژه‌های Vercel شما بی‌آنکه چیزی را دستی راه‌اندازی کنید، در Status200 ترِیس‌ها، لاگ‌ها، پایش دسترس‌پذیری و یک صفحهٔ وضعیت می‌گیرند.

چگونه کار می‌کند

هر منبع Status200 که در Vercel اضافه می‌کنید، یک پروژهٔ Status200 مستقل است. Vercel به هر پروژهٔ Vercel که به منبع وصل می‌کنید، متغیرهای محیطی منبع را می‌دهد، که ترِیس‌های پروژه را به Status200 می‌فرستند. drainها لاگ‌ها و اسپن‌های Vercel را می‌فرستند، و دامنهٔ production هر پروژهٔ وصل‌شده یک مانیتور دسترس‌پذیری روی صفحهٔ وضعیت منبع می‌گیرد.

flowchart TB resource["یک منبع Status200<br/>در تیم Vercel شما"] --> project["پروژهٔ Status200 آن"] resource -->|"متغیرهای محیطی"| apps["پروژه‌های Vercel<br/>وصل‌شدهٔ شما"] apps -->|"ترِیس‌ها با ‎@vercel/otel"| project apps -->|"drainهای لاگ و ترِیس"| project project --> monitors["یک مانیتور برای<br/>هر دامنهٔ production"] monitors --> page["صفحهٔ وضعیت<br/>منبع"]

از پروژه‌های Vercel شما تا Status200

این یکپارچه‌سازی برای Status200 Cloud (status200.ru) است. یک Status200 خودمیزبان را نمی‌توان از Vercel Marketplace اضافه کرد: Status200 خودمیزبان را ببینید.

پیش از شروع

  • یک تیم Vercel، با هر طرحی. drainهای لاگ و ترِیس به طرح Pro یا Enterprise در Vercel نیاز دارند؛ ترِیس‌های @vercel/otel در همهٔ طرح‌ها کار می‌کنند.
  • یک نشانی ایمیل تأییدشده روی حساب Vercel شما. Status200 با همین نشانی شما را وارد می‌کند، و اگر حساب Status200 ندارید، حسابتان را با آن می‌سازد.
  • یک روش پرداخت در Vercel، برای همهٔ طرح‌ها: هزینهٔ مانیتورها و تله‌متری بر اساس مصرف محاسبه می‌شود، از جمله در طرح Free. طرح‌ها و صورت‌حساب را ببینید.

افزودن Status200 به تیم Vercel شما

  1. باز کردن Status200 در Vercel Marketplace

    در داشبورد Vercel، Integrations و سپس Browse Marketplace را باز کنید، و Status200 را زیر Observability پیدا کنید. روی Install کلیک کنید و شرایط Status200 را بپذیرید.

  2. انتخاب طرح

    Free، Growth یا Scale را برگزینید. این طرح‌ها از آنِ خود Status200 هستند، با قیمت‌هایی که در status200.ru/pricing آمده است.

  3. نام‌گذاری منبع و انتخاب تنظیمات آن

    برای منبع نامی برگزینید که بگوید چه چیزی را پایش می‌کند، مانند storefront: پروژهٔ Status200 و صفحهٔ وضعیت آن همین نام را می‌گیرند. دو تنظیم در آغاز روشن‌اند:

    • Monitor production domains: یک مانیتور وب‌سایت برای دامنهٔ production هر پروژهٔ Vercel که وصل می‌کنید.
    • Create a status page: یک صفحهٔ وضعیت عمومی برای منبع، که همین مانیتورها را نشان می‌دهد.
  4. وصل کردن پروژه‌هایتان

    پروژه‌های Vercel را که به این منبع داده می‌فرستند برگزینید، و محیط‌هایی را که متغیرهای محیطی آن را می‌گیرند. به اتصال پیشوند سفارشی ندهید: @vercel/otel متغیرها را با نام‌های خودشان می‌خواند.

منبع ظرف چند ثانیه آماده می‌شود. برای دیدن پروژهٔ آن روی Open in Status200 کلیک کنید.

آنچه هر منبع به شما می‌دهد

چهکجا آن را بیابید
یک پروژهٔ Status200، هم‌نام با منبعمالک آن شما هستید. هم‌تیمی‌هایتان وقتی آن را از Vercel باز کنند به آن می‌پیوندند.
یک کلید دریافت داده با نام Vercelتنظیمات پروژه > تله‌متری و APM > کلیدهای دریافت داده
متغیرهای محیطی در هر پروژهٔ Vercel وصل‌شدهSettings → Environment Variables پروژه در Vercel
یک مانیتور وب‌سایت برای هر پروژهٔ وصل‌شدهمانیتورها، هم‌نام با پروژهٔ Vercel
یک صفحهٔ وضعیت عمومیصفحات وضعیت، هم‌نام با منبع

متغیرهای محیطی در همهٔ پروژه‌های وصل‌شده یکسان‌اند:

متغیرمقدار
OTEL_EXPORTER_OTLP_ENDPOINThttps://status200.ru/otlp
OTEL_EXPORTER_OTLP_HEADERSx-status200-token= و کلید دریافت دادهٔ منبع
OTEL_EXPORTER_OTLP_PROTOCOLhttp/protobuf
STATUS200_TELEMETRY_INGESTION_KEYخودِ کلید دریافت داده به‌تنهایی، که drainها می‌فرستند

هر استقرار متغیرها را هنگام ساخته شدنش می‌گیرد: پس از وصل کردن یک پروژه، دوباره مستقر کنید.

ارسال ترِیس‌ها با @vercel/otel

@vercel/otel بستهٔ OpenTelemetry خود Vercel برای Next.js و دیگر فریم‌ورک‌هایی است که Vercel اجرا می‌کند. این بسته متغیرهای OTEL_EXPORTER_OTLP_* را می‌خواند، پس پروژه‌ای که به منبع وصل است فقط به همین بسته نیاز دارد.

  1. نصب بسته

    Bash
    npm install @vercel/otel @opentelemetry/api @opentelemetry/api-logs
  2. ثبت کردن آن

    instrumentation.ts را در ریشهٔ پروژه بسازید، یا اگر پروژه پوشهٔ src دارد، در آن، و نام سرویس را تعیین کنید:

    instrumentation.tsTypeScript
    import { registerOTel } from "@vercel/otel";
    
    export function register(): void {
      registerOTel({ serviceName: "storefront" });
    }
  3. مستقر کردن

    پروژه را مستقر کنید. ترِیس‌های آن در ترِیس‌ها، زیر نام سرویس، نمایش داده می‌شوند.

در طرح‌های Pro و Enterprise در Vercel، یک drain ترِیس هم اضافه کنید: آنگاه Vercel برای هر درخواست اسپن‌های خودش را همراه با اسپن‌های برنامهٔ شما به Status200 می‌فرستد، و @vercel/otel فرستادن آن‌ها را به drain می‌سپارد، پس هیچ چیز دو بار نمی‌رسد.

ارسال لاگ‌ها و ترِیس‌ها با drainها

یک drain آنچه را Vercel دربارهٔ پروژه‌های شما ثبت می‌کند به Status200 می‌فرستد: drain لاگ برای لاگ‌های ساخت، تابع، edge و درخواستِ آن‌هاست، و drain ترِیس برای اسپن‌هایشان. drainها به طرح Pro یا Enterprise در Vercel نیاز دارند، و Vercel هزینهٔ داده‌ای را که می‌فرستند روی صورت‌حساب Vercel شما می‌آورد.

  1. افزودن یک drain

    در Vercel، Team Settings → Drains را باز کنید و روی Add Drain کلیک کنید. Logs یا Traces را برگزینید، و سپس Status200 را زیر Native Integrations برگزینید.

  2. انتخاب پروژه‌ها

    پروژه‌ها را برگزینید، و برای لاگ‌ها منشأها و محیط‌ها را هم. drain با کلید دریافت دادهٔ منبع می‌فرستد: چیزی برای تایپ کردن نیست.

هر پروژهٔ Vercel در Status200 یک سرویس است، هم‌نام با پروژه. هر لاگ زمان، سطح و پیام خود را نگه می‌دارد، و اطلاعات درخواستش را با نام‌های OpenTelemetry:

فیلد Vercelدر Status200
projectNameسرویس، service.name
timestamp، level، messageزمان، شدت و بدنهٔ لاگ
deploymentId، environmentvercel.deployment.id، deployment.environment.name
proxy.method، proxy.path، proxy.statusCodehttp.request.method، url.path، vercel.proxy.status_code
traceId، spanIdترِیس لاگ، پیوندخورده به همان ترِیس در ترِیس‌ها
هر فیلد دیگریک ویژگی زیر vercel.، مانند vercel.source

مانیتورهای دسترس‌پذیری و صفحهٔ وضعیت

وقتی یک پروژهٔ Vercel را وصل می‌کنید، Status200 برای دامنهٔ production آن یک مانیتور وب‌سایت می‌سازد که از پراب‌های Status200 بررسی می‌شود، و آن را به صفحهٔ وضعیت منبع اضافه می‌کند. پروژه‌ای که پیش از نخستین استقرار production خود وصل شود هنوز دامنه‌ای ندارد: مانیتورش در همان استقرار ساخته می‌شود. قطع اتصال پروژه، مانیتور آن را حذف می‌کند.

هر یک از این مانیتورها یک مانیتور فعال است، هزینه‌اش مانند هر مانیتور دیگری محاسبه می‌شود، و درست مانند مانیتوری که خودتان ساخته‌اید کار می‌کند: مانیتور وب‌سایت را ببینید. برای اینکه هیچ مانیتوری ساخته نشود، Monitor production domains را در تنظیمات منبع در Vercel خاموش کنید. روشن کردن دوبارهٔ آن، مانیتورهایی را که هنوز ساخته نشده‌اند می‌سازد.

باز کردن Status200 از Vercel

روی Open in Status200 در منبع، یا روی هر یک از پیوندهای آن در Vercel، کلیک کنید تا با نشانی ایمیل حساب Vercel خود وارد Status200 شوید. بار نخست به پروژهٔ منبع می‌پیوندید: اگر مالک یا عضو تیم Vercel باشید به‌عنوان مدیر، و اگر یکی از نقش‌های فقط‌خواندنی آن را داشته باشید به‌عنوان عضو.

اگر حساب Status200 با آن نشانی ایمیل از پیش وجود داشته باشد، به همان حساب وارد می‌شوید. حسابی که احراز هویت دومرحله‌ای آن روشن است، یا متعلق به یک مدیر Status200 است، به‌جای آن با گذرواژهٔ خودش وارد می‌شود. در هر حال، شما عضو پروژه می‌شوید.

طرح‌ها و صورت‌حساب

چگونه کار می‌کند
طرح‌هاFree، Growth و Scale، با قیمت‌های status200.ru: قیمت طرح برای هر کاربر، مانیتورهای فعال با $۱ برای هر مانیتور در ماه، و تله‌متری به ازای هر گیگابایت.
کجا پرداخت می‌کنیدروی فاکتور Vercel شما، ماهی یک بار، برای هر منبع. Vercel مصرف ماه تا این لحظه را روی منبع نشان می‌دهد، و آن را هر ساعت به‌روز می‌کند.
دوره‌های آزمایشیتا وقتی دورهٔ آزمایشی طرح ادامه دارد هزینه‌ای گرفته نمی‌شود: نه برای کاربرانش، نه مانیتورهایش و نه تله‌متری‌اش.
تغییر طرحدر Vercel، روی منبع، یا در Status200 زیر تنظیمات پروژه > صورت‌حساب و فاکتورها > صورت‌حساب. تغییر در هر کدام، در هر دو جا اعمال می‌شود.
فاکتورهای پرداخت‌نشدهVercel تا ۱۵ روز پرداخت را دوباره امتحان می‌کند. پس از آن، پروژه تا پرداخت فاکتور از دسترس خارج می‌شود: داده‌هایش نگه داشته می‌شوند و هیچ چیز حذف نمی‌شود.

روی فاکتور، هر منبع برای کاربرانش، مانیتورهای فعالش، تله‌متری‌اش و هر شارژ موجودی یک ردیف دارد، بر حسب واحدهای مصرف $۰٫۰۱.

حذف Status200

شماچه پیش می‌آید
یک منبع را در Vercel حذف می‌کنیدپروژهٔ آن، پس از صورت‌حساب شدن مصرفش تا آن لحظه، حذف می‌شود. پروژه‌های Vercel وصل‌شده در استقرار بعدی‌شان متغیرهای محیطی آن را از دست می‌دهند.
Status200 را از تیم حذف نصب می‌کنیدپروژهٔ همهٔ منبع‌ها حذف می‌شود، و فاکتور نهایی فرستاده می‌شود.
پروژه را در Status200 حذف می‌کنیدمنبع در Vercel هم حذف می‌شود.
احتیاط

حذف یک پروژه، مانیتورها، صفحهٔ وضعیت، حادثه‌ها و تله‌متری آن را برای همیشه پاک می‌کند. پیش از آن، از هر چیزی که می‌خواهید نگه دارید خروجی بگیرید.

Status200 خودمیزبان

یک Status200 خودمیزبان را نمی‌توان از Vercel Marketplace اضافه کرد، چون Vercel Marketplace فقط Status200 Cloud را فراهم می‌کند. با این حال پروژه‌های Vercel شما همچنان می‌توانند به آن داده بفرستند:

  • ترِیس‌ها: در Settings → Environment Variables پروژهٔ Vercel، متغیرهای آنچه هر منبع به شما می‌دهد را تنظیم کنید، با https://YOUR-ONEUPTIME-HOST/otlp به‌عنوان نقطهٔ پایانی و یک کلید دریافت داده از پروژهٔ خودتان.
  • لاگ‌ها: در Team Settings → Drains یک drain لاگ سفارشی به https://YOUR-ONEUPTIME-HOST/telemetry/vercel/v1/logs اضافه کنید، در قالب JSON یا NDJSON. سرآیند x-status200-token را با کلید دریافت داده‌تان اضافه کنید، و راز امضای drain را روی همان کلید بگذارید: Status200 فقط ارسال‌هایی را می‌پذیرد که Vercel با آن امضا کرده باشد.

همین drain سفارشی در Status200 Cloud هم کار می‌کند، با status200.ru به‌عنوان میزبان.

عیب‌یابی

هیچ ترِیسی نمی‌رسد
  • پروژه را دوباره مستقر کنید: استقراری که پیش از وصل شدن پروژه ساخته شده، متغیرهای OTEL_EXPORTER_OTLP_* را ندارد.
  • نام متغیرها را در Settings → Environment Variables پروژه بررسی کنید. اتصالی که با یک پیشوند سفارشی ساخته شده نام آن‌ها را تغییر می‌دهد، و @vercel/otel دیگر آن‌ها را نمی‌خواند: پروژه را بدون پیشوند دوباره وصل کنید.
  • بررسی کنید که instrumentation.ts تابع registerOTel را فرا می‌خواند، و در Next.js 14 و نسخه‌های قدیمی‌تر، که experimental.instrumentationHook در next.config.js روشن است.
Vercel برای drain خطا نشان می‌دهد

Vercel پاسخ Status200 به ارسال‌های drain را نشان می‌دهد:

  • 403 با x-vercel-signature در پیام: Vercel ارسال را با کلیدی که می‌فرستد امضا نکرده است. برای یک drain سفارشی، سرآیند x-status200-token آن را بررسی کنید، و راز امضایش را روی همان کلید بگذارید.
  • 401: Status200 هیچ پروژه‌ای را با کلیدی که drain می‌فرستد نمی‌شناسد: کلید حذف شده، یا در هر دو جا اشتباه تایپ شده است. از کلیدی در تنظیمات پروژه > تله‌متری و APM > کلیدهای دریافت داده استفاده کنید.
  • 422: کلید خاموش شده است. آن را در همان صفحه دوباره روشن کنید، یا از کلید دیگری استفاده کنید.
یک پروژهٔ وصل‌شده مانیتور ندارد
  • Monitor production domains در تنظیمات منبع در Vercel خاموش است.
  • پروژه هنوز دامنهٔ production ندارد: مانیتورش در نخستین استقرار production آن ساخته می‌شود.
  • پروژه به سقف مانیتورهای فعالی که طرحش اجازه می‌دهد رسیده است: طرح را ارتقا دهید، سپس Monitor production domains را خاموش و دوباره روشن کنید.
Vercel می‌گوید نشانی ایمیل خود را تأیید کنید

Status200 به نشانی ایمیلی نیاز دارد که Vercel آن را تأیید کرده باشد، و اگر حساب Status200 با آن نشانی از پیش وجود دارد، نشانی آن حساب هم باید تأیید شده باشد. نشانی را تأیید کنید، سپس منبع را اضافه کنید یا Status200 را دوباره باز کنید.

گام‌های بعدی