< Summary

Information
Class: OzonOrdersWeb.WebServices.OrderSearch.OrderSearchDriftPrometheusReporter
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/WebServices/OrderSearch/OrderSearchDriftPrometheusReporter.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 17
Coverable lines: 17
Total lines: 32
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%210%
Report(...)100%210%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/WebServices/OrderSearch/OrderSearchDriftPrometheusReporter.cs

#LineLine coverage
 1using Prometheus;
 2using Services.SearchServices.OrderSearch;
 3
 4namespace OzonOrdersWeb.WebServices.OrderSearch;
 5
 6/// <summary>Метрики расхождения ES ↔ MySQL на <c>/metrics</c> (Prometheus).</summary>
 7public sealed class OrderSearchDriftPrometheusReporter : IOrderSearchDriftMetricsReporter
 8{
 09    private static readonly Gauge IndexCount = Metrics.CreateGauge(
 010        "studio2_order_search_index_count",
 011        "Число документов в индексе Elasticsearch orders");
 12
 013    private static readonly Gauge DbOrderCount = Metrics.CreateGauge(
 014        "studio2_order_search_db_order_count",
 015        "Число строк в таблице Orders (MySQL)");
 16
 017    private static readonly Gauge CountDrift = Metrics.CreateGauge(
 018        "studio2_order_search_count_drift",
 019        "Абсолютное расхождение |index_count - db_order_count|");
 20
 021    private static readonly Gauge DriftAlert = Metrics.CreateGauge(
 022        "studio2_order_search_drift_alert",
 023        "1 если |index_count - db_order_count| превышает порог CountDriftAlertThreshold, иначе 0");
 24
 25    public void Report(long indexCount, long dbOrderCount, long absoluteDrift, bool isAlert)
 26    {
 027        IndexCount.Set(indexCount);
 028        DbOrderCount.Set(dbOrderCount);
 029        CountDrift.Set(absoluteDrift);
 030        DriftAlert.Set(isAlert ? 1 : 0);
 031    }
 32}