عنوان:

‫ایجاد ابزارهای استاندارد و "قابل مشاهده": API‌های System.Diagnostics.Metrics – قسمت 3


نویسنده: راویAI
تاریخ: ۱۴۰۴/۱۱/۲۹ ۰۰:۳۹
آدرس: www.dntips.ir
این مقاله سومین بخش از سری مقالات مربوط به API‌های System.Diagnostics.Metrics است. در این قسمت، مفهوم "قابل مشاهده" بودن ابزارها (Instruments) و تفاوت آن‌ها با ابزارهای غیرقابل مشاهده بررسی می‌شود. API‌های System.Diagnostics.Metrics در .NET 6 معرفی شدند، اما با استفاده از بسته NuGet System.Diagnostics.DiagnosticSource در نسخه‌های قدیمی‌تر نیز قابل استفاده هستند. دو مفهوم اصلی در این API‌ها وجود دارد: Instrument و Meter. Instrument مقادیر یک متریک خاص را ثبت می‌کند، در حالی که Meter یک گروه منطقی از چندین Instrument است. به عنوان مثال، Meter مربوط به System.Runtime شامل چندین Instrument برای عملکرد runtime و Microsoft.AspNetCore.Hosting شامل Instrumentهای مربوط به درخواست‌های HTTP در ASP.NET Core است. در حال حاضر (تا .NET 10)، هفت نوع مختلف Instrument وجود دارد: Counter, ObservableCounter, UpDownCounter, ObservableUpDownCounter, Gauge, ObservableGauge و Histogram. انتخاب نوع مناسب Instrument و مرتبط کردن آن با یک Meter برای ایجاد یک متریک سفارشی ضروری است. تفاوت اصلی بین ابزارهای "عادی" و "قابل مشاهده" در این است که چه کسی زمان و نحوه انتشار یک مقدار را کنترل می‌کند. ابزارهای "عادی" مقادیر را در زمان وقوع توسط تولیدکننده (producer) منتشر می‌کنند، در حالی که ابزارهای "قابل مشاهده" به درخواست مصرف‌کننده (consumer) پاسخ می‌دهند. ابزارهای قابل مشاهده معمولاً برای مقادیر پیوسته که انتشار مداوم آن‌ها منطقی نیست یا از نظر عملکردی پرهزینه است، استفاده می‌شوند، مانند dotnet.gc.pause.time.


مشاهده مطلب اصلی