<PackageReference Include="Relativity.Server.Import.SDK" Version="2.9.2" />

MetricSinkSum

public class MetricSinkSum : IMetricSink
using Relativity.DataExchange.Service; using Relativity.Telemetry.DataContracts.Shared; using System.Collections.Generic; using System.Runtime.CompilerServices; using System.Threading.Tasks; namespace Monitoring.Sinks { public class MetricSinkSum : IMetricSink { [CompilerGenerated] internal sealed class _Closure$__3-0 { public List<MetricRef> $VB$Local_metrics; [AsyncStateMachine(typeof(VB$StateMachine___Lambda$__0))] internal Task _Lambda$__0(IServiceProxyFactory serviceFactory) { VB$StateMachine___Lambda$__0 stateMachine = default(VB$StateMachine___Lambda$__0); stateMachine.$VB$NonLocal__Closure$__3-0 = this; stateMachine.$VB$Local_serviceFactory = serviceFactory; stateMachine.$State = -1; stateMachine.$Builder = AsyncTaskMethodBuilder.Create(); stateMachine.$Builder.Start(ref stateMachine); return stateMachine.$Builder.Task; } } private readonly IKeplerProxy _keplerProxy; private readonly ISumMetricFormatter _sumMetricFormatter; [CompilerGenerated] private bool _IsEnabled; public bool IsEnabled { get; set; } public MetricSinkSum(IKeplerProxy keplerProxy, ISumMetricFormatter sumMetricFormatter, bool isEnabled) { _keplerProxy = keplerProxy; _sumMetricFormatter = sumMetricFormatter; IsEnabled = isEnabled; } public void Log(MetricBase metric) { _Closure$__3-0 closure$__3-; closure$__3-.$VB$Local_metrics = _sumMetricFormatter.GenerateSumMetrics(metric); if (closure$__3-.$VB$Local_metrics != null && closure$__3-.$VB$Local_metrics.Count != 0) _keplerProxy.ExecuteAsync(delegate(IServiceProxyFactory serviceFactory) { _Closure$__3-0.VB$StateMachine___Lambda$__0 stateMachine = default(_Closure$__3-0.VB$StateMachine___Lambda$__0); stateMachine.$VB$NonLocal__Closure$__3-0 = closure$__3-; stateMachine.$VB$Local_serviceFactory = serviceFactory; stateMachine.$State = -1; stateMachine.$Builder = AsyncTaskMethodBuilder.Create(); stateMachine.$Builder.Start(ref stateMachine); return stateMachine.$Builder.Task; }).GetAwaiter().GetResult(); } void IMetricSink.Log(MetricBase metric) { this.Log(metric); } } }