public MetricsScrapeAndUpload(IMetricsScraper scraper, IMetricsPublisher publisher, Guid metricsCollectorRuntimeId) { this.scraper = Preconditions.CheckNotNull(scraper); this.publisher = Preconditions.CheckNotNull(publisher); Preconditions.CheckArgument(metricsCollectorRuntimeId != Guid.Empty); this.metricsCollectorRuntimeId = metricsCollectorRuntimeId; }
public MetricsWorker(IMetricsScraper scraper, IMetricsStorage storage, IMetricsPublisher uploader, ISystemTime systemTime = null) { this.scraper = Preconditions.CheckNotNull(scraper, nameof(scraper)); this.storage = Preconditions.CheckNotNull(storage, nameof(storage)); this.uploader = Preconditions.CheckNotNull(uploader, nameof(uploader)); this.systemTime = systemTime ?? SystemTime.Instance; }
public TestBase(TestReporter testReporter, IMetricsScraper scraper, ModuleClient moduleClient) { log.LogInformation($"Making test {this.TestName}"); this.testReporter = testReporter.MakeSubcategory(this.TestName); this.scraper = scraper; this.moduleClient = moduleClient; }
public MetricsWorker(IMetricsScraper scraper, IMetricsStorage storage, IMetricsPublisher uploader) { this.scraper = Preconditions.CheckNotNull(scraper, nameof(scraper)); this.storage = Preconditions.CheckNotNull(storage, nameof(storage)); this.uploader = Preconditions.CheckNotNull(uploader, nameof(uploader)); this.metricFilter = new MetricFilter() .AddAllowedTags(new KeyValuePair <string, string>(MetricsConstants.MsTelemetry, true.ToString())) .AddTagsToRemove(MetricsConstants.MsTelemetry, MetricsConstants.IotHubLabel, MetricsConstants.DeviceIdLabel); }
public MetricsWorker(IMetricsScraper scraper, IMetricsStorage storage, IMetricsPublisher uploader) { this.scraper = Preconditions.CheckNotNull(scraper, nameof(scraper)); this.storage = Preconditions.CheckNotNull(storage, nameof(storage)); this.uploader = Preconditions.CheckNotNull(uploader, nameof(uploader)); this.metricFilter = new MetricTransformer() .AddAllowedTags(new KeyValuePair <string, string>(MetricsConstants.MsTelemetry, true.ToString())) .AddTagsToRemove(MetricsConstants.MsTelemetry, MetricsConstants.IotHubLabel, MetricsConstants.DeviceIdLabel) .AddTagsToModify(("id", this.ReplaceDeviceId), ("module_name", name => name.CreateSha256())); }
public static async Task <bool> WaitForHostMetrics(IMetricsScraper scraper, CancellationToken cancellationToken) { TimeSpan maxWaitTime = TimeSpan.FromMinutes(2.5); TimeSpan frequency = TimeSpan.FromSeconds(10); for (int i = 0; i < maxWaitTime / frequency; i++) { if ((await scraper.ScrapeEndpointsAsync(cancellationToken)).Any(m => m.Name == "edgeAgent_used_cpu_percent" && m.Tags["module_name"] != "host")) { return(true); } await Task.Delay(frequency, cancellationToken); } return(false); }
protected override void Load(ContainerBuilder builder) { // IMetricsScraper builder.Register(c => new MetricsScraper(new string[] { "http://edgeHub:9600/metrics", "http://edgeAgent:9600/metrics" })) .As <IMetricsScraper>() .SingleInstance(); // Task<IMetricsStorage> builder.Register(async c => { IStoreProvider storeProvider = await c.Resolve <Task <IStoreProvider> >(); ISequentialStore <IEnumerable <Metric> > dataStore = await storeProvider.GetSequentialStore <IEnumerable <Metric> >("Metrics"); return(new MetricsStorage(dataStore) as IMetricsStorage); }) .As <Task <IMetricsStorage> >() .SingleInstance(); // IMetricsPublisher builder.RegisterType <EdgeRuntimeDiagnosticsUpload>() .As <IMetricsPublisher>() .SingleInstance(); // Task<MetricsWorker> builder.Register(async c => { IMetricsScraper scraper = c.Resolve <IMetricsScraper>(); IMetricsPublisher publisher = c.Resolve <IMetricsPublisher>(); Task <IMetricsStorage> storage = c.Resolve <Task <IMetricsStorage> >(); return(new MetricsWorker(scraper, await storage, publisher)); }) .As <Task <MetricsWorker> >() .SingleInstance(); base.Load(builder); }
public ValidateDocumentedMetrics(TestReporter testReporter, IMetricsScraper scraper, ModuleClient moduleClient) : base(testReporter, scraper, moduleClient) { }
public MetricsWorker(IMetricsScraper scraper, IMetricsStorage storage, IMetricsPublisher uploader) { this.scraper = Preconditions.CheckNotNull(scraper, nameof(scraper)); this.storage = Preconditions.CheckNotNull(storage, nameof(storage)); this.uploader = Preconditions.CheckNotNull(uploader, nameof(uploader)); this.metricFilter = new MetricTransformer() .AddAllowedTags((MetricsConstants.MsTelemetry, true.ToString())) .AddDisallowedTags( ("quantile", "0.1"), ("quantile", "0.5"), ("quantile", "0.99")) .AddTagsToRemove(MetricsConstants.MsTelemetry, MetricsConstants.IotHubLabel, MetricsConstants.DeviceIdLabel) .AddTagsToModify( ("id", this.ReplaceDeviceId), ("module_name", this.ReplaceModuleId), ("to", name => name.CreateSha256()), ("from", name => name.CreateSha256()), ("to_route_input", name => name.CreateSha256()), ("from_route_output", name => name.CreateSha256())); #pragma warning disable SA1111 // Closing parenthesis should be on line of last parameter this.metricAggregator = new MetricAggregator( new AggregationTemplate("edgehub_gettwin_total", "id", new Summer()), new AggregationTemplate( "edgehub_messages_received_total", ("route_output", new Summer()), ("id", new Summer()) ), new AggregationTemplate( "edgehub_messages_sent_total", ("from", new Summer()), ("to", new Summer()), ("from_route_output", new Summer()), ("to_route_input", new Summer()) ), new AggregationTemplate( new string[] { "edgehub_message_size_bytes", "edgehub_message_size_bytes_sum", "edgehub_message_size_bytes_count" }, "id", new Averager()), new AggregationTemplate( new string[] { "edgehub_message_process_duration_seconds", "edgehub_message_process_duration_seconds_sum", "edgehub_message_process_duration_seconds_count", }, ("from", new Averager()), ("to", new Averager()) ), new AggregationTemplate( "edgehub_direct_methods_total", ("from", new Summer()), ("to", new Summer()) ), new AggregationTemplate("edgehub_queue_length", "endpoint", new Summer()), new AggregationTemplate( new string[] { "edgehub_messages_dropped_total", "edgehub_messages_unack_total", }, ("from", new Summer()), ("from_route_output", new Summer()) ), new AggregationTemplate("edgehub_client_connect_failed_total", "id", new Summer()) ); #pragma warning restore SA1111 // Closing parenthesis should be on line of last parameter }
public MetricsWorker(IMetricsScraper scraper, IMetricsStorage storage, IMetricsPublisher uploader) { this.scraper = Preconditions.CheckNotNull(scraper, nameof(scraper)); this.storage = Preconditions.CheckNotNull(storage, nameof(storage)); this.uploader = Preconditions.CheckNotNull(uploader, nameof(uploader)); }
public MetricsScrapeAndUpload(IMetricsScraper scraper, IMetricsPublisher publisher, Dictionary <string, string> additionalTags) { this.scraper = Preconditions.CheckNotNull(scraper); this.publisher = Preconditions.CheckNotNull(publisher); this.additionalTags = Preconditions.CheckNotNull(additionalTags); }
public ValidateHostRanges(TestReporter testReporter, IMetricsScraper scraper, ModuleClient moduleClient) : base(testReporter, scraper, moduleClient) { }
public ValidateNumberOfMessagesSent(TestReporter testReporter, IMetricsScraper scraper, ModuleClient moduleClient) : base(testReporter, scraper, moduleClient) { }
public ValidateMessages(TestReporter testReporter, IMetricsScraper scraper, ModuleClient moduleClient, TransportType transportType) : base(testReporter, scraper, moduleClient) { this.transportType = transportType; }