public void Deserialize_MetricDefaults_UsesDefaultsDeserializer() { // Arrange const string config = @"version: v1 metricDefaults: aggregation: interval: '00:05:00'"; var yamlNode = YamlUtils.CreateYamlNode(config); var metricDefaults = new MetricDefaultsV1(); _defaultsDeserializer.Setup(d => d.Deserialize(It.IsAny <YamlMappingNode>())).Returns(metricDefaults); // Act var declaration = _deserializer.Deserialize(yamlNode); // Assert Assert.Same(metricDefaults, declaration.MetricDefaults); }
protected MetricDefaultsV1 GenerateBogusMetricDefaults(string defaultScrapingInterval) { var bogusAggregationGenerator = new Faker <AggregationV1>() .StrictMode(ensureRulesForAllProperties: true) .RuleFor(aggregation => aggregation.Interval, faker => TimeSpan.FromMinutes(faker.Random.Int())); var generatedAggregation = bogusAggregationGenerator.Generate(); var metricDefaults = new MetricDefaultsV1 { Aggregation = generatedAggregation, }; if (!string.IsNullOrWhiteSpace(defaultScrapingInterval)) { metricDefaults.Scraping.Schedule = defaultScrapingInterval; } return(metricDefaults); }
public MetricsDeclarationV1 InterpretYamlStream(YamlMappingNode rootNode) { AzureMetadataV1 azureMetadata = null; if (rootNode.Children.ContainsKey("azureMetadata")) { var azureMetadataNode = (YamlMappingNode)rootNode.Children[new YamlScalarNode("azureMetadata")]; var azureMetadataSerializer = new AzureMetadataDeserializer(Logger); azureMetadata = azureMetadataSerializer.Deserialize(azureMetadataNode); } MetricDefaultsV1 metricDefaults = null; if (rootNode.Children.ContainsKey("metricDefaults")) { var metricDefaultsNode = (YamlMappingNode)rootNode.Children[new YamlScalarNode("metricDefaults")]; var metricDefaultsSerializer = new MetricDefaultsDeserializer(Logger); metricDefaults = metricDefaultsSerializer.Deserialize(metricDefaultsNode); } List <MetricDefinitionV1> metrics = null; if (rootNode.Children.ContainsKey("metrics")) { var metricsNode = (YamlSequenceNode)rootNode.Children[new YamlScalarNode("metrics")]; var metricsDeserializer = new MetricsDeserializer(Logger); metrics = metricsDeserializer.Deserialize(metricsNode); } var metricsDeclaration = new MetricsDeclarationV1 { AzureMetadata = azureMetadata, MetricDefaults = metricDefaults, Metrics = metrics }; return(metricsDeclaration); }
public void MetricsDeclaration_WithInvalidDefaultMetricLimit_Fails(int metricLimit) { // Arrange var metricDefaults = new MetricDefaultsV1 { Scraping = new ScrapingV1 { Schedule = @"0 * * ? * *" }, Limit = metricLimit }; var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithDefaults(metricDefaults) .Build(_mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawDeclaration, _mapper); // Act var scrapingScheduleValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = scrapingScheduleValidationStep.Run(); // Assert PromitorAssert.ValidationFailed(validationResult); }
private MetricsDeclarationProviderStub CreateMetricsDeclarationProvider(string metricName, Dictionary <string, string> labels = null, Dictionary <string, string> defaultLabels = null) { var mapperConfiguration = new MapperConfiguration(c => c.AddProfile <V1MappingProfile>()); var mapper = mapperConfiguration.CreateMapper(); var metricBuilder = MetricsDeclarationBuilder.WithMetadata(); if (defaultLabels != null) { var defaults = new MetricDefaultsV1 { Labels = defaultLabels }; metricBuilder.WithDefaults(defaults); } var rawDeclaration = metricBuilder.WithServiceBusMetric(metricName, labels: labels) .Build(mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawDeclaration, mapper); return(metricsDeclarationProvider); }
protected void AssertMetricDefaults(Promitor.Core.Scraping.Configuration.Model.MetricsDeclaration deserializedConfiguration, MetricDefaultsV1 metricDefaults) { var deserializedMetricDefaults = deserializedConfiguration.MetricDefaults; Assert.NotNull(deserializedMetricDefaults); Assert.NotNull(deserializedMetricDefaults.Aggregation); Assert.Equal(metricDefaults.Aggregation.Interval, deserializedMetricDefaults.Aggregation.Interval); }
public MetricsDeclarationBuilder WithDefaults(MetricDefaultsV1 defaults) { _metricDefaults = defaults; return(this); }