private static void Init() { var cfg = new ConfigurationBuilder() .SetBasePath(AppContext.BaseDirectory) .AddJsonFile("appsettings.json", optional: false) .Build(); var logFile = ResolveLogFilePath(cfg); Log.Logger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.Async(x => x.File(logFile)) .CreateLogger(); Logger = Log.Logger.ForContext(typeof(Program)); var metricsOptions = cfg.GetSection("metrics").Get <MetricsOptions>(); var instrumentationKey = ResolveInstrumentationKey(cfg); metrics = new MetricsBuilder() .Configuration.Configure(metricsOptions) .Report.ToApplicationInsights(opts => { opts.InstrumentationKey = instrumentationKey; opts.ItemsAsCustomDimensions = true; }) .Build(); reporter = metrics.ReportRunner; }
private static void Init() { var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); Configuration = configurationBuilder.Build(); var metricsConfigSection = Configuration.GetSection(nameof(MetricsOptions)); Metrics = new MetricsBuilder() .Configuration.Configure(metricsConfigSection.AsEnumerable()) .MetricFields.Configure( fields => { if (FilterMetricFields) { fields.Meter.OnlyInclude(MeterFields.Rate1M); fields.Apdex.Exclude(); fields.Counter.OnlyInclude(CounterFields.Value); fields.Gauge.Exclude(); fields.Histogram.Exclude(); } }) // Adds LineProtocolFormatter with default options, can override fields reported to influx using fields => fields... .Report.ToInfluxDb(InfluxDbUri, InfluxDbDatabase, TimeSpan.FromSeconds(5)) .Build(); Reporter = Metrics.ReportRunner; }
static void Init() { var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", false) .Build(); var logFile = configuration.GetValue("logFile", "ApplicationInsightsSandbox.log"); Log.Logger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.Async(x => x.File(logFile)) .CreateLogger(); Logger = Log.Logger.ForContext(typeof(Program)); // read configuration var metricsOptions = configuration.GetSection("metrics").Get <MetricsOptions>(); var instrumentationKey = GetAppInsightsInstrumentationKey(configuration); metrics = new MetricsBuilder() .Configuration.Configure(metricsOptions) .Report.ToApplicationInsights(instrumentationKey) .Build(); reporter = metrics.ReportRunner; }
private static void Init() { var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); Configuration = configurationBuilder.Build(); Log.Logger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.LiterateConsole() .WriteTo.Seq("http://localhost:5341") .CreateLogger(); var metricsConfigSection = Configuration.GetSection(nameof(MetricsOptions)); Metrics = new MetricsBuilder() .Configuration.Configure(metricsConfigSection.AsEnumerable()) // Adds GraphitePlainTextProtocolFormatter with default options .Report.ToGraphite(GraphiteUrl, TimeSpan.FromSeconds(5), fields => { fields.Meter.OnlyInclude(MeterFields.Rate1M); fields.Apdex.Exclude(); fields.Counter.OnlyInclude(CounterFields.Value); fields.Gauge.Exclude(); fields.Histogram.Exclude(); }) .Build(); Reporter = Metrics.ReportRunner; }
/// <inheritdoc /> public IMetricsRoot Build() { IMetricsRegistry registry = new NullMetricsRegistry(); if (_options == null) { _options = new MetricsOptions(); } if (_options.Enabled) { registry = new DefaultMetricsRegistry(_options.DefaultContextLabel, _clock, ContextRegistry); } if (_metricsOutputFormatters.Count == 0) { _metricsOutputFormatters.Add(new MetricsTextOutputFormatter()); } if (_envFormatters.Count == 0) { _envFormatters.Add(new EnvInfoTextOutputFormatter()); } var builderFactory = new DefaultMetricsBuilderFactory(_defaultSamplingReservoir); var measure = new DefaultMeasureMetricsProvider(registry, builderFactory, _clock); var provider = new DefaultMetricsProvider(registry, builderFactory, _clock); var snapshot = new DefaultMetricValuesProvider(_metricsFilter, registry); var manage = new DefaultMetricsManager(registry); var metrics = new DefaultMetrics(_clock, _metricsFilter, measure, builderFactory, provider, snapshot, manage); var defaultMetricsOutputFormatter = _defaultMetricsOutputFormatter ?? _metricsOutputFormatters.FirstOrDefault(); var defaultEnvOutputFormatter = _defauEnvOutputFormatter ?? _envFormatters.FirstOrDefault(); if (CanReport()) { _metricsReportRunner = new DefaultMetricsReportRunner(metrics, _reporters); } return(new MetricsRoot( metrics, _options, _metricsOutputFormatters, _envFormatters, defaultMetricsOutputFormatter, defaultEnvOutputFormatter, _environmentInfoProvider, _reporters, _metricsReportRunner)); IMetricContextRegistry ContextRegistry(string context) => new DefaultMetricContextRegistry(context, new GlobalMetricTags(_options.GlobalTags)); }
private static void Init() { var configurationBuilder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json"); Configuration = configurationBuilder.Build(); Log.Logger = new LoggerConfiguration().MinimumLevel.Verbose().WriteTo.LiterateConsole().CreateLogger(); var metricsConfigSection = Configuration.GetSection(nameof(MetricsOptions)); Metrics = new MetricsBuilder().Configuration.Configure(metricsConfigSection.AsEnumerable()).Report.ToStatsDUdp( opt => { opt.SocketSettings.Address = "localhost"; opt.SocketSettings.Port = 8125; }).Build(); Reporter = Metrics.ReportRunner; }
public MetricsRoot( IMetrics metrics, MetricsOptions options, MetricsFormatterCollection metricsOutputFormatters, EnvFormatterCollection envOutputFormatters, IMetricsOutputFormatter defaultMetricsOutputFormatter, IEnvOutputFormatter defaultEnvOutputFormatter, EnvironmentInfoProvider environmentInfoProvider, MetricsReporterCollection reporterCollection, IRunMetricsReports reporter) { Options = options ?? throw new ArgumentNullException(nameof(options)); _metrics = metrics ?? throw new ArgumentNullException(nameof(metrics)); ReportRunner = reporter ?? throw new ArgumentNullException(nameof(reporter)); _environmentInfoProvider = new EnvironmentInfoProvider(); Reporters = reporterCollection ?? new MetricsReporterCollection(); OutputMetricsFormatters = metricsOutputFormatters ?? new MetricsFormatterCollection(); OutputEnvFormatters = envOutputFormatters ?? new EnvFormatterCollection(); DefaultOutputMetricsFormatter = defaultMetricsOutputFormatter; DefaultOutputEnvFormatter = defaultEnvOutputFormatter; _environmentInfoProvider = environmentInfoProvider; }
private static void Init() { var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); Configuration = configurationBuilder.Build(); Log.Logger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.LiterateConsole(LogEventLevel.Information) .WriteTo.Seq("http://localhost:5341", LogEventLevel.Verbose) .CreateLogger(); var metricsConfigSection = Configuration.GetSection(nameof(MetricsOptions)); Metrics = AppMetrics.CreateDefaultBuilder() .Configuration.Configure(metricsConfigSection.AsEnumerable()) .Report.Using <SimpleConsoleMetricsReporter>(TimeSpan.FromSeconds(2)) .Build(); Reporter = Metrics.ReportRunner; }
private static void Init() { var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); Configuration = configurationBuilder.Build(); Log.Logger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.LiterateConsole() .WriteTo.Seq("http://localhost:5341") .CreateLogger(); var metricsConfigSection = Configuration.GetSection(nameof(MetricsOptions)); Metrics = new MetricsBuilder() .Configuration.Configure(metricsConfigSection.AsEnumerable()) // Adds GrafanaCloud Hosted Metrics with default options .Report.ToHostedMetrics(GrafanaCloudHostedMetricsUri, GrafanaCloudHostedMetricsApiKey, TimeSpan.FromSeconds(5)) .Build(); Reporter = Metrics.ReportRunner; }
private static void Init() { var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); Configuration = configurationBuilder.Build(); Log.Logger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.LiterateConsole() //.WriteTo.Seq("http://localhost:5341") .CreateLogger(); var metricsConfigSection = Configuration.GetSection(nameof(MetricsOptions)); Metrics = new MetricsBuilder() .Configuration.Configure(metricsConfigSection.AsEnumerable()) .MetricFields.Configure( fields => { if (FilterMetricFields) { fields.Meter.OnlyInclude(MeterFields.Rate1M); fields.Apdex.Exclude(); fields.Counter.OnlyInclude(CounterFields.Value); fields.Gauge.Exclude(); fields.Histogram.Exclude(); } }) // Adds LineProtocolFormatter with default options, can override fields reported to influx using fields => fields... .Report.ToInfluxDb2(InfluxDbUri, InfluxDbOrganization, InfluxDbBucket, InfluxDbToken, TimeSpan.FromSeconds(5)) .Build(); Reporter = Metrics.ReportRunner; }