public static IHostBuilder ConfigureAppMetricsHostingConfiguration( this IHostBuilder hostBuilder, Action <MetricsEndpointsHostingOptions> setupHostingConfiguration) { var metricsEndpointHostingOptions = new MetricsEndpointsHostingOptions(); setupHostingConfiguration(metricsEndpointHostingOptions); var ports = new List <int>(); if (metricsEndpointHostingOptions.AllEndpointsPort.HasValue) { Console.WriteLine($"Hosting {metricsEndpointHostingOptions.MetricsEndpoint} on port {metricsEndpointHostingOptions.AllEndpointsPort.Value}"); Console.WriteLine($"Hosting {metricsEndpointHostingOptions.MetricsTextEndpoint} endpoint on port {metricsEndpointHostingOptions.AllEndpointsPort.Value}"); Console.WriteLine($"Hosting {metricsEndpointHostingOptions.EnvironmentInfoEndpoint} endpoint on port {metricsEndpointHostingOptions.AllEndpointsPort.Value}"); ports.Add(metricsEndpointHostingOptions.AllEndpointsPort.Value); } else { if (metricsEndpointHostingOptions.MetricsEndpointPort.HasValue) { Console.WriteLine($"Hosting {metricsEndpointHostingOptions.MetricsEndpoint} on port {metricsEndpointHostingOptions.MetricsEndpointPort.Value}"); ports.Add(metricsEndpointHostingOptions.MetricsEndpointPort.Value); } if (metricsEndpointHostingOptions.MetricsTextEndpointPort.HasValue) { Console.WriteLine($"Hosting {metricsEndpointHostingOptions.MetricsTextEndpoint} endpoint on port {metricsEndpointHostingOptions.MetricsTextEndpointPort.Value}"); ports.Add(metricsEndpointHostingOptions.MetricsTextEndpointPort.Value); } if (metricsEndpointHostingOptions.EnvironmentInfoEndpointPort.HasValue) { Console.WriteLine($"Hosting {metricsEndpointHostingOptions.EnvironmentInfoEndpoint} endpoint on port {metricsEndpointHostingOptions.EnvironmentInfoEndpointPort.Value}"); ports.Add(metricsEndpointHostingOptions.EnvironmentInfoEndpointPort.Value); } } if (ports.Any()) { throw new NotImplementedException("To implement setting custom ports for netcore3.0, removed for now in App.Metrics 4.0.0"); // var existingUrl = hostBuilder.GetSetting(WebHostDefaults.ServerUrlsKey); // var additionalUrls = string.Join(";", ports.Distinct().Select(p => $"http://*:{p}/")); // hostBuilder.UseSetting(WebHostDefaults.ServerUrlsKey, $"{existingUrl};{additionalUrls}"); } hostBuilder.ConfigureServices((context, services) => services.Configure(setupHostingConfiguration)); return(hostBuilder); }
public static IWebHostBuilder ConfigureAppMetricsHostingConfiguration( this IWebHostBuilder hostBuilder, Action <MetricsEndpointsHostingOptions> setupHostingConfiguration) { var metricsEndpointHostingOptions = new MetricsEndpointsHostingOptions(); setupHostingConfiguration(metricsEndpointHostingOptions); var ports = new List <int>(); if (metricsEndpointHostingOptions.AllEndpointsPort.HasValue) { Console.WriteLine($"Hosting {metricsEndpointHostingOptions.MetricsEndpoint} on port {metricsEndpointHostingOptions.AllEndpointsPort.Value}"); Console.WriteLine($"Hosting {metricsEndpointHostingOptions.MetricsTextEndpoint} endpoint on port {metricsEndpointHostingOptions.AllEndpointsPort.Value}"); Console.WriteLine($"Hosting {metricsEndpointHostingOptions.EnvironmentInfoEndpoint} endpoint on port {metricsEndpointHostingOptions.AllEndpointsPort.Value}"); ports.Add(metricsEndpointHostingOptions.AllEndpointsPort.Value); } else { if (metricsEndpointHostingOptions.MetricsEndpointPort.HasValue) { Console.WriteLine($"Hosting {metricsEndpointHostingOptions.MetricsEndpoint} on port {metricsEndpointHostingOptions.MetricsEndpointPort.Value}"); ports.Add(metricsEndpointHostingOptions.MetricsEndpointPort.Value); } if (metricsEndpointHostingOptions.MetricsTextEndpointPort.HasValue) { Console.WriteLine($"Hosting {metricsEndpointHostingOptions.MetricsTextEndpoint} endpoint on port {metricsEndpointHostingOptions.MetricsTextEndpointPort.Value}"); ports.Add(metricsEndpointHostingOptions.MetricsTextEndpointPort.Value); } if (metricsEndpointHostingOptions.EnvironmentInfoEndpointPort.HasValue) { Console.WriteLine($"Hosting {metricsEndpointHostingOptions.EnvironmentInfoEndpoint} endpoint on port {metricsEndpointHostingOptions.EnvironmentInfoEndpointPort.Value}"); ports.Add(metricsEndpointHostingOptions.EnvironmentInfoEndpointPort.Value); } } if (ports.Any()) { var existingUrl = hostBuilder.GetSetting(WebHostDefaults.ServerUrlsKey); var additionalUrls = string.Join(";", ports.Distinct().Select(p => $"http://localhost:{p}/")); hostBuilder.UseSetting(WebHostDefaults.ServerUrlsKey, $"{existingUrl};{additionalUrls}"); } hostBuilder.ConfigureServices(services => services.Configure(setupHostingConfiguration)); return(hostBuilder); }
public static IWebHostBuilder ConfigureAppMetricsHostingConfiguration( this IWebHostBuilder hostBuilder, Action <MetricsEndpointsHostingOptions> setupHostingConfiguration) { var metricsEndpointHostingOptions = new MetricsEndpointsHostingOptions(); setupHostingConfiguration(metricsEndpointHostingOptions); if (metricsEndpointHostingOptions.AllEndpointsPort.HasValue) { Console.WriteLine($"Hosting {metricsEndpointHostingOptions.MetricsEndpoint} on port {metricsEndpointHostingOptions.AllEndpointsPort.Value}"); Console.WriteLine($"Hosting {metricsEndpointHostingOptions.MetricsTextEndpoint} endpoint on port {metricsEndpointHostingOptions.AllEndpointsPort.Value}"); Console.WriteLine($"Hosting {metricsEndpointHostingOptions.EnvironmentInfoEndpoint} endpoint on port {metricsEndpointHostingOptions.AllEndpointsPort.Value}"); } else { if (metricsEndpointHostingOptions.MetricsEndpointPort.HasValue) { Console.WriteLine($"Hosting {metricsEndpointHostingOptions.MetricsEndpoint} on port {metricsEndpointHostingOptions.MetricsEndpointPort.Value}"); } if (metricsEndpointHostingOptions.MetricsTextEndpointPort.HasValue) { Console.WriteLine($"Hosting {metricsEndpointHostingOptions.MetricsTextEndpoint} endpoint on port {metricsEndpointHostingOptions.MetricsTextEndpointPort.Value}"); } if (metricsEndpointHostingOptions.EnvironmentInfoEndpointPort.HasValue) { Console.WriteLine($"Hosting {metricsEndpointHostingOptions.EnvironmentInfoEndpoint} endpoint on port {metricsEndpointHostingOptions.EnvironmentInfoEndpointPort.Value}"); } } hostBuilder.ConfigureServices((context, services) => services.Configure(setupHostingConfiguration)); return(hostBuilder); }