< Summary

Information
Class: IceRpc.Metrics.Internal.InvocationMetrics
Assembly: IceRpc.Metrics
File(s): /home/runner/work/icerpc-csharp/icerpc-csharp/src/IceRpc.Metrics/Internal/InvocationMetrics.cs
Tag: 1856_27024993493
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
Fully covered methods: 6
Total methods: 7
Method coverage: 85.7%
Full 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/InvocationMetrics.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 invocation metrics.</summary>
 8internal class InvocationMetrics : IDisposable
 9{
 010    internal static readonly InvocationMetrics Instance = new("IceRpc.Invocation");
 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
 518    public void Dispose() => _meter.Dispose();
 19
 520    internal InvocationMetrics(string name)
 521    {
 522        _meter = new Meter(name);
 523        _canceledRequests = _meter.CreateCounter<long>("canceled-requests", "Requests", "Canceled Requests");
 524        _currentRequests = _meter.CreateUpDownCounter<long>("current-requests", "Requests", "Current Requests");
 525        _failedRequests = _meter.CreateCounter<long>("failed-requests", "Requests", "Failed Requests");
 526        _totalRequests = _meter.CreateCounter<long>("total-requests", "Requests", "Total Requests");
 527    }
 28
 129    internal void RequestCancel() => _canceledRequests.Add(1);
 30
 331    internal void RequestFailure() => _failedRequests.Add(1);
 32
 33    internal void RequestStart()
 534    {
 535        _currentRequests.Add(1);
 536        _totalRequests.Add(1);
 537    }
 38
 539    internal void RequestStop() => _currentRequests.Add(-1);
 40}