الگوهای رصد پذیری میکروسرویس [بخش 2]

theawesomenayakSiben Nayak

من طراح ، توسعه دهنده ، سرپرست تیم و مربی مستقر در هند هستم. من عاشق ساختن چیزهای جدید ، رفع موارد خراب هستم.

در مقاله قبلی ام ، در مورد اهمیت سیاهههای مربوط صحبت کردم و تفاوت بین ورود به سیستم ساختاری و غیر ساختاری. سیاهههای مربوط به راحتی در برنامه شما ادغام می شوند و توانایی نمایش هر نوع داده را به صورت رشته ها فراهم می کنند.

معیارها ، نمایش عددی داده ها هستند. اینها غالباً برای شمارش یا اندازه گیری مقداری مورد استفاده قرار می گیرند و در یک بازه زمانی جمع می شوند. معیارها به ما اطلاعاتی در مورد وضعیت تاریخی و فعلی یک سیستم می دهند. از آنجا که آنها فقط اعداد هستند ، می توان از آنها برای انجام تجزیه و تحلیل آماری و پیش بینی رفتارهای آینده سیستم نیز استفاده کرد. از معیارهای متغیر همچنین برای ایجاد هشدارها و آگاه سازی شما درباره مسائل مربوط به رفتار سیستم استفاده می شود.

گزارش ها در برابر معیارها

قالب

گزارش ها به صورت رشته ای نشان داده می شوند. اینها می توانند متون ساده ، بارهای JSON یا جفت مقدار کلید باشند (مانند آنچه در ورود به سیستم ساختاری بحث کردیم).

معیارها به عنوان اعداد نشان داده می شوند. آنها چیزی را اندازه گیری می کنند (مانند استفاده از پردازنده ، تعداد خطاها و غیره) و ماهیت عددی دارند.

وضوح

گزارش ها حاوی داده های با وضوح بالا هستند. این شامل اطلاعات کاملی در مورد یک رویداد است و می تواند برای ارتباط جریان (یا مسیری) که این رویداد از طریق سیستم طی کرده استفاده شود.

در صورت بروز خطا ، گزارش ها حاوی کل ردیابی پشته استثنا هستند ، که به ما امکان می دهد مسائل ناشی از سیستم های پایین دستی را نیز مشاهده و رفع اشکال کنیم. به طور خلاصه ، گزارش ها می توانند به شما بگویند که در یک زمان مشخص چه اتفاقی در سیستم افتاده است. این ممکن است شامل تعداد پارامترها (مانند درخواست ها ، خطاها و غیره) و اندازه گیری منابع (مانند CPU و استفاده از حافظه) باشد. به طور خلاصه ، معیارها می توانند شماری از مواردی را که در زمان مشخصی در سیستم رخ داده است به شما ارائه دهند.

هزینه

نگهداری سیاهههای مربوط گران است. سربار ذخیره سازی سیاهههای مربوط نیز با گذشت زمان افزایش می یابد و مستقیماً با افزایش ترافیک متناسب است.

معیارها دارای یک سربار ذخیره ثابت هستند. هزینه ذخیره و بازیابی معیارها با افزایش ترافیک خیلی زیاد نمی شود. با این حال ، به تعداد متغیرهایی که با هر معیار ساطع می کنیم بستگی دارد.

کاردینالیته

معیارها توسط دو بخش اصلی اطلاعات مشخص می شوند:

نام متریک مجموعه ای از جفتهای مقدار-کلید به نام برچسب ها یا برچسب ها

جایگزینی این مقادیر ، اصالت آن را برای متریک فراهم می کند. به عنوان مثال ، اگر ما در حال استفاده از پردازنده سیستمی با سه میزبان هستیم ، متریک دارای ارزش اصلی 3 است و می تواند سه مقدار زیر را داشته باشد:

(نام = pod.cpu.utilization ، میزبان = A)
(نام = pod.cpu.utilization ، میزبان = B)
(name = pod.cpu.utilization، host = C)

به همین ترتیب ، اگر برچسب دیگری را در متریک معرفی کنیم که منطقه AWS میزبان ها را تعیین کند (مثلاً us-west- 1 و us-west-2) ، اکنون معیاری با مقدار کاردینالیته 6 خواهیم داشت.

انواع معیارها

سیگنال های طلایی < / strong>

سیگنال های طلایی یک روش موثر برای نظارت بر وضعیت کلی سیستم و شناسایی مشکلات است.

  • در دسترس بودن: حالت سیستم شما از نظر مشتری اندازه گیری می شود (به عنوان مثال درصد خطاها در کل درخواست ها).
  • سلامت: وضعیت سیستم شما با استفاده از پینگ های دوره ای اندازه گیری می شود. نرخ درخواست: میزان ورودی درخواست ها از سیستم.
  • اشباع: چقدر سیستم آزاد یا بارگیری می کند (به عنوان مثال عمق صف یا حافظه موجود).
  • استفاده: < / strong> چقدر سیستم شلوغ است (به عنوان مثال بارگذاری CPU یا استفاده از حافظه). این به صورت درصد نشان داده می شود.
  • میزان خطا: میزان خطاهایی که در سیستم تولید می شود.
  • تأخیر: زمان پاسخ از سیستم ، معمولاً در صدک 95 یا 99 اندازه گیری می شود.

    معیارهای منابع

    معیارهای منابع تقریباً همیشه به طور پیش فرض از ارائه دهنده زیرساخت (معیارهای AWS CloudWatch یا Kubernetes) در دسترس است و برای نظارت بر سلامت زیرساخت ها استفاده می شود.

  • استفاده از پردازنده / حافظه: استفاده از منابع اصلی سیستم.
  • تعداد میزبان: تعداد میزبان / سیستم عامل هایی که سیستم شما را اجرا می کنند (برای تشخیص مشکلات در دسترس بودن به دلیل خرابی غلاف استفاده می شود).
  • زنده موضوعات: موضوعاتی در خدمت شما ایجاد می شوند (برای تشخیص مشکلات در چند رشته استفاده می شود).
  • استفاده از انبوه: آمار استفاده از حافظه زیاد (می تواند به اشکال زدایی حافظه کمک کند) .
  • معیارهای کسب و کار

    از معیارهای تجاری می توان برای نظارت بر تعامل دانه با API های اصلی یا عملکرد در خدمات شما استفاده کرد.

  • نرخ درخواست: میزان درخواست ها به API ها.
  • میزان خطا: میزان خطاهایی که توسط API ها ارسال می شود.
  • تأخیر: مدت زمان پردازش درخواست ها توسط API ها است. < / li>

    داشبورد و هشدارها

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

    از این س quالات می توان برای ساخت داشبورد برای نمایش وضعیت تاریخی سیستم استفاده کرد.

    همچنین در صورت بروز مشکل می توان از آنها برای ایجاد هشدار استفاده کرد ساعت سیستم (به عنوان مثال افزایش تعداد خطاهای مشاهده شده یا افزایش ناگهانی استفاده از پردازنده).

    با توجه به ماهیت عددی آنها ، ما همچنین می توانیم سeriesالات پیچیده ریاضی ایجاد کنیم (مانند X٪ خطاها در آخرین Y دقیقه) برای نظارت بر سلامت سیستم.

    نتیجه گیری

    در این مقاله ، تفاوت بین معیارها و گزارش ها را مشاهده کردیم و اینکه چگونه معیارها می توانند به ما در نظارت بر سلامت سیستم ما به طور موثرتری از معیارها همچنین می توان برای ایجاد داشبورد و هشدارها با استفاده از نرم افزارهای نظارتی مانند Wavefront و Grafana استفاده کرد. مفید است در حالی که هزینه های خود را نیز کنترل می کند. برای تشخیص دقیق و رفع اشکال ، لازم است که هم از معیارها و هم از log ها استفاده شود.

    این قسمت دوم از سری ریزبینی مایکروسرویس است. اگر قبلاً آن را انجام نداده اید ، به قسط اول نگاهی بیندازید. من وقتی مقالات بعدی را پخش می کنم پیوندهایی اضافه می کنم. با ما همراه باشید!

    همچنین در https://medium.com/better-programming/microservice-observability-metrics-bd9be270bc62