public AresMetrics(string key, IIOperationProperties properties) { this.key = key; healthSnapshot = new Health(0, 0); this.counter = new RollingNumber(properties.MetricsRollingStatisticalWindowInMilliseconds, properties.MetricsRollingStatisticalWindowBuckets); }
public CircuitBreaker(IIOperationProperties properties, AresMetrics metrics) { this.properties = properties; this.metrics = metrics; }
public static AresMetrics Get(string name, IIOperationProperties properties) { return metrics.GetOrAdd(name, key => new AresMetrics(key, properties)); }
public static CircuitBreaker Get(string name, IIOperationProperties properties) { return breakers.GetOrAdd(name, key => new CircuitBreaker(properties, AresMetricsFactory.Get(key, properties))); }