یکی از ابزارهای قدرتمند برای Monitor کردن پروژههای .NET ، .NET Core و ASP.NET Core استفاده از Application Insight است. این کتابخانه تمام اطلاعات مورد نیاز برای مانیتور کردن یک برنامه را در اختیار شما قرار میدهد. مثلا وقتی که Api مربوط به پرداخت Call میشود، درApplication Insights علاوه بر اینکه اطلاعات خود Request ثبت میشود اطلاعات عملیات وابسته به این درخواست هم ثبت میشود مثل Query های که به دیتایس زده شده یا Request هایی که به درگاه پرداخت فرستاده شدهاند.
هرچند مشکلی که وجود دارد این است که اطلاعات در Azure ذخیره میشوند.
برای حل این مشکل و «استفاده از Appliction Insights بدون داشتن اکانت Azure»، میتوانید از کتابخانه Microsoft Diagnostics EventFlow استفاده کنید.
این کتابخانه تمام اطلاعات خروجی Application Insight (هم اطلاعات مستقیم و هم اطلاعات وابسه به یک درخواست) را جمع آوری میکند و در خروجیهای مختلفی مثل Elasticsearch ذخیره میکند.
این کتابخانه همچین میتواند اطلاعات را از Serilog, Log4net, Nlog و... خوانده و در Elasticsearch, Splunk, Sql Server ذخیره کند یا به صورت Json به یک URL که شما مشخص میکنید بفرستد.
https://github.com/Azure/diagnostics-eventflow
Post #621
183