@Test @UseDataProvider("locationScopeProvider") public void test_that_the_program_builder_builds_the_expected_program_when_location_is_provided( SignalFxCanaryScope scope, SignalFxScopeConfiguration scopeConfiguration) { String metricName = "request.count"; String aggregationMethod = "mean"; SimpleSignalFlowProgramBuilder builder = SimpleSignalFlowProgramBuilder .create(metricName, aggregationMethod, scopeConfiguration); builder.withQueryPair(new QueryPair("app", "cms")); builder.withQueryPair(new QueryPair("response_code", "400")); builder.withQueryPair(new QueryPair("uri", "/v2/auth/iam-principal")); builder.withScope(scope); String expected = "data('request.count', filter=" + "filter('app', 'cms') " + "and filter('response_code', '400') " + "and filter('uri', '/v2/auth/iam-principal') " + "and filter('version', '1.0.0') " + "and filter('region', 'us-west-2') " + "and filter('env', 'production'))" + ".mean(by=['env', 'region', 'version']).publish()"; assertEquals(expected, builder.build()); }
@Test public void test_that_the_program_builder_builds_the_expected_program_no_location_key() { String metricName = "request.count"; String aggregationMethod = "mean"; SignalFxCanaryScope scope = new SignalFxCanaryScope(); SignalFxScopeConfiguration scopeConfiguration = new SignalFxScopeConfiguration(); scope.setScope("1.0.0"); scope.setScopeKey("version"); scope.setExtendedScopeParams(ImmutableMap.of( "env", "production", "_scope_key", "version")); SimpleSignalFlowProgramBuilder builder = SimpleSignalFlowProgramBuilder .create(metricName, aggregationMethod, scopeConfiguration); builder.withQueryPair(new QueryPair("app", "cms")); builder.withQueryPair(new QueryPair("response_code", "400")); builder.withQueryPair(new QueryPair("uri", "/v2/auth/iam-principal")); builder.withScope(scope); String expected = "data('request.count', filter=" + "filter('app', 'cms') " + "and filter('response_code', '400') " + "and filter('uri', '/v2/auth/iam-principal') " + "and filter('version', '1.0.0') " + "and filter('env', 'production'))" + ".mean(by=['env', 'version']).publish()"; assertEquals(expected, builder.build()); }
@Test public void test_that_the_program_builder_builds_the_expected_program_with_extra_scope_qp_pairs() { String metricName = "request.count"; String aggregationMethod = "mean"; SignalFxCanaryScope scope = new SignalFxCanaryScope(); SignalFxScopeConfiguration scopeConfiguration = new SignalFxScopeConfiguration(); scope.setScope("1.0.0"); scope.setScopeKey("version"); scope.setExtendedScopeParams(ImmutableMap.of( "env", "production", "region", "us-west-2", "_scope_key", "version")); SimpleSignalFlowProgramBuilder builder = SimpleSignalFlowProgramBuilder .create(metricName, aggregationMethod, scopeConfiguration); builder.withQueryPair(new QueryPair("app", "cms")); builder.withQueryPair(new QueryPair("response_code", "400")); builder.withQueryPair(new QueryPair("uri", "/v2/auth/iam-principal")); builder.withScope(scope); String expected = "data('request.count', filter=" + "filter('app', 'cms') " + "and filter('response_code', '400') " + "and filter('uri', '/v2/auth/iam-principal') " + "and filter('version', '1.0.0') " + "and filter('env', 'production') " + "and filter('region', 'us-west-2'))" + ".mean(by=['env', 'region', 'version']).publish()"; assertEquals(expected, builder.build()); }
@Test public void test_that_the_program_builder_builds_the_expected_program_1_qp() { String metricName = "request.count"; String aggregationMethod = "mean"; SignalFxCanaryScope scope = new SignalFxCanaryScope(); SignalFxScopeConfiguration scopeConfiguration = new SignalFxScopeConfiguration(); scope.setScope("1.0.0"); scope.setScopeKey("version"); scope.setExtendedScopeParams(ImmutableMap.of( "env", "production", "_scope_key", "version")); SimpleSignalFlowProgramBuilder builder = SimpleSignalFlowProgramBuilder .create(metricName, aggregationMethod, scopeConfiguration); builder.withQueryPair(new QueryPair("app", "cms")); builder.withScope(scope); String expected = "data('request.count', filter=" + "filter('app', 'cms') " + "and filter('version', '1.0.0') " + "and filter('env', 'production'))" + ".mean(by=['env', 'version']).publish()"; assertEquals(expected, builder.build()); }