/** * Tags additional metadata. Merges any new metadata with existing metadata, if present. * * @param meta Any Meta to add to the Clip. The objects in the Meta must be * serializable to JSON with {@link com.google.gson.Gson}. * @return This Clip for chaining */ public Clip add(Meta meta) { if (meta != null) { this.meta.merge(meta); } return this; }
/** * Returns the {@link Meta} of the result so far. See {@link #getResult()} for the full result with the data. * * @return The metadata part of the result. */ @Override public Meta getMetadata() { Meta meta; try { meta = window.getMetadata(); meta.merge(getResultMetadata()); } catch (RuntimeException e) { log.error("Unable to get metadata for query {}", this); meta = getErrorMeta(e); } return meta; }
private void emitRateLimitError(String id, Querier querier, RateLimitError error) { Metadata metadata = bufferedMetadata.get(id); Meta meta = error.makeMeta(); Clip clip = querier.finish(); clip.getMeta().merge(meta); emitResult(id, withSignal(metadata, Metadata.Signal.FAIL), clip); emitMetaSignal(id, Metadata.Signal.KILL); updateCount(rateExceededQueries, 1L); removeQuery(id); }
private void emitRateLimitError(String id, Querier querier, RateLimitError error) { Metadata metadata = bufferedMetadata.get(id); Meta meta = error.makeMeta(); Clip clip = querier.finish(); clip.getMeta().merge(meta); emitResult(id, withSignal(metadata, Metadata.Signal.FAIL), clip); emitMetaSignal(id, Metadata.Signal.KILL); updateCount(rateExceededQueries, 1L); removeQuery(id); }
/** * Return any {@link Meta} for this windowing scheme and the {@link Strategy}. * * @return A non-null Meta object. */ @Override public Meta getMetadata() { Meta meta = new Meta(); if (shouldMeta) { String key = getMetaKey(); if (key != null) { meta.add(key, getMetadata(metadataKeys)); } meta.merge(aggregation.getMetadata()); } return meta; }