چرخهٔ عمر یک خطا: از گزارش کاربر تا رفع در اسپرینت
یک خطای واقعی را از مرورگر کاربر تا لاگ بکاند، دیتابیس، سرور و تابلوی تیم دنبال میکنیم و میبینیم در هر لایه کجا را باید نگاه کرد.
لایهٔ بکاند و سرویسها · LogMug
لاگ همهٔ سرویسهای بکاند در یک جا و قابل جستجو در چند ثانیه. خطوطی که trace_id یکسان دارند با یک کلیک کنار هم میآیند و خطاهای همریشه، حتی با پیام متفاوت، یکی شمرده میشوند.
وقتی خطا از مرورگر عبور میکند و به سرور میرسد، سؤال عوض میشود: این درخواست از کدام سرویسها گذشت و کجا شکست خورد؟ لاگماگ به جای SSH به چند سرور و grep در فایلهایی که دیروز چرخیدهاند، همهچیز را یکجا جستجوپذیر میکند.
اتصال با کتابخانهٔ استاندارد OpenTelemetry انجام میشود، نه SDK اختصاصی؛ برنامههایی که Serilog دارند — حتی روی .NET Framework قدیمی — با همان sink استاندارد Seq وصل میشوند، و برای هر چیز دیگری ارسال JSON ساده هست.
C# و .NET، Java، Go، Python، Node.js و PHP — بدون SDK اختصاصی.
برنامههای .NET با sink استاندارد Seq و یک خط پیکربندی وصل میشوند.
خطوط همtrace_id از دروازهٔ API تا صف پیام، کنار هم.
اثرانگشت از نوع خطا و stack کد شما ساخته میشود و تکرارها یکی شمرده میشوند.
جهش خطا بعد از یک انتشار در یک نگاه؛ کلیک روی ستون، جستجو را به همان بازه محدود میکند.
شمارهٔ کارت، توکن و رمز عبور هرگز ذخیره نمیشوند؛ داده در مرکز دادهٔ داخل ایران.
در خانوادهٔ ماگ
باگماگ نشان میدهد کاربر کجا و در کدام درخواست به خطا خورد؛ لاگماگ همان درخواست را در سرویسهای بکاند دنبال میکند. اتصال مستقیم این دو، از گزارش کاربر به لاگ همان درخواست، در حال ساخت است.
وقتی ریشهٔ خطای بکاند یک timeout یا کوئری کند است، دیبیماگ میگوید در همان دقیقه در SQL Server چه میگذشت: انتظارها، لاگ ترنزکشن، ایندکس گمشده.
سرویس ابری با داده در ایران؛ برای پلن سازمانی، نصب روی سرور خودتان.
پلن رایگان ماهانه ۱ گیگابایت بدون کارت بانکی، پلنهای حرفهای و کسبوکار بر اساس حجم، و پلن سازمانی. پرداخت ریالی.
جزئیات در سایت لاگماگبا هر زبانی که OpenTelemetry دارد: C# و .NET، Java، Go، Python، Node.js و PHP. برنامههای .NET با Serilog هم با sink استاندارد Seq وصل میشوند.
در بیشتر موارد چند خط پیکربندی کافی است. لاگهایی که برنامه همین حالا با ILogger، Serilog، Logback یا logging پایتون مینویسد، همانطور میرسند.
بله. لاگ را همزمان به هر دو بفرستید و مقایسه کنید؛ پلن رایگان برای همین است.
از بلاگ
یک خطای واقعی را از مرورگر کاربر تا لاگ بکاند، دیتابیس، سرور و تابلوی تیم دنبال میکنیم و میبینیم در هر لایه کجا را باید نگاه کرد.
سرآیند W3C traceparent، OpenTelemetry در ASP.NET Core و Java و enricher در Serilog: راهنمای عملی رساندن trace_id به همهٔ خطوط لاگ یک درخواست.
چرخش فایل لاگ، چند سرور و کانتینرهای موقت، grep را کند و ناقص میکنند. لاگ متمرکز چیست و برای راهاندازی درستش به چه چیزهایی باید فکر کرد.
پلن رایگان دارد و کارت بانکی نمیخواهد؛ همین امروز وصلش کنید.