public static void UseThreadDumpActuator(IConfiguration configuration, IThreadDumper threadDumper = null, ILoggerFactory loggerFactory = null) { var options = new ThreadDumpOptions(configuration); threadDumper = threadDumper ?? new ThreadDumper(options); var ep = new ThreadDumpEndpoint(options, threadDumper, CreateLogger <ThreadDumpEndpoint>(loggerFactory)); var handler = new ThreadDumpHandler(ep, SecurityService, CreateLogger <ThreadDumpHandler>(loggerFactory)); ConfiguredHandlers.Add(handler); }
public ThreadDumpEndpoint(IThreadDumpOptions options, IThreadDumper threadDumper, ILogger <ThreadDumpEndpoint> logger = null) : base(options) { if (threadDumper == null) { throw new ArgumentNullException(nameof(threadDumper)); } _threadDumper = threadDumper; _logger = logger; }
public ThreadDumpEndpoint_v2(IThreadDumpOptions options, IThreadDumper threadDumper, ILogger <ThreadDumpEndpoint_v2> logger = null) : base(options) { _threadDumper = threadDumper ?? throw new ArgumentNullException(nameof(threadDumper)); _logger = logger; }
public static void UseThreadDumpActuator(IConfiguration configuration, MediaTypeVersion version, IThreadDumper threadDumper = null, ILoggerFactory loggerFactory = null) { var options = new ThreadDumpEndpointOptions(configuration); if (version == MediaTypeVersion.V2 && options.Id == "dump") { options.Id = "threaddump"; } _mgmtOptions.RegisterEndpointOptions(configuration, options); threadDumper = threadDumper ?? new ThreadDumper(options); IActuatorHandler handler; switch (version) { case MediaTypeVersion.V1: var ep = new ThreadDumpEndpoint(options, threadDumper, CreateLogger <ThreadDumpEndpoint>(loggerFactory)); handler = new ThreadDumpHandler(ep, SecurityServices, _mgmtOptions, CreateLogger <ThreadDumpHandler>(loggerFactory)); break; default: var ep2 = new ThreadDumpEndpoint_v2(options, threadDumper, CreateLogger <ThreadDumpEndpoint_v2>(loggerFactory)); handler = new ThreadDumpHandler_v2(ep2, SecurityServices, _mgmtOptions, CreateLogger <ThreadDumpHandler_v2>(loggerFactory)); break; } ConfiguredHandlers.Add(handler); }
public static void UseThreadDumpActuator(IConfiguration configuration, IThreadDumper threadDumper = null, ILoggerFactory loggerFactory = null) { UseThreadDumpActuator(configuration, MediaTypeVersion.V1, threadDumper, loggerFactory); }
/// <summary> /// Add HealthCheck actuator endpoint to OWIN Pipeline /// </summary> /// <param name="builder">OWIN <see cref="IAppBuilder" /></param> /// <param name="options">Options for configuring the thread dump endpoint</param> /// <param name="threadDumper">Class responsible for dumping threads</param> /// <param name="loggerFactory">For logging within the middleware</param> /// <returns>OWIN <see cref="IAppBuilder" /> with Health Endpoint added</returns> public static IAppBuilder UseThreadDumpActuator(this IAppBuilder builder, IThreadDumpOptions options, IThreadDumper threadDumper, ILoggerFactory loggerFactory = null) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } if (threadDumper == null) { throw new ArgumentNullException(nameof(threadDumper)); } var endpoint = new ThreadDumpEndpoint(options, threadDumper, loggerFactory?.CreateLogger <ThreadDumpEndpoint>()); var logger = loggerFactory?.CreateLogger <EndpointOwinMiddleware <List <ThreadInfo> > >(); return(builder.Use <EndpointOwinMiddleware <List <ThreadInfo> > >(endpoint, new List <HttpMethod> { HttpMethod.Get }, true, logger)); }
/// <summary> /// Add HealthCheck actuator endpoint to OWIN Pipeline /// </summary> /// <param name="builder">OWIN <see cref="IAppBuilder" /></param> /// <param name="options">Options for configuring the thread dump endpoint</param> /// <param name="threadDumper">Class responsible for dumping threads</param> /// <param name="loggerFactory">For logging within the middleware</param> /// <returns>OWIN <see cref="IAppBuilder" /> with Health Endpoint added</returns> public static IAppBuilder UseThreadDumpActuator(this IAppBuilder builder, IThreadDumpOptions options, IThreadDumper threadDumper, ILoggerFactory loggerFactory = null) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.UseThreadDumpActuator(options, threadDumper, loggerFactory, MediaTypeVersion.V1)); }
private static IAppBuilder UseThreadDumpV2Components(IAppBuilder builder, IThreadDumpOptions options, IThreadDumper threadDumper, ILoggerFactory loggerFactory) { var endpoint = new ThreadDumpEndpoint_v2(options, threadDumper, loggerFactory?.CreateLogger <ThreadDumpEndpoint_v2>()); var logger = loggerFactory?.CreateLogger <EndpointOwinMiddleware <ThreadDumpResult> >(); var mgmtOptions = ManagementOptions.Get(); return(builder.Use <EndpointOwinMiddleware <ThreadDumpResult> >(endpoint, mgmtOptions, new List <HttpMethod> { HttpMethod.Get }, true, logger)); }
/// <summary> /// Add HealthCheck actuator endpoint to OWIN Pipeline /// </summary> /// <param name="builder">OWIN <see cref="IAppBuilder" /></param> /// <param name="options">Options for configuring the thread dump endpoint</param> /// <param name="threadDumper">Class responsible for dumping threads</param> /// <param name="loggerFactory">For logging within the middleware</param> /// <param name="version">MediaType version of the response</param> /// <returns>OWIN <see cref="IAppBuilder" /> with Health Endpoint added</returns> public static IAppBuilder UseThreadDumpActuator(this IAppBuilder builder, IThreadDumpOptions options, IThreadDumper threadDumper, ILoggerFactory loggerFactory, MediaTypeVersion version) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } if (threadDumper == null) { throw new ArgumentNullException(nameof(threadDumper)); } switch (version) { case MediaTypeVersion.V1: return(UseThreadDumpComponents(builder, options, threadDumper, loggerFactory)); default: return(UseThreadDumpV2Components(builder, options, threadDumper, loggerFactory)); } }