コード例 #1
0
 public PrometheusCollection(IGiveSensors collector, string localHost, CollectorRegistry registry)
 {
     _collector = collector;
     _localHost = localHost;
     registry.AddBeforeCollectCallback(UpdateMetrics);
     _metrics = Metrics.WithCustomRegistry(registry);
 }
コード例 #2
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="pveHostsAndPortHA"></param>
        /// <param name="pveUsername"></param>
        /// <param name="pvePassword"></param>
        /// <param name="pveApiToken"></param>
        /// <param name="loggerFactory"></param>
        /// <param name="host"></param>
        /// <param name="port"></param>
        /// <param name="url"></param>
        /// <param name="prefix"></param>
        /// <param name="exportNodeDiskInfo"></param>
        public PrometheusExporter(string pveHostsAndPortHA,
                                  string pveUsername,
                                  string pvePassword,
                                  string pveApiToken,
                                  ILoggerFactory loggerFactory,
                                  string host,
                                  int port,
                                  string url,
                                  string prefix,
                                  bool exportNodeDiskInfo)
            : this(Prometheus.Metrics.NewCustomRegistry(), prefix, exportNodeDiskInfo)
        {
            _registry.AddBeforeCollectCallback(async() =>
            {
                var stopwatch = new Stopwatch();
                stopwatch.Start();

                var client           = ClientHelper.GetClientFromHA(pveHostsAndPortHA);
                client.LoggerFactory = loggerFactory;
                if (string.IsNullOrWhiteSpace(pveApiToken))
                {
                    await client.Login(pveUsername, pvePassword);
                }
                await Collect(client);

                stopwatch.Stop();
            });

            _server = new MetricServer(host, port, url, _registry);
        }
コード例 #3
0
        public static void AddMetricsToRegistry(CollectorRegistry registry)
        {
            var rand = new Random();

            registry.AddBeforeCollectCallback(() =>
            {
                System.Diagnostics.Debug.WriteLine("**** callback called. ****");
                Callback.Set(rand.NextDouble());
            });
        }
コード例 #4
0
        public void AddMetricsToRegistry(CollectorRegistry registry)
        {
            registry.AddBeforeCollectCallback(() =>
            {
                var resolverDiagnostics = resolver.Diagnostics;
                ResolverFactoryCacheCount.Set(resolverDiagnostics.FactoryCacheCount);
                ResolverFactoryCacheWidth.Set(resolverDiagnostics.FactoryCacheWidth);
                ResolverFactoryCacheDepth.Set(resolverDiagnostics.FactoryCacheDepth);

                var controllerDiagnostics = engineController.Diagnostics;
                AccessorMapperCacheCount.Set(controllerDiagnostics.ResultMapperCacheCount);
                AccessorMapperCacheWidth.Set(controllerDiagnostics.ResultMapperCacheWidth);
                AccessorMapperCacheDepth.Set(controllerDiagnostics.ResultMapperCacheDepth);
            });
        }
コード例 #5
0
        public OnDemandCollector(string sqlConnectionString, int millisecondTimeout, CollectorRegistry registry, Func <MetricFactory, IEnumerable <IQuery> > configureAction)
        {
            _sqlConnectionString = sqlConnectionString;
            _millisecondTimeout  = millisecondTimeout;
            _registry            = registry;
            _metricFactory       = Metrics.WithCustomRegistry(registry);
            _registry.AddBeforeCollectCallback(UpdateMetrics);
            _metrics =
                configureAction(_metricFactory)
                .Append(new ConnectionUp(_metricFactory))
                .ToArray();

            _exceptionsGauge = _metricFactory.CreateGauge("mssql_exceptions", "Number of queries throwing exceptions.");
            _timeoutGauge    = _metricFactory.CreateGauge("mssql_timeouts", "Number of queries timing out.");
        }