diff --git a/src/main/java/com/github/johrstrom/collector/BaseCollectorConfig.java b/src/main/java/com/github/johrstrom/collector/BaseCollectorConfig.java index b107f0e..5ed41c3 100644 --- a/src/main/java/com/github/johrstrom/collector/BaseCollectorConfig.java +++ b/src/main/java/com/github/johrstrom/collector/BaseCollectorConfig.java @@ -127,13 +127,13 @@ public QuantileDefinition[] getQuantiles() { } } - public long getQuantileWindowLenght() { + public long getQuantileWindowLength() { String quantiles = getQuantileOrBucket(); if (quantiles == null || quantiles.isEmpty()) { return DEFAULT_QUANTILE_WINDOW_LENGHT; } else { - return QuantileDefinition.parseQuantilesWindowLenghtFromString(quantiles); + return QuantileDefinition.parseQuantilesWindowLengthFromString(quantiles); } } @@ -220,7 +220,7 @@ public static Summary newSummary(BaseCollectorConfig cfg) throws Exception { io.prometheus.client.Summary.Builder builder = new Summary.Builder() .name(cfg.getMetricName()) .help(cfg.getHelp()) - .maxAgeSeconds(cfg.getQuantileWindowLenght()); + .maxAgeSeconds(cfg.getQuantileWindowLength()); String[] labels = cfg.getLabels(); if(labels.length != 0) { @@ -370,7 +370,7 @@ public static class QuantileDefinition { public static final String QUANTILE_ERROR_SEPERATOR = ","; public static final String QUANTILE_DEFINITION_SEPERATOR = "|"; public static final String QUANTILE_DEFINITION_SEPERATOR_REGEX = "\\|"; - public static final String QUANTILE_LENGHT_SEPERATOR_REGEX = "\\;"; + public static final String QUANTILE_LENGTH_SEPERATOR_REGEX = "\\;"; QuantileDefinition(double quantile, double error) { this.quantile = quantile; @@ -421,7 +421,7 @@ public static String arrayToString(QuantileDefinition[] definitions) { } public static QuantileDefinition[] parseQuantilesFromString(String fullQuantileString) { - String quantileOnlyString = fullQuantileString.split(QUANTILE_LENGHT_SEPERATOR_REGEX)[0]; + String quantileOnlyString = fullQuantileString.split(QUANTILE_LENGTH_SEPERATOR_REGEX)[0]; String[] quantileDefStrings = quantileOnlyString.split(QUANTILE_DEFINITION_SEPERATOR_REGEX); List quantiles = new ArrayList(); @@ -444,8 +444,8 @@ public static QuantileDefinition[] parseQuantilesFromString(String fullQuantileS } - public static long parseQuantilesWindowLenghtFromString(String fullQuantileString) { - String[] quantileDefStrings = fullQuantileString.split(QUANTILE_LENGHT_SEPERATOR_REGEX); + public static long parseQuantilesWindowLengthFromString(String fullQuantileString) { + String[] quantileDefStrings = fullQuantileString.split(QUANTILE_LENGTH_SEPERATOR_REGEX); if (quantileDefStrings.length < 2) { log.debug("Using default quantile window lenght of " + DEFAULT_QUANTILE_WINDOW_LENGHT + " seconds"); return DEFAULT_QUANTILE_WINDOW_LENGHT; diff --git a/src/test/java/com/github/johrstrom/collector/BaseCollectorConfigTest.java b/src/test/java/com/github/johrstrom/collector/BaseCollectorConfigTest.java index ae88255..23eb586 100644 --- a/src/test/java/com/github/johrstrom/collector/BaseCollectorConfigTest.java +++ b/src/test/java/com/github/johrstrom/collector/BaseCollectorConfigTest.java @@ -63,6 +63,24 @@ public void parseMultipleQuantilesCorrectly() { Assert.assertEquals(0.999, quantiles[2].quantile,0.001); Assert.assertEquals(0.1, quantiles[2].error,0.001); } + + @Test + public void parseMultipleQuantilesWithWindowCorrectly() { + BaseCollectorConfig cfg = TestUtilities.simpleSummaryCfg(); + cfg.setQuantileOrBucket("0.95,0.1|0.99,0.1|0.999,0.1;60"); + + + QuantileDefinition[] quantiles = cfg.getQuantiles(); + Assert.assertEquals(3, quantiles.length); + Assert.assertEquals(0.95, quantiles[0].quantile,0.001); + Assert.assertEquals(0.1, quantiles[0].error,0.001); + Assert.assertEquals(0.99, quantiles[1].quantile,0.001); + Assert.assertEquals(0.1, quantiles[1].error,0.001); + Assert.assertEquals(0.999, quantiles[2].quantile,0.001); + Assert.assertEquals(0.1, quantiles[2].error,0.001); + + Assert.assertEquals(60, cfg.getQuantileWindowLength()); + } @Test public void parseQauntileFailsAndGivesDEFAULTs() { @@ -96,7 +114,6 @@ public void parseReturnsPartialForQuantiles() { Assert.assertEquals(0.1, quantiles[0].error,0.001); Assert.assertEquals(0.75, quantiles[1].quantile,0.001); Assert.assertEquals(0.1, quantiles[1].error,0.001); - } @Test @@ -192,5 +209,4 @@ public void setOfElementsTest() { Assert.assertEquals(leftHash, rightHash); } - }