Exemplo n.º 1
0
 public MetricsReporter(
     ITelemetryActivation activation,
     ITelemetryTagContext tagContext,
     string measurementName,
     IImmutableDictionary <string, string> tags,
     MetricsCollector influxClient)
 {
     _activation      = activation;
     _tagContext      = tagContext;
     _measurementName = measurementName;
     _tags            = tags ?? ImmutableDictionary <string, string> .Empty;
     _influxClient    = influxClient;
 }
 private MetricsReporterBuilder(
     ITelemetryActivation config,
     ITelemetryTagContext tagContext,
     string measurementName,
     IImmutableDictionary <string, string> tags,
     CollectorConfiguration influxConfiguration)
 {
     _activation          = config;
     _tagContext          = tagContext;
     _measurementName     = measurementName;
     _tags                = tags;
     _influxConfiguration = influxConfiguration;
 }
Exemplo n.º 3
0
        public LogFactory(
            LoggerConfiguration setting,
            ITelemetryActivation activation)
        {
            // will be handle by the activation
            var minLevel = activation.TextualThreshold < LogEventLevel.Debug ? activation.TextualThreshold : LogEventLevel.Debug;

            setting = setting
                      .MinimumLevel.Is(minLevel)
                      .Filter.ByIncludingOnly(l => activation.IsActive(l.Level))
                      .Enrich.With <Enrichment>();

            _logger = setting.CreateLogger();
            //Log.Logger = _logger;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="MetricsReporterBuilder"/> class.
        /// </summary>
        /// <param name="activationFactory">The activation factory.</param>
        /// <param name="simpleConfig">The simple configuration.</param>
        /// <param name="tagContext">The tag context.</param>
        public MetricsReporterBuilder(
            ITelemetryActivationFactory activationFactory,
            ISimpleConfig simpleConfig,
            ITelemetryTagContext tagContext)
        {
            // TODO: move it into Influx provider (InfluxMetricFactory)
            string url     = simpleConfig["influx-url"];
            string db      = simpleConfig["influx-database"];
            string version = simpleConfig["influx-report-version"];

            _activation          = activationFactory.Create();
            _influxConfiguration = new CollectorConfiguration()
                                   .Tag.With("version", version)
                                   .Tag.With("host", Environment.MachineName)
                                   .Tag.With("user", Environment.UserName)
                                   .Batch.AtInterval(TimeSpan.FromSeconds(5))
                                   .WriteTo.InfluxDB(url, database: db);
            _tagContext = tagContext;
        }