@Override public String print(Duration object, Locale locale) { return object.toString(); }
@Override public String print(Duration object, Locale locale) { return object.toString(); }
@Override public void duration(QueryType query) { setDimension("duration", query.getDuration().toString()); }
/** * Creates a new {@link TimeBasedRetentionPolicy} using {@link #RETENTION_TIMEBASED_DURATION_KEY} in the * <code>config</code> * <ul> Some Example values for {@link #RETENTION_TIMEBASED_DURATION_KEY} are * <li> P20D = 20 Days * <li> P20H = 20 Hours * <li> P2Y = 2 Years * <li> P2Y3M = 2 Years and 3 Months * <li> PT23M = 23 Minutes (Note this is different from P23M which is 23 Months) * </ul> * * @param config that holds retention duration in ISO8061 format at key {@link #RETENTION_TIMEBASED_DURATION_KEY}. */ public TimeBasedRetentionPolicy(Config config) { this.retention = getDuration(config); log.info(String.format("%s will delete dataset versions older than %s.", TimeBasedRetentionPolicy.class.getName(), this.retention.toString())); }
MDC.put("hasFilters", Boolean.toString(query.hasFilters())); MDC.put("remoteAddr", requestLogLine.getRemoteAddr()); MDC.put("duration", query.getDuration().toString()); MDC.put("descending", Boolean.toString(query.isDescending())); if (setContextMDC) {
public static class TaskNotRunnableException extends RuntimeException { public TaskNotRunnableException(String message) { super(message); } }
public Optional<Violation> validate(IndexSetConfig newConfig) { // Build an example index name with the new prefix and check if this would be managed by an existing index set final String indexName = newConfig.indexPrefix() + MongoIndexSet.SEPARATOR + "0"; if (indexSetRegistry.isManagedIndex(indexName)) { return Optional.of(Violation.create("Index prefix \"" + newConfig.indexPrefix() + "\" would conflict with an existing index set!")); } // Check if an existing index set has a more generic index prefix. // Example: new=graylog_foo existing=graylog => graylog is more generic so this is an error // Example: new=gray existing=graylog => gray is more generic so this is an error // This avoids problems with wildcard matching like "graylog_*". for (final IndexSet indexSet : indexSetRegistry) { if (newConfig.indexPrefix().startsWith(indexSet.getIndexPrefix()) || indexSet.getIndexPrefix().startsWith(newConfig.indexPrefix())) { return Optional.of(Violation.create("Index prefix \"" + newConfig.indexPrefix() + "\" would conflict with existing index set prefix \"" + indexSet.getIndexPrefix() + "\"")); } } // Ensure fieldTypeRefreshInterval is not shorter than a second, as that may impact performance if (newConfig.fieldTypeRefreshInterval().isShorterThan(MINIMUM_FIELD_TYPE_REFRESH_INTERVAL)) { return Optional.of(Violation.create("Index field_type_refresh_interval \"" + newConfig.fieldTypeRefreshInterval().toString() + "\" is too short. It must be 1 second or longer.")); } return Optional.empty(); }
@Test public void testMinMaxDuration() { final Duration duration = Intervals.ETERNITY.toDuration(); Assert.assertEquals(Long.MAX_VALUE, duration.getMillis()); Assert.assertEquals("PT9223372036854775.807S", duration.toString()); }
try { final long sleepTime = jitter(delay.getMillis()); log.info("Will try again in [%s].", new Duration(sleepTime).toString()); Thread.sleep(sleepTime);
id, SeekableStreamIndexTaskRunner.Status.PAUSED, new Duration(sleepTime).toString() ); Thread.sleep(sleepTime);
Assert.assertEquals(expectedStringIntervals, actualEvent.get(DruidMetrics.INTERVAL)); Assert.assertEquals("false", actualEvent.get("hasFilters")); Assert.assertEquals(expectedIntervals.get(0).toDuration().toString(), actualEvent.get("duration")); Assert.assertEquals("", actualEvent.get(DruidMetrics.ID));
Assert.assertEquals(expectedStringIntervals, actualEvent.get(DruidMetrics.INTERVAL)); Assert.assertEquals("false", actualEvent.get("hasFilters")); Assert.assertEquals(expectedIntervals.get(0).toDuration().toString(), actualEvent.get("duration")); Assert.assertEquals("", actualEvent.get(DruidMetrics.ID));
Assert.assertEquals(expectedStringIntervals, actualEvent.get(DruidMetrics.INTERVAL)); Assert.assertEquals("false", actualEvent.get("hasFilters")); Assert.assertEquals(expectedIntervals.get(0).toDuration().toString(), actualEvent.get("duration")); Assert.assertEquals("", actualEvent.get(DruidMetrics.ID));
Assert.assertEquals(expectedStringIntervals, actualEvent.get(DruidMetrics.INTERVAL)); Assert.assertEquals("true", actualEvent.get("hasFilters")); Assert.assertEquals(expectedIntervals.get(0).toDuration().toString(), actualEvent.get("duration")); Assert.assertEquals("", actualEvent.get(DruidMetrics.ID)); Assert.assertEquals("query/time", actualEvent.get("metric"));
Assert.assertEquals(expectedStringIntervals, actualEvent.get(DruidMetrics.INTERVAL)); Assert.assertEquals("true", actualEvent.get("hasFilters")); Assert.assertEquals(expectedIntervals.get(0).toDuration().toString(), actualEvent.get("duration")); Assert.assertEquals("", actualEvent.get(DruidMetrics.ID));
Assert.assertEquals(Collections.singletonList(expectedInterval.toString()), actualEvent.get(DruidMetrics.INTERVAL)); Assert.assertEquals("true", actualEvent.get("hasFilters")); Assert.assertEquals(expectedInterval.toDuration().toString(), actualEvent.get("duration")); Assert.assertEquals("", actualEvent.get(DruidMetrics.ID));
@Override public void serialize(Duration value, JsonGenerator gen, SerializerProvider provider) throws IOException { if (_serializationShape(provider) == FORMAT_STRING) { gen.writeString(value.toString()); } else { gen.writeNumber(value.getMillis()); } } }
@Override public String toNonNullValue(Duration value) { return value.toString(); } }
@Override public void duration(QueryType query) { setDimension("duration", query.getDuration().toString()); }
@Override public void duration(QueryType query) { setDimension("duration", query.getDuration().toString()); }