private void HandleApiMetering(LogEventArgs logEventArgs) { if (string.IsNullOrWhiteSpace(ApiMeterPrefix)) { return; } IMeter meter = Metering.GetGlobalMeter(); if (meter == null) { return; } int httpStatusCode = (int)logEventArgs.HttpStatusCode; if (httpStatusCode >= 500) { meter.Meter($"{ApiMeterPrefix}.failure"); } meter.Meter($"{ApiMeterPrefix}.count"); meter.Timer($"{ApiMeterPrefix}.latency", TimeSpan.FromSeconds(logEventArgs.TimeTakenInSeconds)); }
public void Meter(string name) { AsyncTasks.Run(() => _meter.Meter(name), "metering"); }
private void AddCountMetric(string metricName) { var key = string.IsNullOrEmpty(metricName) ? _meterKeyPrefix : $"{_meterKeyPrefix}.{metricName}"; _meter.Meter(key); }