حمزه قائم پناه
حمزه قائم پناه
خواندن ۲ دقیقه·۲ سال پیش

مفهوم Tracing در observability نرم افز ار چیست؟

در Observability یک بخش کلیدی Tracing هست که به معنی امکان فهم رفتار یک سیستم نرم‌افزاری پیچیده است. tracing بینشی در باره ارتباط بین کامپوننت‌های مختلف یک سیستم رو بوسیله جمع‌آوری دیتا درباره انتشار یک درخواست در میان این کامپوننت‌ها رو در اختیارمون می‌گذاره.

هدف از Tracing:

  • شناسایی گلوگاه‌های پرفورمنس سیستم
  • عیب‌یابی خطاها
  • بهینه سازی عملکرد سیستم به طور کلی

به کمک tracing می‌بینیم که چقدر طول می‌کشه که یک درخواست از یک کامپوننت به کامپوننت دیگر بره و چقد زمان در هر کامپوننت صرف شده و کجاها اروری اتفاق افتاده.

معیارهای سنج tracing و ابزارها:

معیارهایی که سطح tracing رو میشه باهاش سنجید، معیارهای مختلفی مثل request latency، (نرخ خطا) error rate (تاخیر ریکوئست‌ها) و throughput (حجم جریان اطلاعات در سیستم، مثلا تعداد ریکوئست در ثانیه) هستند. این متریک‌ها از طیق ابزارهایی مثل Jeager, Zipkin یا Datadog قابل جمع‌آوری و تحلیل هستن.

ابزار tracing پلتفرم Sentry:

  • از بین همه ابزارهای موجود، چون ما sentry رو برای ارور لاگ‌هامون استفاده می‌کردیم، تصمیم گرفتم که ابزار tracing اون رو بررسی و استفاده کنم. سنتری سه بخش رو ارائه میده:
  • بخش Event Detail: از طریق بخش Discover و Performance می‌تونیم تمام مسیر رو برای یک تراکنش در جهات مختلف بررسی کنین. این کار کمک می‌کنه که درخواست‌های HTTP کند و کوئری‌های دیتابیس کند و گلپگاه‌‌ها رو دیباگ کنین. توضیحات بیشتر
  • بخش Trace View: به کمک این بخش می‌تونیم جزئیات یک trace و مسیر هر تراکنش در هر trace رو کنکاش کنیم. با این کار دیباگ کردن یک سرویس می‌تونه خیلی سرعت بگیره. توضیحات بیشتر
  • بخش Distributed Tracing: با فعال کردن performance monitoring داده‌های خطا خودمون رو افزایش می‌دیم. ردیابی تعاملات رابط کاربری تا بک‌اند. توضیحات بیشتر


باید توجه داشت که این ابزارها چقدر سربار زمانی روی درخواست‌ها میذارن و در صورت بالا بودن ترافیک سرویس، درصد خاصی از درخواست‌ها از طریق این سرویس tracing مانیتور بشن.

رابط کاربریtracing
مهندس نرم‌افزار و عاشق توسعه فردی - مهندس نرم‌افزار - اکس هم بنیان‌گذار و مدیرفنی و پرداکت استارتاپ کشمون
شاید از این پست‌ها خوشتان بیاید