コード例 #1
0
 public static IHostBuilder UseClaptrapMetrics(this IHostBuilder hostBuilder)
 {
     return(hostBuilder
            .ConfigureMetricsWithDefaults((context, builder) =>
     {
         var claptrapOptions = new ClaptrapServerOptions();
         var config =
             context.Configuration.GetSection(ClaptrapServerOptions.ConfigurationSectionName);
         config.Bind(claptrapOptions);
         var metricsInfluxDbOptions = claptrapOptions.MetricsInfluxDb;
         if (metricsInfluxDbOptions.Enabled == true)
         {
             builder.Report
             .ToInfluxDb(options =>
             {
                 options.InfluxDb.Database = metricsInfluxDbOptions?.Database
                                             ?? "metricsdatabase";
                 options.InfluxDb.UserName = metricsInfluxDbOptions?.UserName
                                             ?? "claptrap";
                 options.InfluxDb.Password = metricsInfluxDbOptions?.Password
                                             ?? "claptrap";
                 options.InfluxDb.BaseUri = metricsInfluxDbOptions?.BaseUri
                                            ?? new Uri("http://127.0.0.1:19086");
                 options.InfluxDb.CreateDataBaseIfNotExists =
                     metricsInfluxDbOptions?.CreateDataBaseIfNotExists
                     ?? true;
                 options.HttpPolicy.BackoffPeriod = metricsInfluxDbOptions?.BackoffPeriod
                                                    ?? TimeSpan.FromSeconds(30);
                 options.HttpPolicy.FailuresBeforeBackoff =
                     metricsInfluxDbOptions?.FailuresBeforeBackoff
                     ?? 5;
                 options.HttpPolicy.Timeout = metricsInfluxDbOptions?.Timeout
                                              ?? TimeSpan.FromSeconds(10);
                 options.FlushInterval = metricsInfluxDbOptions?.FlushInterval
                                         ?? TimeSpan.FromSeconds(20);
                 options.MetricsOutputFormatter =
                     new MetricsInfluxDbLineProtocolOutputFormatter();
             });
         }
     })
            .UseMetrics(options =>
     {
         options.EndpointOptions = endpointsOptions =>
         {
             endpointsOptions.MetricsTextEndpointOutputFormatter =
                 new MetricsPrometheusTextOutputFormatter();
         };
     }));
 }
コード例 #2
0
        public static IClaptrapBootstrapperBuilder AddConfiguration(
            this IClaptrapBootstrapperBuilder builder,
            IConfiguration configuration)
        {
            var config         = configuration.GetSection(ClaptrapServerOptions.ConfigurationSectionName);
            var claptrapConfig = new ClaptrapServerOptions();

            config.Bind(claptrapConfig);
            builder.AddConnectionString(Defaults.ConnectionName,
                                        claptrapConfig.DefaultConnectionString);
            foreach (var(key, value) in claptrapConfig.ConnectionStrings)
            {
                builder.AddConnectionString(key, value);
            }

            LoadEventStore(builder, claptrapConfig.EventStore);
            LoadStateStore(builder, claptrapConfig.StateStore);
            return(builder);
        }