Beispiel #1
0
        public MetricScrapingJob(ScrapeDefinition <AzureResourceDefinition> metric,
                                 IMetricsDeclarationProvider metricsDeclarationProvider,
                                 IPrometheusMetricWriter prometheusMetricWriter,
                                 IRuntimeMetricsCollector runtimeMetricsCollector,
                                 MetricScraperFactory metricScraperFactory,
                                 ILogger logger, IExceptionTracker exceptionTracker)
        {
            Guard.NotNull(metric, nameof(metric));
            Guard.NotNull(metricsDeclarationProvider, nameof(metricsDeclarationProvider));
            Guard.NotNull(prometheusMetricWriter, nameof(prometheusMetricWriter));
            Guard.NotNull(runtimeMetricsCollector, nameof(runtimeMetricsCollector));
            Guard.NotNull(metricScraperFactory, nameof(metricScraperFactory));
            Guard.NotNull(logger, nameof(logger));
            Guard.NotNull(exceptionTracker, nameof(exceptionTracker));

            _metric = metric;
            _metricsDeclarationProvider = metricsDeclarationProvider;
            _prometheusMetricWriter     = prometheusMetricWriter;
            _runtimeMetricsCollector    = runtimeMetricsCollector;
            _exceptionTracker           = exceptionTracker;
            _logger = logger;

            _metricScraperFactory = metricScraperFactory;

            ConfigureJob();
        }
Beispiel #2
0
        /// <summary>
        ///     Constructor
        /// </summary>
        /// <param name="azureMetadata">Metadata concerning the Azure resources</param>
        /// <param name="azureCredentials">Credentials used to authenticate to Microsoft Azure</param>
        /// <param name="exceptionTracker">Exception tracker</param>
        protected Scraper(AzureMetadata azureMetadata, AzureCredentials azureCredentials, IExceptionTracker exceptionTracker)
        {
            Guard.NotNull(exceptionTracker, nameof(exceptionTracker));

            _exceptionTracker = exceptionTracker;

            AzureMetadata    = azureMetadata ?? throw new ArgumentNullException(nameof(azureMetadata));
            AzureCredentials = azureCredentials ?? throw new ArgumentNullException(nameof(azureCredentials));
        }
        public MetricScraperFactory(IConfiguration configuration, ILogger logger, IExceptionTracker exceptionTracker)
        {
            Guard.NotNull(configuration, nameof(configuration));
            Guard.NotNull(logger, nameof(logger));
            Guard.NotNull(exceptionTracker, nameof(exceptionTracker));

            _logger           = logger;
            _configuration    = configuration;
            _exceptionTracker = exceptionTracker;
        }
Beispiel #4
0
        public MetricScrapingJob(IMetricsDeclarationProvider metricsDeclarationProvider, ILogger logger, IExceptionTracker exceptionTracker)
        {
            Guard.NotNull(metricsDeclarationProvider, nameof(metricsDeclarationProvider));
            Guard.NotNull(exceptionTracker, nameof(exceptionTracker));
            Guard.NotNull(logger, nameof(logger));

            _metricsDeclarationProvider = metricsDeclarationProvider;
            _exceptionTracker           = exceptionTracker;
            _logger = logger;

            ConfigureJob();
        }
Beispiel #5
0
        /// <summary>
        ///     Constructor
        /// </summary>
        protected Scraper(ScraperConfiguration scraperConfiguration)
        {
            Guard.NotNull(scraperConfiguration, nameof(scraperConfiguration));

            _logger                 = scraperConfiguration.Logger;
            _exceptionTracker       = scraperConfiguration.ExceptionTracker;
            _scraperConfiguration   = scraperConfiguration;
            _prometheusMetricWriter = scraperConfiguration.PrometheusMetricWriter;

            AzureMetadata      = scraperConfiguration.AzureMetadata;
            AzureMonitorClient = scraperConfiguration.AzureMonitorClient;
        }
Beispiel #6
0
        /// <summary>
        ///     Constructor
        /// </summary>
        /// <param name="azureMetadata">Metadata concerning the Azure resources</param>
        /// <param name="azureMonitorClient">Client to communicate with Azure Monitor</param>
        /// <param name="logger">General logger</param>
        /// <param name="exceptionTracker">Exception tracker</param>
        protected Scraper(AzureMetadata azureMetadata, AzureMonitorClient azureMonitorClient, ILogger logger,
                          IExceptionTracker exceptionTracker)
        {
            Guard.NotNull(exceptionTracker, nameof(exceptionTracker));
            Guard.NotNull(azureMetadata, nameof(azureMetadata));
            Guard.NotNull(azureMonitorClient, nameof(azureMonitorClient));

            _logger           = logger;
            _exceptionTracker = exceptionTracker;

            AzureMetadata      = azureMetadata;
            AzureMonitorClient = azureMonitorClient;
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="azureMetadata">Metadata concerning the Azure resources</param>
        /// <param name="azureMonitorClient">Client to communicate with Azure Monitor</param>
        /// <param name="prometheusMetricWriter">Metrics collector for our Prometheus scraping endpoint</param>
        /// <param name="logger">General logger</param>
        /// <param name="exceptionTracker">Exception tracker</param>
        public ScraperConfiguration(AzureMetadata azureMetadata, AzureMonitorClient azureMonitorClient, IPrometheusMetricWriter prometheusMetricWriter, ILogger logger, IExceptionTracker exceptionTracker)
        {
            Guard.NotNull(azureMetadata, nameof(azureMetadata));
            Guard.NotNull(azureMonitorClient, nameof(azureMonitorClient));
            Guard.NotNull(prometheusMetricWriter, nameof(prometheusMetricWriter));
            Guard.NotNull(logger, nameof(logger));
            Guard.NotNull(exceptionTracker, nameof(exceptionTracker));

            AzureMetadata          = azureMetadata;
            AzureMonitorClient     = azureMonitorClient;
            PrometheusMetricWriter = prometheusMetricWriter;
            Logger           = logger;
            ExceptionTracker = exceptionTracker;
        }
Beispiel #8
0
        public MetricScrapingJob(MetricDefinition metric,
                                 IMetricsDeclarationProvider metricsDeclarationProvider,
                                 IRuntimeMetricsCollector runtimeMetricsCollector,
                                 ILogger logger, IExceptionTracker exceptionTracker)
        {
            Guard.NotNull(metric, nameof(metric));
            Guard.NotNull(exceptionTracker, nameof(exceptionTracker));
            Guard.NotNull(logger, nameof(logger));

            _metric = metric;
            _metricsDeclarationProvider = metricsDeclarationProvider;
            _runtimeMetricsCollector    = runtimeMetricsCollector;
            _exceptionTracker           = exceptionTracker;
            _logger = logger;

            ConfigureJob();
        }
        /// <summary>
        ///     Creates a scraper that is capable of scraping a specific resource type
        /// </summary>
        /// <param name="azureMetadata">Metadata concerning the Azure resources</param>
        /// <param name="metricDefinitionResourceType">Resource type to scrape</param>
        /// <param name="logger">General logger</param>
        /// <param name="exceptionTracker">Tracker used to log exceptions</param>
        public static IScraper <MetricDefinition> CreateScraper(ResourceType metricDefinitionResourceType, AzureMetadata azureMetadata,
                                                                ILogger logger, IExceptionTracker exceptionTracker)
        {
            var azureCredentials   = DetermineAzureCredentials();
            var azureMonitorClient = CreateAzureMonitorClient(azureMetadata, azureCredentials, logger);

            switch (metricDefinitionResourceType)
            {
            case ResourceType.ServiceBusQueue:
                return(new ServiceBusQueueScraper(azureMetadata, azureMonitorClient, logger, exceptionTracker));

            case ResourceType.Generic:
                return(new GenericScraper(azureMetadata, azureMonitorClient, logger, exceptionTracker));

            case ResourceType.StorageQueue:
                return(new StorageQueueScraper(azureMetadata, azureMonitorClient, logger, exceptionTracker));

            case ResourceType.ContainerInstance:
                return(new ContainerInstanceScraper(azureMetadata, azureMonitorClient, logger, exceptionTracker));

            case ResourceType.VirtualMachine:
                return(new VirtualMachineScraper(azureMetadata, azureMonitorClient, logger, exceptionTracker));

            case ResourceType.NetworkInterface:
                return(new NetworkInterfaceScraper(azureMetadata, azureMonitorClient, logger, exceptionTracker));

            case ResourceType.ContainerRegistry:
                return(new ContainerRegistryScraper(azureMetadata, azureMonitorClient, logger, exceptionTracker));

            case ResourceType.CosmosDb:
                return(new CosmosDbScraper(azureMetadata, azureMonitorClient, logger, exceptionTracker));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
 public VirtualMachineScraper(AzureMetadata azureMetadata, AzureMonitorClient azureMonitorClient, ILogger logger, IExceptionTracker exceptionTracker)
     : base(azureMetadata, azureMonitorClient, logger, exceptionTracker)
 {
 }
Beispiel #11
0
 public ServiceBusQueueScraper(AzureMetadata azureMetadata, AzureCredentials azureCredentials, IExceptionTracker exceptionTracker)
     : base(azureMetadata, azureCredentials, exceptionTracker)
 {
 }
Beispiel #12
0
 public CosmosDbScraper(AzureMetadata azureMetadata, AzureMonitorClient azureMonitorClient, ILogger logger, IExceptionTracker exceptionTracker)
     : base(azureMetadata, azureMonitorClient, logger, exceptionTracker)
 {
 }
Beispiel #13
0
 public GenericScraper(AzureMetadata azureMetadata, MetricDefaults metricDefaults, AzureMonitorClient azureMonitorClient, ILogger logger, IExceptionTracker exceptionTracker)
     : base(azureMetadata, metricDefaults, azureMonitorClient, logger, exceptionTracker)
 {
 }
Beispiel #14
0
 public StorageQueueScraper(AzureMetadata azureMetadata, AzureMonitorClient azureMonitorClient, ILogger logger, IExceptionTracker exceptionTracker)
     : base(azureMetadata, azureMonitorClient, logger, exceptionTracker)
 {
     _azureStorageQueueClient = new AzureStorageQueueClient(logger);
 }
Beispiel #15
0
 public GenericScraper(AzureMetadata azureMetadata, AzureCredentials azureCredentials, IExceptionTracker exceptionTracker)
     : base(azureMetadata, azureCredentials, exceptionTracker)
 {
 }
Beispiel #16
0
 public ContainerRegistryScraper(AzureMetadata azureMetadata, AzureMonitorClient azureMonitorClient, ILogger logger, IExceptionTracker exceptionTracker)
     : base(azureMetadata, azureMonitorClient, logger, exceptionTracker)
 {
 }
Beispiel #17
0
 public ServiceBusQueueScraper(AzureMetadata azureMetadata, AzureMonitorClient azureMonitorClient, ILogger logger, IExceptionTracker exceptionTracker)
     : base(azureMetadata, azureMonitorClient, logger, exceptionTracker)
 {
 }
 public NetworkInterfaceScraper(AzureMetadata azureMetadata, AzureMonitorClient azureMonitorClient, ILogger logger, IExceptionTracker exceptionTracker)
     : base(azureMetadata, azureMonitorClient, logger, exceptionTracker)
 {
 }
Beispiel #19
0
        /// <summary>
        ///     Creates a scraper that is capable of scraping a specific resource type
        /// </summary>
        /// <param name="azureMetadata">Metadata concerning the Azure resources</param>
        /// <param name="metricDefinitionResourceType">Resource type to scrape</param>
        /// <param name="metricDefaults">Default configuration for metrics</param>
        /// <param name="logger">General logger</param>
        /// <param name="exceptionTracker">Tracker used to log exceptions</param>
        public static IScraper <MetricDefinition> CreateScraper(ResourceType metricDefinitionResourceType, AzureMetadata azureMetadata,
                                                                MetricDefaults metricDefaults, ILogger logger, IExceptionTracker exceptionTracker)
        {
            var azureCredentials   = DetermineAzureCredentials();
            var azureMonitorClient = CreateAzureMonitorClient(azureMetadata, azureCredentials, logger);

            switch (metricDefinitionResourceType)
            {
            case ResourceType.ServiceBusQueue:
                return(new ServiceBusQueueScraper(azureMetadata, metricDefaults, azureMonitorClient, logger, exceptionTracker));

            case ResourceType.Generic:
                return(new GenericScraper(azureMetadata, metricDefaults, azureMonitorClient, logger, exceptionTracker));

            case ResourceType.StorageQueue:
                return(new StorageQueueScraper(azureMetadata, metricDefaults, azureMonitorClient, logger, exceptionTracker));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
 public AzureMonitorScrapingTask(IMetricsDeclarationProvider metricsDeclarationProvider, ILogger logger, IExceptionTracker exceptionTracker)
 {
     _metricsDeclarationProvider = metricsDeclarationProvider;
     _logger           = logger;
     _exceptionTracker = exceptionTracker;
 }
Beispiel #21
0
        /// <summary>
        ///     Creates a scraper that is capable of scraping a specific resource type
        /// </summary>
        /// <param name="azureMetadata">Metadata concerning the Azure resources</param>
        /// <param name="metricDefinitionResourceType">Resource type to scrape</param>
        /// <param name="exceptionTracker">Tracker used to log exceptions</param>
        internal static IScraper <MetricDefinition> CreateScraper(AzureMetadata azureMetadata, ResourceType metricDefinitionResourceType, IExceptionTracker exceptionTracker)
        {
            var azureCredentials = DetermineAzureCredentials();

            switch (metricDefinitionResourceType)
            {
            case ResourceType.ServiceBusQueue:
                return(new ServiceBusQueueScraper(azureMetadata, azureCredentials, exceptionTracker));

            case ResourceType.Generic:
                return(new GenericScraper(azureMetadata, azureCredentials, exceptionTracker));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }