public void Validate_NoHostIsConfigured_Succeeds(string host) { // Arrange var metricsDeclarationProvider = GetMetricDeclarationProvider(); var resourceDiscoveryConfiguration = CreateRuntimeConfiguration(); resourceDiscoveryConfiguration.Value.Host = host; // Act var azureAuthenticationValidationStep = new ResourceDiscoveryValidationStep(resourceDiscoveryConfiguration, metricsDeclarationProvider, NullLogger <ResourceDiscoveryValidationStep> .Instance); var validationResult = azureAuthenticationValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void ServiceBusNamespaceMetricsDeclaration_UseAllowedDimension_Succeeded() { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithServiceBusMetric(metricDimension: "OperationResult") .Build(Mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawDeclaration, Mapper); // Act var scrapingScheduleValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = scrapingScheduleValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void EventHubsMetricsDeclaration_UseEntityNameDimensionWithoutTopicName_Succeeded() { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithEventHubsMetric(metricDimension: "EntityName", topicName: string.Empty) .Build(Mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawDeclaration, Mapper); // Act var metricsDeclarationValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = metricsDeclarationValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void ServiceBusNamespaceMetricsDeclaration_UseEntityNameDimensionAndTopicName_Fails() { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithServiceBusMetric(queueName: string.Empty, topicName: "test-topic", metricDimension: "EntityName") .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); }
public void Validate_PortIsZero_Fails() { // Arrange var metricsDeclarationProvider = GetMetricDeclarationProvider(); var resourceDiscoveryConfiguration = CreateRuntimeConfiguration(); resourceDiscoveryConfiguration.Value.Port = 0; // Act var azureAuthenticationValidationStep = new ResourceDiscoveryValidationStep(resourceDiscoveryConfiguration, metricsDeclarationProvider, NullLogger <ResourceDiscoveryValidationStep> .Instance); var validationResult = azureAuthenticationValidationStep.Run(); // Assert PromitorAssert.ValidationFailed(validationResult); }
public void GenericMetricsDeclaration_DeclarationWithFilter_Succeeded() { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithGenericMetric(filter: "EntityName eq \'invoices\'") .Build(Mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawDeclaration, Mapper); // Act var scrapingScheduleValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = scrapingScheduleValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void ApplicationGatewayMetricsDeclaration_DeclarationWithoutMetricDescription_Succeeded() { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithApplicationGatewayMetric(metricDescription: string.Empty) .Build(Mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawDeclaration, Mapper); // Act var scrapingScheduleValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = scrapingScheduleValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void RedisCacheMetricsDeclaration_DeclarationWithoutResourceButWithResourceDiscoveryGroupInfo_Succeeds() { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithRedisCacheMetric(omitResource: true, resourceDiscoveryGroupName: "sample-collection") .Build(Mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawDeclaration, Mapper); // Act var scrapingScheduleValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = scrapingScheduleValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void RedisCacheMetricsDeclaration_DeclarationWithoutResourceAndResourceDiscoveryGroupInfo_Fails() { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithRedisCacheMetric(omitResource: true) .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); }
public void ConfigurationPath_FileExists_Succeeds() { // Arrange const string invalidConfigurationPath = "Files/valid-sample.yaml"; var configOptions = Options.Create(new MetricsConfiguration { AbsolutePath = invalidConfigurationPath }); // Act var scrapingScheduleValidationStep = new ConfigurationPathValidationStep(configOptions, NullLogger <ConfigurationPathValidationStep> .Instance); var validationResult = scrapingScheduleValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void DataShareMetricsDeclaration_DeclarationWithoutShareName_Succeeds() { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithDataShareMetric(shareName: string.Empty) .Build(Mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawDeclaration, Mapper); // Act var scrapingScheduleValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = scrapingScheduleValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void ConfigurationPath_FileDoesNotExist_Fails() { // Arrange const string validConfigurationPath = "Invalid"; var configOptions = Options.Create(new MetricsConfiguration { AbsolutePath = validConfigurationPath }); // Act var scrapingScheduleValidationStep = new ConfigurationPathValidationStep(configOptions, NullLogger <ConfigurationPathValidationStep> .Instance); var validationResult = scrapingScheduleValidationStep.Run(); // Assert PromitorAssert.ValidationFailed(validationResult); }
public void AutomationAccountMetricsDeclaration_DeclarationWithRunbookNameForUnsupportedMetric_Fails() { // Arrange var rawMetricsDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithAutomationAccountMetric(runbookName: "example-runbook", azureMetricName: "unsupported") .Build(Mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawMetricsDeclaration, Mapper); // Act var scrapingScheduleValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = scrapingScheduleValidationStep.Run(); // Assert PromitorAssert.ValidationFailed(validationResult); }
public void EventHubsMetricsDeclaration_UseEntityNameAsDimension_Blocked() { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithEventHubsMetric(metricDimension: "EntityName") .Build(Mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawDeclaration, Mapper); // Act var metricsDeclarationValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = metricsDeclarationValidationStep.Run(); // Assert PromitorAssert.ValidationFailed(validationResult); }
public void EventHubsMetricsDeclaration_DeclarationWithoutServiceBusNamespace_Fails() { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithEventHubsMetric(eventHubsNamespace: string.Empty) .Build(Mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawDeclaration, Mapper); // Act var metricsDeclarationValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = metricsDeclarationValidationStep.Run(); // Assert PromitorAssert.ValidationFailed(validationResult); }
public void AppPlanMetricsDeclaration_DeclarationWithInvalidMetricLimit_Fails(int metricLimit) { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithAppPlanMetric(azureMetricLimit: metricLimit) .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); }
public void BlobStorageMetricsDeclaration_ValidDeclarationWithTimeSpentInQueue_Succeeds() { // Arrange var rawMetricsDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithBlobStorageMetric(azureMetricName: AzureStorageConstants.Queues.Metrics.TimeSpentInQueue) .Build(Mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawMetricsDeclaration, Mapper); // Act var scrapingScheduleValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = scrapingScheduleValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void AppPlanMetricsDeclaration_ValidDeclaration_Succeeds() { // Arrange var rawMetricsDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithAppPlanMetric() .Build(Mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawMetricsDeclaration, Mapper); // Act var scrapingScheduleValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = scrapingScheduleValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void PostgreSqlMetricsDeclaration_DeclarationWithArcBasedServer_Fails() { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithPostgreSqlMetric(serverType: PostgreSqlServerType.Arc) .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); }
public void PostgreSqlMetricsDeclaration_DeclarationWithSpecificServerType_Succeeds(PostgreSqlServerType serverType) { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithPostgreSqlMetric(serverType: serverType) .Build(Mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawDeclaration, Mapper); // Act var scrapingScheduleValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = scrapingScheduleValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void RedisCacheMetricsDeclaration_DeclarationWithoutCacheName_Fails() { // Arrange var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithRedisCacheMetric(cacheName: string.Empty) .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); }
public void FileStorageMetricsDeclaration_ValidDeclarationWithAzureMetricNameInDifferentCasing_Succeeds() { // Arrange var azureMetricName = AzureStorageConstants.Queues.Metrics.MessageCount.ToUpper(); var rawMetricsDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithFileStorageMetric(azureMetricName: azureMetricName) .Build(Mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawMetricsDeclaration, Mapper); // Act var scrapingScheduleValidationStep = new MetricsDeclarationValidationStep(metricsDeclarationProvider, NullLogger <MetricsDeclarationValidationStep> .Instance); var validationResult = scrapingScheduleValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void Validate_EmptySubscriptionsAreConfigured_Fails() { // Arrange var azureLandscapeConfiguration = CreateLandscapeConfiguration(); azureLandscapeConfiguration.Value.Subscriptions = new List <string> { string.Empty }; // Act var azureLandscapeValidationStep = new AzureLandscapeValidationStep(azureLandscapeConfiguration, NullLogger <AzureLandscapeValidationStep> .Instance); var validationResult = azureLandscapeValidationStep.Run(); // Assert PromitorAssert.ValidationFailed(validationResult); }
public void Validate_NoResourceDiscoveryHostIsNotConfiguredButMetricWithDiscoveryIsDefined_Fails() { // Arrange var metricsDeclarationProvider = GetMetricDeclarationProvider(useDiscoveryGroup: true); var resourceDiscoveryConfiguration = CreateRuntimeConfiguration(); resourceDiscoveryConfiguration.Value.Host = string.Empty; // Act // ReSharper disable once ExpressionIsAlwaysNull var azureAuthenticationValidationStep = new ResourceDiscoveryValidationStep(resourceDiscoveryConfiguration, metricsDeclarationProvider, NullLogger <ResourceDiscoveryValidationStep> .Instance); var validationResult = azureAuthenticationValidationStep.Run(); // Assert PromitorAssert.ValidationFailed(validationResult); }
public void MetricsDeclaration_DeclarationWithDuplicateMetricNames_Fails() { // Arrange const string metricName = "my_metric"; var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithServiceBusMetric(metricName) .WithServiceBusMetric(metricName) .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); }
public void Validate_AtlassianStatuspageIsFullyConfigured_Success() { // Arrange const string metricName = "my_metric"; var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithServiceBusMetric(metricName) .Build(_mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawDeclaration, _mapper); var runtimeConfiguration = CreateRuntimeConfiguration(metricName); // Act var azureAuthenticationValidationStep = new AtlassianStatuspageMetricSinkValidationStep(runtimeConfiguration, metricsDeclarationProvider, NullLogger <AtlassianStatuspageMetricSinkValidationStep> .Instance); var validationResult = azureAuthenticationValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void SystemAssignedManagedIdentity_ValidWithoutApplicationKey_Succeeds() { // Arrange var inMemoryConfiguration = new Dictionary <string, string> { { ConfigurationKeys.Authentication.Mode, AuthenticationMode.SystemAssignedManagedIdentity.ToString() }, }; var config = CreateConfiguration(inMemoryConfiguration); // Act var azureAuthenticationValidationStep = new AzureAuthenticationValidationStep(config, NullLogger <AzureAuthenticationValidationStep> .Instance); var validationResult = azureAuthenticationValidationStep.Run(); // Assert PromitorAssert.ValidationIsSuccessful(validationResult); }
public void Validate_DuplicateSubscriptionsAreConfigured_Fails() { // Arrange var subscriptionId = Guid.NewGuid().ToString(); var azureLandscapeConfiguration = CreateLandscapeConfiguration(); azureLandscapeConfiguration.Value.Subscriptions = new List <string> { subscriptionId, subscriptionId }; // Act var azureLandscapeValidationStep = new AzureLandscapeValidationStep(azureLandscapeConfiguration, NullLogger <AzureLandscapeValidationStep> .Instance); var validationResult = azureLandscapeValidationStep.Run(); // Assert PromitorAssert.ValidationFailed(validationResult); }
public void Validate_AtlassianStatuspageWithPromitorMetricUsingResourceDiscovery_Fails() { // Arrange const string metricName = "my_metric"; const string resourceDiscoveryGroupName = "my_discovery_group"; var rawDeclaration = MetricsDeclarationBuilder.WithMetadata() .WithServiceBusMetric(resourceDiscoveryGroupName: resourceDiscoveryGroupName) .Build(_mapper); var metricsDeclarationProvider = new MetricsDeclarationProviderStub(rawDeclaration, _mapper); var runtimeConfiguration = CreateRuntimeConfiguration(metricName); // Act var azureAuthenticationValidationStep = new AtlassianStatuspageMetricSinkValidationStep(runtimeConfiguration, metricsDeclarationProvider, NullLogger <AtlassianStatuspageMetricSinkValidationStep> .Instance); var validationResult = azureAuthenticationValidationStep.Run(); // Assert PromitorAssert.ValidationFailed(validationResult); }
public void UserAssignedManagedIdentity_IdentityIdIsWhitespace_Fails() { // Arrange const string invalidApplicationId = " "; var inMemoryConfiguration = new Dictionary <string, string> { { ConfigurationKeys.Authentication.IdentityId, invalidApplicationId }, { ConfigurationKeys.Authentication.Mode, AuthenticationMode.UserAssignedManagedIdentity.ToString() }, }; var config = CreateConfiguration(inMemoryConfiguration); // Act var azureAuthenticationValidationStep = new AzureAuthenticationValidationStep(config, NullLogger <AzureAuthenticationValidationStep> .Instance); var validationResult = azureAuthenticationValidationStep.Run(); // Assert PromitorAssert.ValidationFailed(validationResult); }