/// <summary> /// Register an RedisDiagnosticObserver instance of RedisDiagnosticListener to listen for Redis Metrics with prometheus /// </summary> /// <param name="app"></param> /// <returns></returns> public static IServiceCollection AddRedisDiagnostics(this IServiceCollection services, RedisDiagnosticListener redisListener = null) { listener = redisListener ?? new RedisDiagnosticListener(); services.AddSingleton(listener); if (listener == default) { throw new NullReferenceException("listener cannot be null, use services.AddRedisListener() in ConfigureServices method."); } observer = new RedisDiagnosticObserver(listener); DiagnosticListener.AllListeners.Subscribe(observer); return(services); }
public RedisDiagnosticObserver(RedisDiagnosticListener listener) { _listener = listener ?? throw new ArgumentNullException(nameof(listener)); }