< Summary

Information
Class: IceRpc.Metrics.Internal.DispatchMetrics
Assembly: IceRpc.Metrics
File(s): /home/runner/work/icerpc-csharp/icerpc-csharp/src/IceRpc.Metrics/Internal/DispatchMetrics.cs
Tag: 275_13775359185
Line coverage
94%
Covered lines: 16
Uncovered lines: 1
Coverable lines: 17
Total lines: 40
Line coverage: 94.1%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage
85%
Covered methods: 6
Total methods: 7
Method coverage: 85.7%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%210%
Dispose()100%11100%
.ctor(...)100%11100%
RequestCancel()100%11100%
RequestFailure()100%11100%
RequestStart()100%11100%
RequestStop()100%11100%

File(s)

/home/runner/work/icerpc-csharp/icerpc-csharp/src/IceRpc.Metrics/Internal/DispatchMetrics.cs

#LineLine coverage
 1// Copyright (c) ZeroC, Inc.
 2
 3using System.Diagnostics.Metrics;
 4
 5namespace IceRpc.Metrics.Internal;
 6
 7/// <summary>A helper class used to report dispatch metrics.</summary>
 8internal class DispatchMetrics : IDisposable
 9{
 010    internal static DispatchMetrics Instance = new("IceRpc.Dispatch");
 11
 12    private readonly Meter _meter;
 13    private readonly Counter<long> _canceledRequests;
 14    private readonly UpDownCounter<long> _currentRequests;
 15    private readonly Counter<long> _failedRequests;
 16    private readonly Counter<long> _totalRequests;
 17
 318    public void Dispose() => _meter.Dispose();
 19
 320    internal DispatchMetrics(string name)
 321    {
 322        _meter = new Meter(name);
 323        _canceledRequests = _meter.CreateCounter<long>("canceled-requests", "Requests", "Canceled Requests");
 324        _currentRequests = _meter.CreateUpDownCounter<long>("current-requests", "Requests", "Current Requests");
 325        _failedRequests = _meter.CreateCounter<long>("failed-requests", "Requests", "Failed Requests");
 326        _totalRequests = _meter.CreateCounter<long>("total-requests", "Requests", "Total Requests");
 327    }
 28
 129    internal void RequestCancel() => _canceledRequests.Add(1);
 30
 131    internal void RequestFailure() => _failedRequests.Add(1);
 32
 33    internal void RequestStart()
 334    {
 335        _currentRequests.Add(1);
 336        _totalRequests.Add(1);
 337    }
 38
 339    internal void RequestStop() => _currentRequests.Add(-1);
 40}