@Bean Map<String, SignalFxScopeConfiguration> signalFxScopeConfigurationMap(SignalFxConfigurationProperties signalFxConfigurationProperties) { return signalFxConfigurationProperties.getAccounts().stream() .collect(Collectors.toMap(SignalFxManagedAccount::getName, accountConfig -> SignalFxScopeConfiguration.builder() .defaultScopeKey(accountConfig.getDefaultScopeKey()) .defaultLocationKey(accountConfig.getDefaultLocationKey()) .build())); }
@DataProvider public static Object[][] locationScopeProvider() { return new Object[][]{ { new SignalFxCanaryScope() .setScopeKey("version") .setLocationKey("region") .setScope("1.0.0") .setLocation("us-west-2") .setExtendedScopeParams(ImmutableMap.of( "env", "production", "_scope_key", "version", "_location_key", "region")), SignalFxScopeConfiguration.builder().build() }, { new SignalFxCanaryScope() .setScopeKey("version") .setScope("1.0.0") .setLocation("us-west-2") .setExtendedScopeParams(ImmutableMap.of("env", "production")), SignalFxScopeConfiguration.builder() .defaultLocationKey("region") .build() } }; } @Test
@Test public void test_that_if_a_default_scope_key_was_defined_it_is_used_if_not_overwritten() { String metricName = "request.count"; String aggregationMethod = "mean"; SignalFxCanaryScope scope = new SignalFxCanaryScope(); SignalFxScopeConfiguration scopeConfiguration = SignalFxScopeConfiguration.builder() .defaultScopeKey("server_group") .build(); scope.setScope("my_microservice-control-v1"); SimpleSignalFlowProgramBuilder builder = SimpleSignalFlowProgramBuilder .create(metricName, aggregationMethod, scopeConfiguration); builder.withScope(scope); String expected = "data('request.count', filter=" + "filter('server_group', 'my_microservice-control-v1'))" + ".mean(by=['server_group']).publish()"; assertEquals(expected, builder.build()); } }
@Bean Map<String, SignalFxScopeConfiguration> signalFxScopeConfigurationMap(SignalFxConfigurationProperties signalFxConfigurationProperties) { return signalFxConfigurationProperties.getAccounts().stream() .collect(Collectors.toMap(SignalFxManagedAccount::getName, accountConfig -> SignalFxScopeConfiguration.builder() .defaultScopeKey(accountConfig.getDefaultScopeKey()) .defaultLocationKey(accountConfig.getDefaultLocationKey()) .build())); }