logs

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/09/30
  • تعداد بازدید: 6

فاکتور یازدهم: Logs

فاکتور یازدهم در 12-Factor App بر مدیریت لاگ‌ها به عنوان جریان رویداد (Event Stream) تمرکز دارد. لاگ‌ها نمایانگر رفتار اپلیکیشن در زمان اجرا هستند و به توسعه‌دهندگان و مدیران سیستم دید کاملی نسبت به عملکرد اپلیکیشن می‌دهند.

ویژگی‌های لاگ در 12-Factor

  • لاگ‌ها جریان زمان‌بندی شده‌ای از رویدادها هستند که از تمام فرآیندها و Backing Services جمع‌آوری می‌شوند.
  • لاگ‌ها نباید به فایل محدود شوند یا اپلیکیشن مسئول مدیریت آن‌ها باشد.
  • هر فرآیند لاگ‌های خود را بدون بافر به stdout می‌فرستد.
  • در محیط توسعه، توسعه‌دهنده این جریان را در ترمینال مشاهده می‌کند.

مدیریت لاگ در محیط‌های Staging و Production

در این محیط‌ها، جریان لاگ هر فرآیند توسط محیط اجرا جمع‌آوری و با جریان‌های دیگر اپلیکیشن ترکیب می‌شود. سپس این جریان‌ها به مقصد نهایی برای مشاهده و آرشیو طولانی‌مدت ارسال می‌شوند. اپلیکیشن هیچ کنترلی بر این مقصدها ندارد و مدیریت آن کاملاً بر عهده محیط اجرا است.

ابزارهای متن‌باز برای مدیریت این جریان‌ها شامل Logplex و Fluentd هستند.

کاربردهای Event Stream

  • مسیر دادن جریان به فایل یا مشاهده آن در ترمینال به صورت real-time.
  • ارسال به سیستم‌های تحلیل و ایندکسینگ لاگ مانند Splunk یا سیستم‌های انبار داده عمومی مانند Hadoop/Hive.
  • تحلیل رفتار اپلیکیشن در طول زمان، مانند پیدا کردن رویدادهای گذشته، ترسیم نمودارهای بزرگ (مثلاً تعداد درخواست‌ها در دقیقه) و فعال‌سازی هشدارهای مبتنی بر معیارهای تعریف‌شده توسط کاربر.

نمونه عملی

تصور کنید اپلیکیشن وب شما درخواست‌های HTTP و خطاهای داخلی را لاگ می‌کند. هر فرآیند جریان لاگ خود را به stdout می‌فرستد. این جریان توسط سیستم جمع‌آوری لاگ‌ها مانند Fluentd گرفته شده و به Splunk ارسال می‌شود. در Splunk می‌توانید ببینید که در هر دقیقه چند درخواست موفق یا ناموفق دریافت شده، روند خطاها را بررسی کنید و در صورت عبور خطاها از حد تعریف‌شده، هشدار دریافت کنید.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد
0/600

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.