AppMetrics के साथ C# (.NET) अनुप्रयोगों की निगरानी

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C# (.NET) अनुप्रयोगों की निगरानी के लिए AppMetrics लाइब्रेरी



आधुनिक .NET अनुप्रयोगों को विकसित करते समय, उनकी स्थिति, प्रदर्शन को ट्रैक करना और बाधाओं की पहचान करना महत्वपूर्ण है। AppMetrics लाइब्रेरी वास्तविक समय में मीट्रिक्स को एकत्र करने, एकत्रित करने और निर्यात करने के लिए एक शक्तिशाली और लचीला उपकरण है। यह डेवलपर्स और प्रशासकों को सेवा के काम की पूरी तस्वीर प्राप्त करने की अनुमति देता है: अनुरोध निष्पादन समय से लेकर त्रुटि दर तक।



AppMetrics मीट्रिक्स भंडारण के लिए कई बैकएंड का समर्थन करता है: Prometheus, InfluxDB, Graphite, Elasticsearch और अन्य। अंतर्निहित Health Checks के लिए धन्यवाद, आप न केवल आँकड़े एकत्र कर सकते हैं, बल्कि निर्भरताओं (डेटाबेस, बाहरी API) की कार्यक्षमता की जाँच भी कर सकते हैं।



मुख्य क्षमताएँ

  • काउंटर (Counters) — अनुरोधों, त्रुटियों, घटनाओं की संख्या।
  • हिस्टोग्राम (Histograms) — संचालन निष्पादन समय का वितरण।
  • टाइमर (Timers) — कोड निष्पादन की अवधि मापना।
  • मीटर (Meters) — प्रति सेकंड घटनाओं की दर।
  • Health Checks — बाहरी सेवाओं की उपलब्धता की जाँच।
  • मीट्रिक्स निर्यात — Prometheus (प्रारूप /metrics), InfluxDB और अन्य में।


स्थापना और सेटअप

NuGet के माध्यम से पैकेज स्थापित करें:

dotnet add package AppMetrics.AspNetCore.Mvcdotnet add package AppMetrics.Reporting.Prometheus.Client


फिर Program.cs (या Startup.cs) में सेवाएँ जोड़ें:

using App.Metrics;using App.Metrics.AspNetCore;using App.Metrics.Formatters.Prometheus;

var builder = WebApplication.CreateBuilder(args);

// मीट्रिक्स सेटअपvar metrics = AppMetrics.CreateDefaultBuilder() .OutputMetrics.AsPrometheusPlainText() .Build();

builder.Services.AddMetrics(metrics);builder.Services.AddMetricsTrackingMiddleware();builder.Services.AddMetricsEndpoints();

var app = builder.Build();

app.UseMetricsAllMiddleware();app.UseMetricsAllEndpoints();

app.MapGet("/", () => "Hello World!");

app.Run();


एप्लिकेशन शुरू करने के बाद, मीट्रिक्स Prometheus प्रारूप में /metrics पते पर उपलब्ध होंगे।



कस्टम मीट्रिक्स बनाना

मीट्रिक्स संग्रहीत करने के लिए एक क्लास परिभाषित करें:

public class MyMetrics{    private readonly IMetrics _metrics;

public MyMetrics(IMetrics metrics) { _metrics = metrics; }

// अनुरोध काउंटर private readonly CounterOptions _requestCounter = new CounterOptions { Name = "myapp_requests_total", MeasurementUnit = Unit.Requests };

// निष्पादन समय मापने के लिए टाइमर private readonly TimerOptions _requestTimer = new TimerOptions { Name = "myapp_request_duration_seconds", MeasurementUnit = Unit.Requests, DurationUnit = TimeUnit.Seconds };

public void TrackRequest() { _metrics.Measure.Counter.Increment(_requestCounter); }

public IDisposable MeasureRequestDuration() { return _metrics.Measure.Timer.Time(_requestTimer); }}


कंट्रोलर में मीट्रिक्स का उपयोग करें:

[ApiController][Route("api/[controller]")]public class SampleController : ControllerBase{    private readonly MyMetrics _myMetrics;

public SampleController(MyMetrics myMetrics) { _myMetrics = myMetrics; }

[HttpGet] public IActionResult Get() { _myMetrics.TrackRequest();

using (_myMetrics.MeasureRequestDuration()) { // कार्य का अनुकरण Thread.Sleep(100); }

return Ok("Metrics tracked"); }}


Health Checks

अनुशंसाएँ