You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by xv...@apache.org on 2019/07/26 19:20:52 UTC
[incubator-druid] branch opencensus-ext created (now 493f861)
This is an automated email from the ASF dual-hosted git repository.
xvrl pushed a change to branch opencensus-ext
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git.
at 493f861 make checkstyle happy
This branch includes the following new commits:
new 1124418 Merge remote-tracking branch 'origin/master' into confluent-master
new 78fb4e1 add opencensus extension
new 493f861 make checkstyle happy
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org
[incubator-druid] 02/03: add opencensus extension
Posted by xv...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
xvrl pushed a commit to branch opencensus-ext
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
commit 78fb4e1a6c3508a56823a8d0252f6e82b573f2d0
Author: Sumit Arrawatia <su...@gmail.com>
AuthorDate: Thu May 16 23:23:58 2019 -0700
add opencensus extension
---
distribution/pom.xml | 2 +
extensions-contrib/opencensus-extensions/pom.xml | 132 ++++++++++
.../OpenCensusProtobufExtensionsModule.java | 49 ++++
.../protobuf/OpenCensusProtobufInputRowParser.java | 199 +++++++++++++++
.../org.apache.druid.initialization.DruidModule | 16 ++
.../OpenCensusProtobufInputRowParserTest.java | 267 +++++++++++++++++++++
pom.xml | 1 +
7 files changed, 666 insertions(+)
diff --git a/distribution/pom.xml b/distribution/pom.xml
index 17d0c35..5f5228f 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -359,6 +359,8 @@
<argument>org.apache.druid.extensions.contrib:druid-moving-average-query</argument>
<argument>-c</argument>
<argument>org.apache.druid.extensions.contrib:druid-tdigestsketch</argument>
+ <argument>-c</argument>
+ <argument>org.apache.druid.extensions.contrib:druid-opencensus-extensions</argument>
</arguments>
</configuration>
</execution>
diff --git a/extensions-contrib/opencensus-extensions/pom.xml b/extensions-contrib/opencensus-extensions/pom.xml
new file mode 100644
index 0000000..33c67ef
--- /dev/null
+++ b/extensions-contrib/opencensus-extensions/pom.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.druid.extensions.contrib</groupId>
+ <artifactId>druid-opencensus-extensions</artifactId>
+ <name>druid-opencensus-extensions</name>
+ <description>druid-opencensus-extensions</description>
+
+ <parent>
+ <artifactId>druid</artifactId>
+ <groupId>org.apache.druid</groupId>
+ <version>0.16.0-incubating-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+
+ <properties>
+ <protobuf.version>3.2.0</protobuf.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>io.opencensus</groupId>
+ <artifactId>opencensus-proto</artifactId>
+ <version>0.2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.druid</groupId>
+ <artifactId>druid-core</artifactId>
+ <version>${project.parent.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java</artifactId>
+ <version>${protobuf.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.protobuf</groupId>
+ <artifactId>protobuf-java-util</artifactId>
+ <version>${protobuf.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- test -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>3.0.0</version>
+ <configuration>
+ <createDependencyReducedPom>false</createDependencyReducedPom>
+ <relocations>
+ <relocation>
+ <pattern>com.google.protobuf</pattern>
+ <shadedPattern>shaded.com.google.protobuf</shadedPattern>
+ </relocation>
+ </relocations>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.0.2</version>
+ <configuration>
+ <nonFilteredFileExtensions>
+ <nonFilteredFileExtension>desc</nonFilteredFileExtension>
+ </nonFilteredFileExtensions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <profiles>
+ <profile>
+ <id>strict</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <compilerArgs>
+ <!-- protobuf compiler generated classes miss @Override, that is not easy to fix -->
+ <arg>-Xep:MissingOverride:WARN</arg>
+ </compilerArgs>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
diff --git a/extensions-contrib/opencensus-extensions/src/main/java/org/apache/druid/data/input/opencensus/protobuf/OpenCensusProtobufExtensionsModule.java b/extensions-contrib/opencensus-extensions/src/main/java/org/apache/druid/data/input/opencensus/protobuf/OpenCensusProtobufExtensionsModule.java
new file mode 100644
index 0000000..39576e4
--- /dev/null
+++ b/extensions-contrib/opencensus-extensions/src/main/java/org/apache/druid/data/input/opencensus/protobuf/OpenCensusProtobufExtensionsModule.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.druid.data.input.opencensus.protobuf;
+
+import com.fasterxml.jackson.databind.Module;
+import com.fasterxml.jackson.databind.jsontype.NamedType;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.google.inject.Binder;
+import org.apache.druid.initialization.DruidModule;
+
+import java.util.Collections;
+import java.util.List;
+
+public class OpenCensusProtobufExtensionsModule implements DruidModule
+{
+
+ @Override
+ public List<? extends Module> getJacksonModules()
+ {
+ return Collections.singletonList(
+ new SimpleModule("OpenCensusProtobufInputRowParserModule")
+ .registerSubtypes(
+ new NamedType(OpenCensusProtobufInputRowParser.class, "opencensus-protobuf")
+ )
+ );
+ }
+
+ @Override
+ public void configure(Binder binder)
+ {
+ }
+}
diff --git a/extensions-contrib/opencensus-extensions/src/main/java/org/apache/druid/data/input/opencensus/protobuf/OpenCensusProtobufInputRowParser.java b/extensions-contrib/opencensus-extensions/src/main/java/org/apache/druid/data/input/opencensus/protobuf/OpenCensusProtobufInputRowParser.java
new file mode 100644
index 0000000..53b447f
--- /dev/null
+++ b/extensions-contrib/opencensus-extensions/src/main/java/org/apache/druid/data/input/opencensus/protobuf/OpenCensusProtobufInputRowParser.java
@@ -0,0 +1,199 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.druid.data.input.opencensus.protobuf;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import com.google.protobuf.ByteString;
+import com.google.protobuf.InvalidProtocolBufferException;
+import io.opencensus.proto.metrics.v1.Metric;
+import io.opencensus.proto.metrics.v1.Point;
+import io.opencensus.proto.metrics.v1.TimeSeries;
+import org.apache.druid.data.input.ByteBufferInputRowParser;
+import org.apache.druid.data.input.InputRow;
+import org.apache.druid.data.input.MapBasedInputRow;
+import org.apache.druid.data.input.impl.ParseSpec;
+import org.apache.druid.java.util.common.logger.Logger;
+import org.apache.druid.java.util.common.parsers.ParseException;
+
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+public class OpenCensusProtobufInputRowParser implements ByteBufferInputRowParser
+{
+ private static final Logger LOG = new Logger(OpenCensusProtobufInputRowParser.class);
+
+ private static final String SEPARATOR = "-";
+ public static final String NAME = "name";
+ public static final String VALUE = "value";
+ public static final String TIMESTAMP_COLUMN = "timestamp";
+ private final ParseSpec parseSpec;
+ private final List<String> dimensions;
+
+ @JsonCreator
+ public OpenCensusProtobufInputRowParser(
+ @JsonProperty("parseSpec") ParseSpec parseSpec
+ )
+ {
+ this.parseSpec = parseSpec;
+ this.dimensions = parseSpec.getDimensionsSpec().getDimensionNames();
+ LOG.info("Creating Open Census Protobuf parser with spec:" + parseSpec);
+ }
+
+ @Override
+ public ParseSpec getParseSpec()
+ {
+ return parseSpec;
+ }
+
+ @Override
+ public OpenCensusProtobufInputRowParser withParseSpec(ParseSpec parseSpec)
+ {
+ return new OpenCensusProtobufInputRowParser(parseSpec);
+ }
+
+ @Override
+ public List<InputRow> parseBatch(ByteBuffer input)
+ {
+
+ Metric metric;
+ try {
+ metric = Metric.parseFrom(ByteString.copyFrom(input));
+ }
+ catch (InvalidProtocolBufferException e) {
+ throw new ParseException(e, "Protobuf message could not be parsed");
+ }
+
+ final List<String> dimensions;
+
+ if (!this.dimensions.isEmpty()) {
+ dimensions = this.dimensions;
+ } else {
+ Set<String> recordDimensions = metric.getMetricDescriptor().getLabelKeysList().stream()
+ .map(s -> s.getKey())
+ .collect(Collectors.toSet());
+ recordDimensions.add(NAME);
+ recordDimensions.add(VALUE);
+
+
+ dimensions = Lists.newArrayList(
+ Sets.difference(recordDimensions, parseSpec.getDimensionsSpec().getDimensionExclusions())
+ );
+ }
+
+ // Flatten out the OpenCensus record into druid rows.
+ List<InputRow> rows = new ArrayList<>();
+ for (TimeSeries ts : metric.getTimeseriesList()) {
+
+ HashMap<String, Object> labels = new HashMap<>();
+
+ // Add labels to record.
+ for (int i = 0; i < metric.getMetricDescriptor().getLabelKeysCount(); i++) {
+ labels.put(metric.getMetricDescriptor().getLabelKeys(i).getKey(), ts.getLabelValues(i).getValue());
+ }
+
+ // One row per timeseries- point.
+ for (Point point : ts.getPointsList()) {
+ // Time in millis
+ labels.put(TIMESTAMP_COLUMN, point.getTimestamp().getSeconds() * 1000);
+
+ switch (point.getValueCase()) {
+ case DOUBLE_VALUE:
+ HashMap<String, Object> doubleGauge = new HashMap<>();
+ doubleGauge.putAll(labels);
+ doubleGauge.put(NAME, metric.getMetricDescriptor().getName());
+ doubleGauge.put(VALUE, point.getDoubleValue());
+ rows.add(new MapBasedInputRow(
+ parseSpec.getTimestampSpec().extractTimestamp(doubleGauge),
+ dimensions,
+ doubleGauge
+ ));
+ break;
+ case INT64_VALUE:
+ HashMap<String, Object> intGauge = new HashMap<>();
+ intGauge.putAll(labels);
+ intGauge.put(VALUE, point.getInt64Value());
+ intGauge.put(NAME, metric.getMetricDescriptor().getName());
+ rows.add(new MapBasedInputRow(
+ parseSpec.getTimestampSpec().extractTimestamp(intGauge),
+ dimensions,
+ intGauge
+ ));
+ break;
+ case SUMMARY_VALUE:
+ // count
+ HashMap<String, Object> summaryCount = new HashMap<>();
+ summaryCount.putAll(labels);
+ summaryCount.put(NAME, metric.getMetricDescriptor().getName() + SEPARATOR + "count");
+ summaryCount.put(VALUE, point.getSummaryValue().getCount().getValue());
+ rows.add(new MapBasedInputRow(
+ parseSpec.getTimestampSpec().extractTimestamp(summaryCount),
+ dimensions,
+ summaryCount
+ ));
+
+ // sum
+ HashMap<String, Object> summarySum = new HashMap<>();
+ summarySum.putAll(labels);
+ summarySum.put(NAME, metric.getMetricDescriptor().getName() + SEPARATOR + "sum");
+ summarySum.put(VALUE, point.getSummaryValue().getSnapshot().getSum().getValue());
+ rows.add(new MapBasedInputRow(
+ parseSpec.getTimestampSpec().extractTimestamp(summarySum),
+ dimensions,
+ summarySum
+ ));
+
+ // TODO : Do we put percentiles into druid ?
+ break;
+ case DISTRIBUTION_VALUE:
+ // count
+ HashMap<String, Object> distCount = new HashMap<>();
+ distCount.put(NAME, metric.getMetricDescriptor().getName() + SEPARATOR + "count");
+ distCount.put(VALUE, point.getDistributionValue().getCount());
+ rows.add(new MapBasedInputRow(
+ parseSpec.getTimestampSpec().extractTimestamp(distCount),
+ dimensions,
+ distCount
+ ));
+
+ // sum
+ HashMap<String, Object> distSum = new HashMap<>();
+ distSum.put(NAME, metric.getMetricDescriptor().getName() + SEPARATOR + "sum");
+ distSum.put(VALUE, point.getDistributionValue().getSum());
+ rows.add(new MapBasedInputRow(
+ parseSpec.getTimestampSpec().extractTimestamp(distSum),
+ dimensions,
+ distSum
+ ));
+ // TODO: How to handle buckets ?
+ break;
+ }
+ }
+ }
+ return rows;
+ }
+
+}
diff --git a/extensions-contrib/opencensus-extensions/src/main/resources/META-INF/services/org.apache.druid.initialization.DruidModule b/extensions-contrib/opencensus-extensions/src/main/resources/META-INF/services/org.apache.druid.initialization.DruidModule
new file mode 100755
index 0000000..54b4400
--- /dev/null
+++ b/extensions-contrib/opencensus-extensions/src/main/resources/META-INF/services/org.apache.druid.initialization.DruidModule
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+org.apache.druid.data.input.opencensus.protobuf.OpenCensusProtobufExtensionsModule
\ No newline at end of file
diff --git a/extensions-contrib/opencensus-extensions/src/test/java/org/apache/druid/data/input/opencensus/protobuf/OpenCensusProtobufInputRowParserTest.java b/extensions-contrib/opencensus-extensions/src/test/java/org/apache/druid/data/input/opencensus/protobuf/OpenCensusProtobufInputRowParserTest.java
new file mode 100644
index 0000000..8e55755
--- /dev/null
+++ b/extensions-contrib/opencensus-extensions/src/test/java/org/apache/druid/data/input/opencensus/protobuf/OpenCensusProtobufInputRowParserTest.java
@@ -0,0 +1,267 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.druid.data.input.opencensus.protobuf;
+
+import com.google.common.collect.Lists;
+import com.google.protobuf.DoubleValue;
+import com.google.protobuf.Int64Value;
+import com.google.protobuf.Timestamp;
+import io.opencensus.proto.metrics.v1.LabelKey;
+import io.opencensus.proto.metrics.v1.LabelValue;
+import io.opencensus.proto.metrics.v1.Metric;
+import io.opencensus.proto.metrics.v1.MetricDescriptor;
+import io.opencensus.proto.metrics.v1.Point;
+import io.opencensus.proto.metrics.v1.SummaryValue;
+import io.opencensus.proto.metrics.v1.TimeSeries;
+import io.opencensus.proto.resource.v1.Resource;
+import org.apache.druid.data.input.InputRow;
+import org.apache.druid.data.input.impl.DimensionsSpec;
+import org.apache.druid.data.input.impl.JSONParseSpec;
+import org.apache.druid.data.input.impl.ParseSpec;
+import org.apache.druid.data.input.impl.TimestampSpec;
+import org.apache.druid.java.util.common.parsers.JSONPathFieldSpec;
+import org.apache.druid.java.util.common.parsers.JSONPathFieldType;
+import org.apache.druid.java.util.common.parsers.JSONPathSpec;
+import org.joda.time.DateTime;
+import org.joda.time.chrono.ISOChronology;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+import java.io.ByteArrayOutputStream;
+import java.nio.ByteBuffer;
+import java.util.Collections;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public class OpenCensusProtobufInputRowParserTest
+{
+ @Rule
+ public ExpectedException expectedException = ExpectedException.none();
+
+ private ParseSpec parseSpec;
+
+ @Before
+ public void setUp()
+ {
+ parseSpec = new JSONParseSpec(
+ new TimestampSpec("timestamp", "millis", null),
+ new DimensionsSpec(null, null, null),
+ new JSONPathSpec(
+ true,
+ Lists.newArrayList(
+ new JSONPathFieldSpec(JSONPathFieldType.ROOT, "name", ""),
+ new JSONPathFieldSpec(JSONPathFieldType.ROOT, "value", ""),
+ new JSONPathFieldSpec(JSONPathFieldType.ROOT, "foo_key", "")
+ )
+ ), null
+ );
+
+ }
+
+
+ @Test
+ public void testGaugeParse() throws Exception
+ {
+
+ //configure parser with desc file
+ OpenCensusProtobufInputRowParser parser = new OpenCensusProtobufInputRowParser(parseSpec);
+
+ DateTime dateTime = new DateTime(2019, 07, 12, 9, 30, ISOChronology.getInstanceUTC());
+
+ Timestamp timestamp = Timestamp.newBuilder().setSeconds(dateTime.getMillis() / 1000)
+ .setNanos((int) ((dateTime.getMillis() % 1000) * 1000000)).build();
+
+ System.out.println(timestamp.getSeconds() * 1000);
+
+ Metric d = doubleGaugeMetric(timestamp);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ d.writeTo(out);
+
+ InputRow row = parser.parseBatch(ByteBuffer.wrap(out.toByteArray())).get(0);
+ assertEquals(dateTime.getMillis(), row.getTimestampFromEpoch());
+
+ assertDimensionEquals(row, "name", "metric_gauge_double");
+ assertDimensionEquals(row, "foo_key", "foo_value");
+
+
+ assertEquals(2000, row.getMetric("value").doubleValue(), 0.0);
+ }
+
+ @Test
+ public void testSummaryParse() throws Exception
+ {
+ //configure parser with desc file
+ OpenCensusProtobufInputRowParser parser = new OpenCensusProtobufInputRowParser(parseSpec);
+
+ DateTime dateTime = new DateTime(2019, 07, 12, 9, 30, ISOChronology.getInstanceUTC());
+
+ Timestamp timestamp = Timestamp.newBuilder().setSeconds(dateTime.getMillis() / 1000)
+ .setNanos((int) ((dateTime.getMillis() % 1000) * 1000000)).build();
+
+ Metric d = summaryMetric(timestamp);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ d.writeTo(out);
+
+ List<InputRow> rows = parser.parseBatch(ByteBuffer.wrap(out.toByteArray()));
+
+ assertEquals(2, rows.size());
+
+ InputRow row = rows.get(0);
+ assertEquals(dateTime.getMillis(), row.getTimestampFromEpoch());
+ assertDimensionEquals(row, "name", "metric_summary-count");
+ assertDimensionEquals(row, "foo_key", "foo_value");
+ assertEquals(40, row.getMetric("value").doubleValue(), 0.0);
+
+ row = rows.get(1);
+ assertEquals(dateTime.getMillis(), row.getTimestampFromEpoch());
+ assertDimensionEquals(row, "name", "metric_summary-sum");
+ assertDimensionEquals(row, "foo_key", "foo_value");
+ assertEquals(10, row.getMetric("value").doubleValue(), 0.0);
+
+ }
+
+ private void assertDimensionEquals(InputRow row, String dimension, Object expected)
+ {
+ List<String> values = row.getDimension(dimension);
+
+ assertEquals(1, values.size());
+ assertEquals(expected, values.get(0));
+ }
+
+ private Metric doubleGaugeMetric(Timestamp timestamp)
+ {
+ Metric dist = Metric.newBuilder()
+ .setMetricDescriptor(
+ MetricDescriptor.newBuilder()
+ .setName("metric_gauge_double")
+ .setDescription("metric_gauge_double_description")
+ .setUnit("ms")
+ .setType(
+ MetricDescriptor.Type.GAUGE_DOUBLE)
+ .addLabelKeys(
+ LabelKey.newBuilder()
+ .setKey("foo_key")
+ .build())
+ .build())
+ .setResource(
+ Resource.newBuilder()
+ .setType("env")
+ .putAllLabels(Collections.singletonMap("env_key", "env_val"))
+ .build())
+ .addTimeseries(
+ TimeSeries.newBuilder()
+ .setStartTimestamp(timestamp)
+ .addLabelValues(
+ LabelValue.newBuilder()
+ .setHasValue(true)
+ .setValue("foo_value")
+ .build())
+ .addPoints(
+ Point.newBuilder()
+ .setTimestamp(timestamp)
+ .setDoubleValue(2000)
+ .build())
+ .build())
+ .build();
+
+ return dist;
+ }
+
+
+ private Metric summaryMetric(Timestamp timestamp)
+ {
+
+ SummaryValue.Snapshot snapshot = SummaryValue.Snapshot.newBuilder()
+ .setSum(DoubleValue.newBuilder().setValue(10).build())
+ .addPercentileValues(SummaryValue.Snapshot.ValueAtPercentile.newBuilder()
+ .setPercentile(50.0)
+ .setValue(10)
+ .build())
+ .addPercentileValues(SummaryValue.Snapshot.ValueAtPercentile.newBuilder()
+ .setPercentile(75.0)
+ .setValue(20)
+ .build())
+ .addPercentileValues(SummaryValue.Snapshot.ValueAtPercentile.newBuilder()
+ .setPercentile(95.0)
+ .setValue(30)
+ .build())
+ .addPercentileValues(SummaryValue.Snapshot.ValueAtPercentile.newBuilder()
+ .setPercentile(98.0)
+ .setValue(40)
+ .build())
+ .addPercentileValues(SummaryValue.Snapshot.ValueAtPercentile.newBuilder()
+ .setPercentile(99.0)
+ .setValue(50)
+ .build())
+ .addPercentileValues(SummaryValue.Snapshot.ValueAtPercentile.newBuilder()
+ .setPercentile(99.9)
+ .setValue(60)
+ .build())
+ .build();
+
+
+ SummaryValue summaryValue = SummaryValue.newBuilder()
+ .setCount(Int64Value.newBuilder().setValue(40).build())
+ .setSnapshot(snapshot)
+ .build();
+
+
+ Metric dist = Metric.newBuilder()
+ .setMetricDescriptor(
+ MetricDescriptor.newBuilder()
+ .setName("metric_summary")
+ .setDescription("metric_summary_description")
+ .setUnit("ms")
+ .setType(
+ MetricDescriptor.Type.SUMMARY)
+ .addLabelKeys(
+ LabelKey.newBuilder()
+ .setKey("foo_key")
+ .build())
+ .build())
+ .setResource(
+ Resource.newBuilder()
+ .setType("env")
+ .putAllLabels(Collections.singletonMap("env_key", "env_val"))
+ .build())
+ .addTimeseries(
+ TimeSeries.newBuilder()
+ .setStartTimestamp(timestamp)
+ .addLabelValues(
+ LabelValue.newBuilder()
+ .setHasValue(true)
+ .setValue("foo_value")
+ .build())
+ .addPoints(
+ Point.newBuilder()
+ .setTimestamp(timestamp)
+ .setSummaryValue(summaryValue)
+ .build())
+ .build())
+ .build();
+
+ return dist;
+ }
+
+
+}
diff --git a/pom.xml b/pom.xml
index 1a802c9..d767383 100644
--- a/pom.xml
+++ b/pom.xml
@@ -172,6 +172,7 @@
<module>extensions-contrib/moving-average-query</module>
<module>extensions-contrib/tdigestsketch</module>
<module>extensions-contrib/influxdb-emitter</module>
+ <module>extensions-contrib/opencensus-extensions</module>
<!-- distribution packaging -->
<module>distribution</module>
</modules>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org
[incubator-druid] 03/03: make checkstyle happy
Posted by xv...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
xvrl pushed a commit to branch opencensus-ext
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
commit 493f861f2e3590223b342690bb848f5f529f4a0a
Author: Xavier Léauté <xv...@apache.org>
AuthorDate: Fri Jul 26 12:20:23 2019 -0700
make checkstyle happy
---
.../OpenCensusProtobufInputRowParserTest.java | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/extensions-contrib/opencensus-extensions/src/test/java/org/apache/druid/data/input/opencensus/protobuf/OpenCensusProtobufInputRowParserTest.java b/extensions-contrib/opencensus-extensions/src/test/java/org/apache/druid/data/input/opencensus/protobuf/OpenCensusProtobufInputRowParserTest.java
index 8e55755..f664ab5 100644
--- a/extensions-contrib/opencensus-extensions/src/test/java/org/apache/druid/data/input/opencensus/protobuf/OpenCensusProtobufInputRowParserTest.java
+++ b/extensions-contrib/opencensus-extensions/src/test/java/org/apache/druid/data/input/opencensus/protobuf/OpenCensusProtobufInputRowParserTest.java
@@ -41,6 +41,7 @@ import org.apache.druid.java.util.common.parsers.JSONPathFieldType;
import org.apache.druid.java.util.common.parsers.JSONPathSpec;
import org.joda.time.DateTime;
import org.joda.time.chrono.ISOChronology;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -51,8 +52,6 @@ import java.nio.ByteBuffer;
import java.util.Collections;
import java.util.List;
-import static org.junit.Assert.assertEquals;
-
public class OpenCensusProtobufInputRowParserTest
{
@Rule
@@ -98,13 +97,13 @@ public class OpenCensusProtobufInputRowParserTest
d.writeTo(out);
InputRow row = parser.parseBatch(ByteBuffer.wrap(out.toByteArray())).get(0);
- assertEquals(dateTime.getMillis(), row.getTimestampFromEpoch());
+ Assert.assertEquals(dateTime.getMillis(), row.getTimestampFromEpoch());
assertDimensionEquals(row, "name", "metric_gauge_double");
assertDimensionEquals(row, "foo_key", "foo_value");
- assertEquals(2000, row.getMetric("value").doubleValue(), 0.0);
+ Assert.assertEquals(2000, row.getMetric("value").doubleValue(), 0.0);
}
@Test
@@ -124,19 +123,19 @@ public class OpenCensusProtobufInputRowParserTest
List<InputRow> rows = parser.parseBatch(ByteBuffer.wrap(out.toByteArray()));
- assertEquals(2, rows.size());
+ Assert.assertEquals(2, rows.size());
InputRow row = rows.get(0);
- assertEquals(dateTime.getMillis(), row.getTimestampFromEpoch());
+ Assert.assertEquals(dateTime.getMillis(), row.getTimestampFromEpoch());
assertDimensionEquals(row, "name", "metric_summary-count");
assertDimensionEquals(row, "foo_key", "foo_value");
- assertEquals(40, row.getMetric("value").doubleValue(), 0.0);
+ Assert.assertEquals(40, row.getMetric("value").doubleValue(), 0.0);
row = rows.get(1);
- assertEquals(dateTime.getMillis(), row.getTimestampFromEpoch());
+ Assert.assertEquals(dateTime.getMillis(), row.getTimestampFromEpoch());
assertDimensionEquals(row, "name", "metric_summary-sum");
assertDimensionEquals(row, "foo_key", "foo_value");
- assertEquals(10, row.getMetric("value").doubleValue(), 0.0);
+ Assert.assertEquals(10, row.getMetric("value").doubleValue(), 0.0);
}
@@ -144,8 +143,8 @@ public class OpenCensusProtobufInputRowParserTest
{
List<String> values = row.getDimension(dimension);
- assertEquals(1, values.size());
- assertEquals(expected, values.get(0));
+ Assert.assertEquals(1, values.size());
+ Assert.assertEquals(expected, values.get(0));
}
private Metric doubleGaugeMetric(Timestamp timestamp)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org
[incubator-druid] 01/03: Merge remote-tracking branch
'origin/master' into confluent-master
Posted by xv...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
xvrl pushed a commit to branch opencensus-ext
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
commit 1124418d7ec3cf0858b9d23d9490029e55f132a2
Merge: 574634e 0695e48
Author: Xavier Léauté <xv...@apache.org>
AuthorDate: Wed Jul 24 15:00:55 2019 -0700
Merge remote-tracking branch 'origin/master' into confluent-master
.github/ISSUE_TEMPLATE/problem_report.md | 1 +
.github/pull_request_template.md | 62 +
.github/stale.yml | 99 +-
.idea/inspectionProfiles/Druid.xml | 29 +-
.travis.yml | 34 +-
CONTRIBUTING.md | 4 -
LICENSE | 2 +-
LICENSE.BINARY | 1265 --------
NOTICE | 62 +-
NOTICE.BINARY | 945 +-----
README.md | 2 +-
benchmarks/pom.xml | 12 +
.../benchmark/ExpressionAggregationBenchmark.java | 21 +-
.../benchmark/ExpressionSelectorBenchmark.java | 21 +-
.../druid/benchmark/FilterPartitionBenchmark.java | 5 +-
.../benchmark/FilteredAggregatorBenchmark.java | 40 +-
.../benchmark/GroupByTypeInterfaceBenchmark.java | 9 +-
.../benchmark/TopNTypeInterfaceBenchmark.java | 9 +-
.../benchmark/datagen/BenchmarkColumnSchema.java | 22 +
.../benchmark/datagen/BenchmarkSchemaInfo.java | 11 +
.../druid/benchmark/datagen/BenchmarkSchemas.java | 2 +-
.../druid/benchmark/datagen/SegmentGenerator.java | 130 +-
.../indexing/IncrementalIndexReadBenchmark.java | 5 +-
.../indexing/IndexIngestionBenchmark.java | 3 +-
.../benchmark/indexing/IndexMergeBenchmark.java | 5 +-
.../benchmark/indexing/IndexPersistBenchmark.java | 5 +-
.../query/CachingClusteredClientBenchmark.java | 569 ++++
.../druid/benchmark/query/GroupByBenchmark.java | 61 +-
.../druid/benchmark/query/QueryBenchmarkUtil.java | 5 +-
.../druid/benchmark/query/ScanBenchmark.java | 12 +-
.../druid/benchmark/query/SearchBenchmark.java | 12 +-
.../druid/benchmark/query/SelectBenchmark.java | 10 +-
.../benchmark/query/SerializingQueryRunner.java | 5 +-
.../apache/druid/benchmark/query/SqlBenchmark.java | 209 +-
.../benchmark/query/SqlVsNativeBenchmark.java | 173 ++
.../druid/benchmark/query/TimeseriesBenchmark.java | 11 +-
.../druid/benchmark/query/TopNBenchmark.java | 11 +-
.../query/timecompare/TimeCompareBenchmark.java | 10 +-
.../NewestSegmentFirstPolicyBenchmark.java | 14 +-
benchmarks/src/main/resources/log4j2.xml | 32 +
build.sh | 27 +
codestyle/checkstyle-suppressions.xml | 3 -
codestyle/druid-forbidden-apis.txt | 4 +-
codestyle/spotbugs-exclude.xml | 7 -
.../druid/collections/CombiningIterable.java | 51 +-
.../druid/collections/CombiningIterator.java | 30 +-
.../druid/collections/OrderedMergeIterator.java | 139 -
.../druid/collections/OrderedMergeSequence.java | 212 --
.../apache/druid/common/config/NullHandling.java | 2 +-
.../druid/common/guava/CombiningSequence.java | 24 +-
.../org/apache/druid/common/guava/GuavaUtils.java | 17 +-
.../apache/druid/data/input/FirehoseFactoryV2.java | 51 -
.../org/apache/druid/data/input/FirehoseV2.java | 91 -
.../apache/druid/guice/GuiceInjectableValues.java | 2 +-
.../apache/druid/java/util/common/FileUtils.java | 8 +
.../druid/java/util/common/guava/BaseSequence.java | 29 +-
.../java/util/common/guava/FilteredSequence.java | 4 +-
.../util/common/guava/FilteringAccumulator.java | 4 +-
.../common/guava/FilteringYieldingAccumulator.java | 4 +-
.../druid/java/util/common/guava/Sequence.java | 11 +-
.../druid/java/util/common/guava/Sequences.java | 2 +-
.../java/util/common/guava/nary/BinaryFn.java | 27 -
.../common/guava/nary/SortedMergeIterator.java | 105 -
.../java/util/common/lifecycle/Lifecycle.java | 6 +-
.../druid/java/util/common/logger/Logger.java | 5 +
.../druid/java/util/emitter/EmittingLogger.java | 14 +-
.../client/response/StatusResponseHandler.java | 17 +-
.../org/apache/druid/math/expr/ApplyFunction.java | 28 +-
.../main/java/org/apache/druid/math/expr/Expr.java | 301 +-
.../java/org/apache/druid/math/expr/ExprEval.java | 18 +-
.../apache/druid/math/expr/ExprListenerImpl.java | 72 +-
.../org/apache/druid/math/expr/ExprMacroTable.java | 17 +-
.../java/org/apache/druid/math/expr/Function.java | 249 +-
.../java/org/apache/druid/math/expr/Parser.java | 105 +-
.../druid/metadata/DefaultPasswordProvider.java | 2 +-
.../org/apache/druid/timeline/TimelineLookup.java | 3 +-
.../druid/timeline/VersionedIntervalTimeline.java | 65 +-
.../partition/ImmutablePartitionHolder.java | 4 +-
.../druid/timeline/partition/PartitionHolder.java | 52 +-
.../org/apache/druid/utils/CollectionUtils.java | 33 +
.../java/org/apache/druid/utils/package-info.java | 23 +
.../apache/druid/collections/BlockingPoolTest.java | 178 +-
.../druid/collections/CombiningIteratorTest.java | 16 +-
.../collections/OrderedMergeIteratorTest.java | 190 --
.../collections/OrderedMergeSequenceTest.java | 350 ---
.../druid/common/guava/ComplexSequenceTest.java | 34 +-
.../common/guava/nary/SortedMergeIteratorTest.java | 55 -
.../emitter/core/ParametrizedUriEmitterTest.java | 18 +-
.../java/util/http/client/FriendlyServersTest.java | 14 +-
.../java/util/http/client/JankyServersTest.java | 15 +-
.../apache/druid/math/expr/ApplyFunctionTest.java | 16 +-
.../org/apache/druid/math/expr/FunctionTest.java | 47 +-
.../org/apache/druid/math/expr/ParserTest.java | 59 +-
.../timeline/VersionedIntervalTimelineTest.java | 32 +-
.../partition/IntegerPartitionChunkTest.java | 80 +-
.../partition/StringPartitionChunkTest.java | 86 +-
dev/code-review/concurrency.md | 199 ++
dev/committer-instructions.md | 55 +-
dev/intellij-sdk-config.jpg | Bin 1043813 -> 885115 bytes
dev/teamcity.md | 4 +-
distribution/docker/docker-compose.yml | 16 +
distribution/pom.xml | 26 +-
docs/_bin/generate-license-dependency-reports.py | 97 +-
docs/_bin/generate-license.py | 568 ++++
docs/_redirects.json | 15 +-
docs/content/configuration/index.md | 11 +-
docs/content/configuration/realtime.md | 98 -
docs/content/dependencies/zookeeper.md | 4 +-
docs/content/design/realtime.md | 80 -
.../extensions-contrib/distinctcount.md | 4 +-
.../development/extensions-contrib/influx.md | 2 +
.../development/extensions-contrib/kafka-simple.md | 56 -
.../extensions-contrib/materialized-view.md | 3 +
.../extensions-contrib/momentsketch-quantiles.md | 6 +
.../extensions-contrib/moving-average-query.md | 9 +
.../development/extensions-contrib/rabbitmq.md | 81 -
.../development/extensions-contrib/rocketmq.md | 29 -
.../extensions-contrib/tdigestsketch-quantiles.md | 5 +
.../extensions-core/approximate-histograms.md | 2 +
.../extensions-core/datasketches-hll.md | 7 +-
.../extensions-core/datasketches-theta.md | 12 +
.../extensions-core/druid-basic-security.md | 5 +
.../development/extensions-core/druid-lookups.md | 1 +
.../extensions-core/kafka-eight-firehose.md | 54 -
.../development/extensions-core/kafka-ingestion.md | 3 +-
.../extensions-core/kinesis-ingestion.md | 3 +-
docs/content/development/extensions-core/orc.md | 4 +
docs/content/development/extensions.md | 7 +-
docs/content/development/overview.md | 3 +-
docs/content/ingestion/delete-data.md | 3 +-
docs/content/ingestion/firehose.md | 127 +-
docs/content/ingestion/hadoop.md | 3 +-
docs/content/ingestion/ingestion-spec.md | 2 -
docs/content/ingestion/native_tasks.md | 10 +
docs/content/ingestion/standalone-realtime.md | 46 +
docs/content/ingestion/stream-pull.md | 376 ---
docs/content/misc/math-expr.md | 55 +-
docs/content/operations/api-reference.md | 32 +-
docs/content/operations/pull-deps.md | 17 +-
docs/content/querying/filters.md | 6 +
docs/content/querying/granularities.md | 9 +-
docs/content/querying/multi-value-dimensions.md | 28 +-
docs/content/querying/query-context.md | 28 +
docs/content/querying/sql.md | 158 +-
.../img/tutorial-batch-data-loader-01.png | Bin 99355 -> 56488 bytes
.../img/tutorial-batch-data-loader-02.png | Bin 521148 -> 360295 bytes
.../img/tutorial-batch-data-loader-03.png | Bin 217008 -> 137443 bytes
.../img/tutorial-batch-data-loader-04.png | Bin 261225 -> 167252 bytes
.../img/tutorial-batch-data-loader-05.png | Bin 256368 -> 162488 bytes
.../img/tutorial-batch-data-loader-06.png | Bin 105983 -> 64301 bytes
.../img/tutorial-batch-data-loader-07.png | Bin 81399 -> 46529 bytes
.../img/tutorial-batch-data-loader-08.png | Bin 162397 -> 103928 bytes
.../img/tutorial-batch-data-loader-09.png | Bin 107662 -> 63348 bytes
.../img/tutorial-batch-data-loader-10.png | Bin 79080 -> 44516 bytes
.../img/tutorial-batch-data-loader-11.png | Bin 133329 -> 83288 bytes
.../img/tutorial-batch-submit-task-01.png | Bin 113916 -> 69356 bytes
.../img/tutorial-batch-submit-task-02.png | Bin 136268 -> 86076 bytes
.../tutorials/img/tutorial-compaction-01.png | Bin 55153 -> 35710 bytes
.../tutorials/img/tutorial-compaction-02.png | Bin 279736 -> 166571 bytes
.../tutorials/img/tutorial-compaction-03.png | Bin 40114 -> 26755 bytes
.../tutorials/img/tutorial-compaction-04.png | Bin 312142 -> 184365 bytes
.../tutorials/img/tutorial-compaction-05.png | Bin 39784 -> 26588 bytes
.../tutorials/img/tutorial-compaction-06.png | Bin 351505 -> 206717 bytes
.../tutorials/img/tutorial-compaction-07.png | Bin 40106 -> 26683 bytes
.../tutorials/img/tutorial-compaction-08.png | Bin 43257 -> 28751 bytes
.../content/tutorials/img/tutorial-deletion-01.png | Bin 72062 -> 43586 bytes
.../content/tutorials/img/tutorial-deletion-02.png | Bin 810422 -> 439602 bytes
.../content/tutorials/img/tutorial-deletion-03.png | Bin 805673 -> 437304 bytes
docs/content/tutorials/img/tutorial-kafka-01.png | Bin 136317 -> 85477 bytes
docs/content/tutorials/img/tutorial-kafka-02.png | Bin 125452 -> 75709 bytes
docs/content/tutorials/img/tutorial-query-01.png | Bin 153120 -> 100930 bytes
docs/content/tutorials/img/tutorial-query-02.png | Bin 129962 -> 83369 bytes
docs/content/tutorials/img/tutorial-query-03.png | Bin 106082 -> 65038 bytes
docs/content/tutorials/img/tutorial-query-04.png | Bin 108331 -> 66423 bytes
docs/content/tutorials/img/tutorial-query-05.png | Bin 87070 -> 51855 bytes
docs/content/tutorials/img/tutorial-query-06.png | Bin 130612 -> 82211 bytes
docs/content/tutorials/img/tutorial-query-07.png | Bin 125457 -> 78633 bytes
.../tutorials/img/tutorial-quickstart-01.png | Bin 56955 -> 29834 bytes
.../tutorials/img/tutorial-retention-00.png | Bin 138304 -> 77704 bytes
.../tutorials/img/tutorial-retention-01.png | Bin 53955 -> 35171 bytes
.../tutorials/img/tutorial-retention-02.png | Bin 410930 -> 240310 bytes
.../tutorials/img/tutorial-retention-03.png | Bin 44144 -> 30029 bytes
.../tutorials/img/tutorial-retention-04.png | Bin 67493 -> 44617 bytes
.../tutorials/img/tutorial-retention-05.png | Bin 61639 -> 38992 bytes
.../tutorials/img/tutorial-retention-06.png | Bin 233034 -> 137570 bytes
docs/content/tutorials/tutorial-batch-hadoop.md | 2 +-
docs/content/tutorials/tutorial-delete-data.md | 2 +-
docs/content/tutorials/tutorial-tranquility.md | 2 +-
docs/img/druid-architecture.png | Bin 207086 -> 134117 bytes
docs/img/druid-column-types.png | Bin 103962 -> 93363 bytes
docs/img/druid-dataflow-2x.png | Bin 141623 -> 130160 bytes
docs/img/druid-dataflow-3.png | Bin 90365 -> 71425 bytes
docs/img/druid-manage-1.png | Bin 111559 -> 80415 bytes
docs/img/druid-production.png | Bin 51195 -> 40124 bytes
docs/img/druid-timeline.png | Bin 36729 -> 24160 bytes
docs/img/indexing_service.png | Bin 48510 -> 22490 bytes
docs/img/segmentPropagation.png | Bin 64451 -> 30569 bytes
examples/pom.xml | 134 -
.../apache/druid/examples/ExamplesDruidModule.java | 56 -
.../twitter/TwitterSpritzerFirehoseFactory.java | 387 ---
.../druid/examples/wikipedia/IrcDecoder.java | 34 -
.../examples/wikipedia/IrcFirehoseFactory.java | 256 --
.../examples/wikipedia/IrcInputRowParser.java | 107 -
.../examples/wikipedia/WikipediaIrcDecoder.java | 307 --
.../org.apache.druid.initialization.DruidModule | 16 -
.../ambari/metrics/AmbariMetricsEmitter.java | 3 -
.../druid/storage/azure/AzureByteSourceTest.java | 7 +-
.../storage/azure/AzureDataSegmentKillerTest.java | 24 +-
.../storage/azure/AzureDataSegmentPullerTest.java | 20 +-
.../storage/azure/AzureDataSegmentPusherTest.java | 16 +-
.../druid/storage/azure/AzureTaskLogsTest.java | 24 +-
.../cloudfiles/CloudFilesByteSourceTest.java | 25 +-
.../cloudfiles/CloudFilesObjectApiProxyTest.java | 21 +-
.../distinctcount/DistinctCountTopNQueryTest.java | 6 +-
extensions-contrib/druid-rocketmq/pom.xml | 58 -
.../firehose/rocketmq/RocketMQDruidModule.java | 50 -
.../firehose/rocketmq/RocketMQFirehoseFactory.java | 584 ----
.../druid/data/input/influx/InfluxParserTest.java | 42 +-
.../kafka-eight-simpleConsumer/pom.xml | 89 -
.../kafka/KafkaEightSimpleConsumerDruidModule.java | 49 -
.../KafkaEightSimpleConsumerFirehoseFactory.java | 350 ---
.../druid/firehose/kafka/KafkaSimpleConsumer.java | 390 ---
.../org.apache.druid.initialization.DruidModule | 16 -
.../MaterializedViewSupervisor.java | 4 +-
.../MaterializedViewSupervisorSpec.java | 1 +
.../MaterializedViewSupervisorSpecTest.java | 99 +-
.../MaterializedViewSupervisorTest.java | 65 +-
.../MaterializedViewQueryQueryToolChest.java | 7 +-
.../MaterializedViewQueryRunner.java | 5 +-
.../materializedview/DatasourceOptimizerTest.java | 111 +-
.../MaterializedViewQueryTest.java | 36 +-
.../momentsketch/MomentSketchModule.java | 4 +-
.../momentsketch/MomentSketchWrapperTest.java | 9 +-
.../aggregator/MomentsSketchAggregatorTest.java | 23 +-
.../movingaverage/MovingAverageQueryRunner.java | 20 +-
.../movingaverage/MovingAverageIterableTest.java | 521 ++--
.../movingaverage/MovingAverageQueryTest.java | 80 +-
.../PostAveragerAggregatorCalculatorTest.java | 29 +-
.../query/movingaverage/RowBucketIterableTest.java | 224 +-
.../averagers/BaseAveragerFactoryTest.java | 12 +-
.../movingaverage/averagers/BaseAveragerTest.java | 87 +-
.../averagers/DoubleMaxAveragerFactoryTest.java | 10 +-
.../averagers/DoubleMaxAveragerTest.java | 19 +-
.../averagers/DoubleMeanAveragerFactoryTest.java | 9 +-
.../averagers/DoubleMeanAveragerTest.java | 20 +-
.../DoubleMeanAveragerWithPeriodTest.java | 15 +-
.../DoubleMeanNoNullAveragerFactoryTest.java | 9 +-
.../averagers/DoubleMeanNoNullAveragerTest.java | 25 +-
.../averagers/DoubleMinAveragerFactoryTest.java | 9 +-
.../averagers/DoubleMinAveragerTest.java | 17 +-
.../averagers/LongMaxAveragerFactoryTest.java | 9 +-
.../averagers/LongMaxAveragerTest.java | 19 +-
.../averagers/LongMeanAveragerFactoryTest.java | 9 +-
.../averagers/LongMeanAveragerTest.java | 17 +-
.../LongMeanNoNullAveragerFactoryTest.java | 9 +-
.../averagers/LongMeanNoNullAveragerTest.java | 18 +-
.../averagers/LongMinAveragerFactoryTest.java | 9 +-
.../averagers/LongMinAveragerTest.java | 19 +-
.../druid/emitter/opentsdb/EventConverterTest.java | 12 +-
extensions-contrib/rabbitmq/pom.xml | 83 -
.../rabbitmq/JacksonifiedConnectionFactory.java | 280 --
.../firehose/rabbitmq/RabbitMQDruidModule.java | 51 -
.../firehose/rabbitmq/RabbitMQFirehoseConfig.java | 186 --
.../firehose/rabbitmq/RabbitMQFirehoseFactory.java | 339 ---
.../org.apache.druid.initialization.DruidModule | 16 -
.../rabbitmq/RabbitMQFirehoseFactoryTest.java | 111 -
.../examples/rabbitmq/RabbitMQProducerMain.java | 212 --
.../emitter/statsd/DimensionConverterTest.java | 9 +-
.../druid/emitter/statsd/StatsDEmitterTest.java | 56 +-
extensions-contrib/tdigestsketch/pom.xml | 2 +-
.../tdigestsketch/TDigestSketchModule.java | 5 +-
.../input/thrift/ThriftInputRowParserTest.java | 15 +-
.../druid/segment/MapVirtualColumnGroupByTest.java | 5 +-
.../druid/segment/MapVirtualColumnSelectTest.java | 3 +-
.../druid/segment/MapVirtualColumnTopNTest.java | 5 +-
.../data/input/AvroHadoopInputRowParserTest.java | 13 +-
.../data/input/AvroStreamInputRowParserTest.java | 97 +-
.../SchemaRegistryBasedAvroBytesDecoderTest.java | 18 +-
.../hll/HllSketchAggregatorFactory.java | 44 +-
.../hll/HllSketchBuildAggregatorFactory.java | 6 +-
.../hll/HllSketchMergeAggregatorFactory.java | 14 +-
.../datasketches/hll/HllSketchModule.java | 12 +-
.../hll/sql/HllSketchSqlAggregator.java | 15 +-
.../quantiles/DoublesSketchBuildAggregator.java | 3 +
.../quantiles/DoublesSketchMergeAggregator.java | 3 +
.../DoublesSketchMergeBufferAggregator.java | 3 +-
.../quantiles/DoublesSketchModule.java | 4 +-
.../datasketches/theta/SketchAggregator.java | 4 +
.../datasketches/theta/SketchHolder.java | 6 +-
.../datasketches/theta/SketchModule.java | 19 +-
.../theta/SketchToStringPostAggregator.java | 136 +
.../theta/oldapi/OldApiSketchModule.java | 29 +-
.../tuple/ArrayOfDoublesSketchBuildAggregator.java | 4 +
.../ArrayOfDoublesSketchBuildBufferAggregator.java | 3 +
.../tuple/ArrayOfDoublesSketchMergeAggregator.java | 3 +
.../tuple/ArrayOfDoublesSketchModule.java | 20 +-
.../hll/HllSketchAggregatorFactoryTest.java | 284 ++
.../datasketches/hll/HllSketchAggregatorTest.java | 278 +-
.../hll/HllSketchMergeAggregatorFactoryTest.java | 159 +
.../hll/sql/HllSketchSqlAggregatorTest.java | 47 +-
...ouperUsingSketchMergeAggregatorFactoryTest.java | 15 +-
.../theta/SketchToStringPostAggregatorTest.java | 55 +
.../druid/guice/BloomFilterSerializersModule.java | 6 +-
.../query/expressions/BloomFilterExprMacro.java | 2 +-
.../druid/query/filter/BloomDimFilterTest.java | 15 +-
.../druid/query/filter/BloomKFilterTest.java | 274 +-
.../query/filter/sql/BloomDimFilterSqlTest.java | 6 +
.../druid/storage/google/GoogleByteSourceTest.java | 7 +-
.../google/GoogleDataSegmentKillerTest.java | 38 +-
.../google/GoogleDataSegmentPullerTest.java | 14 +-
.../google/GoogleDataSegmentPusherTest.java | 23 +-
.../druid/storage/google/GoogleTaskLogsTest.java | 51 +-
.../ApproximateHistogramAggregatorFactory.java | 111 +-
.../histogram/ApproximateHistogramDruidModule.java | 9 +-
...proximateHistogramFoldingAggregatorFactory.java | 94 +-
.../FixedBucketsHistogramAggregatorFactory.java | 57 +-
...FixedBucketsHistogramQuantileSqlAggregator.java | 6 +-
.../histogram/sql/QuantileSqlAggregator.java | 9 +-
.../ApproximateHistogramAggregatorTest.java | 40 +-
.../ApproximateHistogramGroupByQueryTest.java | 6 +-
.../ApproximateHistogramTopNQueryTest.java | 16 +-
.../FixedBucketsHistogramBufferAggregatorTest.java | 57 +-
.../FixedBucketsHistogramGroupByQueryTest.java | 8 +-
.../FixedBucketsHistogramTopNQueryTest.java | 21 +-
...dBucketsHistogramQuantileSqlAggregatorTest.java | 58 +-
.../histogram/sql/QuantileSqlAggregatorTest.java | 26 +-
extensions-core/kafka-eight/pom.xml | 75 -
.../firehose/kafka/KafkaEightDruidModule.java | 52 -
.../firehose/kafka/KafkaEightFirehoseFactory.java | 176 --
.../org.apache.druid.initialization.DruidModule | 16 -
.../lookup/KafkaLookupExtractorFactoryTest.java | 54 +-
.../IncrementalPublishingKafkaIndexTaskRunner.java | 12 +-
.../indexing/kafka/KafkaIndexTaskTuningConfig.java | 4 +
.../indexing/kafka/supervisor/KafkaSupervisor.java | 6 +
.../kafka/supervisor/KafkaSupervisorSpec.java | 1 +
.../supervisor/KafkaSupervisorTuningConfig.java | 3 +
.../indexing/kafka/KafkaIndexTaskClientTest.java | 238 +-
.../druid/indexing/kafka/KafkaIndexTaskTest.java | 45 +-
.../kafka/KafkaIndexTaskTuningConfigTest.java | 12 +-
.../kafka/supervisor/KafkaSupervisorTest.java | 1352 +++++----
.../KafkaSupervisorTuningConfigTest.java | 8 +-
.../TestModifiedKafkaIndexTaskTuningConfig.java | 2 +
.../kinesis/KinesisIndexTaskTuningConfig.java | 3 +
.../kinesis/supervisor/KinesisSupervisorSpec.java | 1 +
.../supervisor/KinesisSupervisorTuningConfig.java | 3 +
.../kinesis/KinesisIndexTaskClientTest.java | 224 +-
.../indexing/kinesis/KinesisIndexTaskTest.java | 777 +++--
.../kinesis/KinesisIndexTaskTuningConfigTest.java | 3 +
.../kinesis/KinesisRecordSupplierTest.java | 379 +--
.../indexing/kinesis/KinesisSamplerSpecTest.java | 15 +-
.../kinesis/supervisor/KinesisSupervisorTest.java | 923 +++---
.../TestModifiedKinesisIndexTaskTuningConfig.java | 3 +
.../lookup/NamespaceLookupExtractorFactory.java | 2 +-
.../OffHeapNamespaceExtractionCacheManager.java | 2 +-
.../namespace/UriExtractionNamespaceTest.java | 8 +-
.../input/orc/OrcHadoopInputRowParserTest.java | 117 +-
.../input/parquet/ParquetExtensionsModule.java | 8 +-
.../data/input/parquet/CompatParquetInputTest.java | 96 +-
.../input/parquet/DecimalParquetInputTest.java | 25 +-
.../input/parquet/FlattenSpecParquetInputTest.java | 98 +-
.../input/parquet/TimestampsParquetInputTest.java | 11 +-
.../data/input/parquet/WikiParquetInputTest.java | 9 +-
.../input/protobuf/ProtobufInputRowParserTest.java | 19 +-
.../druid/storage/s3/S3DataSegmentPusher.java | 13 +-
.../org/apache/druid/storage/s3/S3TaskLogs.java | 4 +-
.../apache/druid/storage/s3/S3TaskLogsConfig.java | 22 +
.../java/org/apache/druid/storage/s3/S3Utils.java | 23 +
.../apache/druid/storage/s3/S3TaskLogsTest.java | 106 +
.../storage/s3/TestAWSCredentialsProvider.java | 16 +-
.../s3/TestFileSessionCredentialsProvider.java | 9 +-
.../query/aggregation/stats/DruidStatsModule.java | 5 +-
.../variance/VarianceGroupByQueryTest.java | 18 +-
.../variance/VarianceTimeseriesQueryTest.java | 18 +-
.../variance/VarianceTopNQueryTest.java | 9 +-
.../druid/indexer/DeterminePartitionsJob.java | 38 +-
.../druid/indexer/HadoopDruidIndexerConfig.java | 5 +
.../apache/druid/indexer/HadoopTuningConfig.java | 14 +
.../apache/druid/indexer/IndexGeneratorJob.java | 2 +-
.../druid/indexer/BatchDeltaIngestionTest.java | 1 +
.../indexer/DetermineHashedPartitionsJobTest.java | 1 +
.../druid/indexer/DeterminePartitionsJobTest.java | 1 +
.../indexer/HadoopDruidIndexerConfigTest.java | 2 +
.../druid/indexer/HadoopTuningConfigTest.java | 2 +
.../druid/indexer/IndexGeneratorJobTest.java | 1 +
.../org/apache/druid/indexer/JobHelperTest.java | 1 +
.../indexer/path/GranularityPathSpecTest.java | 1 +
.../indexing/common/SegmentLoaderFactory.java | 2 +-
.../druid/indexing/common/config/TaskConfig.java | 25 +-
.../index/RealtimeAppenderatorTuningConfig.java | 12 +
.../indexing/common/index/YeOldePlumberSchool.java | 2 +-
.../task/AppenderatorDriverRealtimeIndexTask.java | 2 +-
.../indexing/common/task/HadoopIndexTask.java | 3 +-
.../druid/indexing/common/task/IndexTask.java | 46 +-
.../druid/indexing/common/task/KillTask.java | 4 +
.../task/batch/parallel/ParallelIndexSubTask.java | 2 +-
.../parallel/ParallelIndexSupervisorTask.java | 1 +
.../batch/parallel/ParallelIndexTuningConfig.java | 4 +-
.../druid/indexing/overlord/ForkingTaskRunner.java | 42 +-
.../druid/indexing/overlord/RemoteTaskRunner.java | 4 +-
.../overlord/SingleTaskBackgroundRunner.java | 8 +-
.../apache/druid/indexing/overlord/TaskQueue.java | 15 +-
.../overlord/WorkerTaskRunnerQueryAdapter.java | 3 +-
.../druid/indexing/overlord/hrtr/WorkerHolder.java | 6 +-
.../indexing/overlord/http/OverlordResource.java | 6 +-
.../overlord/supervisor/SupervisorManager.java | 20 -
.../overlord/supervisor/SupervisorResource.java | 34 +-
.../SeekableStreamDataSourceMetadata.java | 8 +-
.../SeekableStreamEndSequenceNumbers.java | 8 +-
.../SeekableStreamIndexTaskRunner.java | 9 +-
.../SeekableStreamIndexTaskTuningConfig.java | 13 +
.../SeekableStreamStartSequenceNumbers.java | 8 +-
.../supervisor/SeekableStreamSupervisor.java | 3 +-
.../indexing/worker/IntermediaryDataManager.java | 331 +++
.../druid/indexing/worker/config/WorkerConfig.java | 31 +-
.../indexing/worker/http/ShuffleResource.java | 122 +
.../worker/http/TaskManagementResource.java | 6 +-
.../druid/indexing/worker/http/WorkerResource.java | 2 +-
.../druid/indexing/common/TaskToolboxTest.java | 2 +-
.../druid/indexing/common/TestRealtimeTask.java | 3 +-
.../common/actions/RemoteTaskActionClientTest.java | 23 +-
.../common/actions/SegmentListActionsTest.java | 4 +-
.../AppenderatorDriverRealtimeIndexTaskTest.java | 6 +-
.../common/task/CompactionTaskRunTest.java | 11 +-
.../indexing/common/task/CompactionTaskTest.java | 6 +
.../druid/indexing/common/task/HadoopTaskTest.java | 1 +
.../druid/indexing/common/task/IndexTaskTest.java | 6 +-
.../common/task/RealtimeIndexTaskTest.java | 7 +-
.../druid/indexing/common/task/TaskSerdeTest.java | 6 +-
.../ParallelIndexSupervisorTaskKillTest.java | 1 +
.../ParallelIndexSupervisorTaskResourceTest.java | 1 +
.../ParallelIndexSupervisorTaskSerdeTest.java | 1 +
.../parallel/ParallelIndexSupervisorTaskTest.java | 2 +
.../parallel/ParallelIndexTuningConfigTest.java | 1 +
.../firehose/IngestSegmentFirehoseFactoryTest.java | 24 +-
.../IngestSegmentFirehoseFactoryTimelineTest.java | 4 +-
.../overlord/SingleTaskBackgroundRunnerTest.java | 1 +
.../druid/indexing/overlord/TaskLifecycleTest.java | 9 +-
.../overlord/supervisor/SupervisorManagerTest.java | 16 +-
.../supervisor/SupervisorResourceTest.java | 270 +-
.../SeekableStreamSupervisorStateTest.java | 113 +-
.../IntermediaryDataManagerAutoCleanupTest.java | 148 +
...ermediaryDataManagerManualAddAndDeleteTest.java | 174 ++
.../indexing/worker/TaskAnnouncementTest.java | 3 +-
.../indexing/worker/WorkerTaskManagerTest.java | 1 +
.../indexing/worker/WorkerTaskMonitorTest.java | 1 +
integration-tests/README.md | 3 +
.../clients/AbstractQueryResourceTestClient.java | 3 +-
.../clients/ClientInfoResourceTestClient.java | 3 +-
.../clients/CoordinatorResourceTestClient.java | 3 +-
.../clients/EventReceiverFirehoseTestClient.java | 4 +-
.../clients/OverlordResourceTestClient.java | 11 +-
.../testing/utils/AbstractTestQueryHelper.java | 2 +-
.../org/apache/druid/testing/utils/RetryUtil.java | 4 +-
.../java/org/testng/DruidTestRunnerFactory.java | 4 +-
.../druid/tests/indexer/ITUnionQueryTest.java | 4 +-
.../security/ITBasicAuthConfigurationTest.java | 4 +-
.../org/apache/druid/tests/security/ITTLSTest.java | 4 +-
licenses.yaml | 3088 +++++++++++++++++++
licenses/APACHE2 | 210 ++
licenses/bin/@babel-polyfill.MIT | 22 +
licenses/bin/@types-dom4.MIT | 21 +
licenses/bin/array-includes.MIT | 21 -
licenses/bin/copy-to-clipboard.MIT | 21 +
licenses/bin/core-js.MIT | 19 +
licenses/bin/create-react-context.MIT | 19 +
licenses/bin/debug.MIT | 19 +
licenses/bin/define-properties.MIT | 21 -
licenses/bin/es-abstract.MIT | 21 -
licenses/bin/es-to-primitive.MIT | 22 -
licenses/bin/es6-shim.MIT | 26 -
licenses/bin/es7-shim.MIT | 22 -
licenses/bin/file-saver.MIT | 11 +
licenses/bin/follow-redirects.MIT | 18 +
licenses/bin/function-bind.MIT | 20 -
licenses/bin/gud.MIT | 21 +
licenses/bin/has-own-prop.MIT | 9 +
licenses/bin/has-symbols.MIT | 21 -
licenses/bin/has.MIT | 22 -
licenses/bin/history.MIT | 4 +-
licenses/bin/iconv-lite.MIT | 21 +
licenses/bin/is-callable.MIT | 22 -
licenses/bin/is-date-object.MIT | 22 -
licenses/bin/is-regex.MIT | 20 -
licenses/bin/is-stream.MIT | 21 +
licenses/bin/is-symbol.MIT | 22 -
licenses/bin/isarray.MIT | 16 +-
licenses/bin/isomorphic-fetch.MIT | 21 +
licenses/bin/javax.activation-api.CDDL11 | 362 +++
licenses/bin/javax.annotation-api.CDDL11 | 362 +++
licenses/bin/jersey-json.CDDL11 | 550 ++++
licenses/bin/js-tokens.MIT | 21 +
licenses/bin/lodash.debounce.MIT | 47 +
licenses/bin/lodash.get.MIT | 47 +
licenses/bin/lodash.isequal.MIT | 47 +
licenses/bin/loose-envify.MIT | 21 +
licenses/bin/memoize-one.MIT | 21 +
licenses/bin/mini-create-react-context.MIT | 21 +
licenses/bin/ms.MIT | 21 +
licenses/bin/node-fetch.MIT | 22 +
licenses/bin/normalize.css.MIT | 21 +
licenses/bin/object-keys.MIT | 21 -
licenses/bin/old-jaxb.CDDL11 | 362 +++
licenses/bin/popper.js.MIT | 25 +
licenses/bin/react-lifecycles-compat.MIT | 21 +
licenses/bin/react-popper.MIT | 21 +
licenses/bin/react-router-dom.MIT | 58 +-
licenses/bin/react-router.MIT | 61 +-
licenses/bin/react-splitter-layout.MIT | 19 +
licenses/bin/react-transition-group.BSD3 | 2 +-
licenses/bin/regenerator-runtime.MIT | 21 +
licenses/bin/resize-observer-polyfill.MIT | 21 +
licenses/bin/safer-buffer.MIT | 21 +
licenses/bin/setimmediate.MIT | 20 +
licenses/bin/string-at.MIT | 22 -
licenses/bin/tiny-invariant.MIT | 21 +
licenses/bin/tiny-warning.MIT | 21 +
licenses/bin/toggle-selection.MIT | 21 +
licenses/bin/typed-styles.MIT | 21 +
licenses/bin/ua-parser-js.MIT | 2 +-
licenses/bin/whatwg-fetch.MIT | 20 +
licenses/src/porter-stemmer.BSD3 | 30 +
pom.xml | 18 +-
.../collections/bitmap/BatchIteratorAdapter.java | 58 +
.../druid/collections/bitmap/ImmutableBitmap.java | 9 +
.../collections/bitmap/WrappedBitSetBitmap.java | 12 +-
.../bitmap/WrappedImmutableRoaringBitmap.java | 7 +
.../apache/druid/jackson/AggregatorsModule.java | 18 +-
.../org/apache/druid/query/AsyncQueryRunner.java | 4 +-
.../apache/druid/query/BySegmentQueryRunner.java | 4 +-
.../druid/query/BySegmentSkippingQueryRunner.java | 7 +-
.../druid/query/CPUTimeMetricQueryRunner.java | 4 +-
.../druid/query/ChainedExecutionQueryRunner.java | 4 +-
.../org/apache/druid/query/ConcatQueryRunner.java | 5 +-
.../apache/druid/query/DefaultQueryMetrics.java | 6 +
.../druid/query/FinalizeResultsQueryRunner.java | 5 +-
.../druid/query/FluentQueryRunnerBuilder.java | 4 +-
.../druid/query/GroupByMergedQueryRunner.java | 4 +-
.../druid/query/IntervalChunkingQueryRunner.java | 4 +-
.../druid/query/MetricsEmittingQueryRunner.java | 4 +-
.../org/apache/druid/query/NoopQueryRunner.java | 5 +-
.../query/PerSegmentOptimizingQueryRunner.java | 5 +-
.../java/org/apache/druid/query/QueryContexts.java | 61 +
.../java/org/apache/druid/query/QueryMetrics.java | 6 +
.../java/org/apache/druid/query/QueryPlus.java | 4 +-
.../java/org/apache/druid/query/QueryRunner.java | 12 +-
.../org/apache/druid/query/QueryRunnerFactory.java | 30 +-
.../org/apache/druid/query/QueryRunnerHelper.java | 28 +-
.../org/apache/druid/query/QueryToolChest.java | 32 +-
.../query/ReferenceCountingSegmentQueryRunner.java | 5 +-
.../ReportTimelineMissingSegmentQueryRunner.java | 8 +-
.../main/java/org/apache/druid/query/Result.java | 3 -
.../apache/druid/query/ResultMergeQueryRunner.java | 29 +-
.../org/apache/druid/query/RetryQueryRunner.java | 10 +-
.../apache/druid/query/SubqueryQueryRunner.java | 5 +-
.../org/apache/druid/query/TimewarpOperator.java | 4 +-
.../org/apache/druid/query/UnionQueryRunner.java | 5 +-
.../query/aggregation/AggregatorAdapters.java | 389 +++
.../druid/query/aggregation/AggregatorFactory.java | 18 +
.../druid/query/aggregation/BufferAggregator.java | 4 +
.../query/aggregation/CountAggregatorFactory.java | 13 +
.../query/aggregation/CountVectorAggregator.java | 66 +
.../aggregation/DoubleSumAggregatorFactory.java | 23 +
.../aggregation/DoubleSumVectorAggregator.java | 83 +
.../aggregation/FilteredAggregatorFactory.java | 60 +-
.../aggregation/FilteredVectorAggregator.java | 153 +
.../aggregation/FloatSumAggregatorFactory.java | 23 +
.../aggregation/FloatSumVectorAggregator.java | 84 +
.../aggregation/LongSumAggregatorFactory.java | 27 +-
.../query/aggregation/LongSumVectorAggregator.java | 83 +
.../query/aggregation/NoopVectorAggregator.java | 74 +
.../aggregation/NullableAggregatorFactory.java | 71 +-
.../aggregation/NullableBufferAggregator.java | 26 +-
.../aggregation/NullableVectorAggregator.java | 165 ++
.../aggregation/SimpleDoubleAggregatorFactory.java | 2 +-
.../aggregation/SimpleFloatAggregatorFactory.java | 2 +-
.../aggregation/SimpleLongAggregatorFactory.java | 2 +-
.../aggregation/SuppressedAggregatorFactory.java | 93 +
.../druid/query/aggregation/VectorAggregator.java | 86 +
.../cardinality/CardinalityBufferAggregator.java | 13 +-
.../aggregation/first/StringFirstAggregator.java | 2 +-
.../first/StringFirstBufferAggregator.java | 2 +-
.../hyperloglog/HyperUniquesAggregatorFactory.java | 22 +
.../hyperloglog/HyperUniquesBufferAggregator.java | 30 +-
.../aggregation/hyperloglog/HyperUniquesSerde.java | 5 +
.../hyperloglog/HyperUniquesVectorAggregator.java | 116 +
.../hyperloglog/PreComputedHyperUniquesSerde.java | 5 +-
.../aggregation/last/StringLastAggregator.java | 2 +-
.../last/StringLastBufferAggregator.java | 2 +-
.../aggregation/post/ExpressionPostAggregator.java | 11 +-
.../query/aggregation/post/PostAggregatorIds.java | 3 +-
.../query/context/ConcurrentResponseContext.java | 45 +
.../query/context/DefaultResponseContext.java | 45 +
.../druid/query/context/ResponseContext.java | 131 +
.../DataSourceMetadataQueryRunnerFactory.java | 6 +-
.../DataSourceQueryQueryToolChest.java | 4 +-
.../query/dimension/DefaultDimensionSpec.java | 20 +
.../druid/query/dimension/DimensionSpec.java | 22 +
.../query/dimension/VectorColumnStrategizer.java | 41 +
.../expression/TimestampExtractExprMacro.java | 30 +-
.../druid/query/expression/TrimExprMacro.java | 16 +-
.../druid/query/filter/ExpressionDimFilter.java | 2 +-
.../java/org/apache/druid/query/filter/Filter.java | 22 +
.../druid/query/filter/IntervalDimFilter.java | 6 +
.../StringValueMatcherColumnSelectorStrategy.java | 64 +-
.../apache/druid/query/filter/ValueMatcher.java | 5 +
.../ValueMatcherColumnSelectorStrategyFactory.java | 2 +-
.../filter/vector/BaseVectorValueMatcher.java | 44 +
.../filter/vector/BooleanVectorValueMatcher.java | 63 +
.../filter/vector/DoubleVectorValueMatcher.java | 105 +
.../filter/vector/FloatVectorValueMatcher.java | 105 +
.../filter/vector/LongVectorValueMatcher.java | 105 +
.../vector/MultiValueStringVectorValueMatcher.java | 208 ++
.../query/filter/vector/ReadableVectorMatch.java | 68 +
.../SingleValueStringVectorValueMatcher.java | 192 ++
.../druid/query/filter/vector/VectorMatch.java | 267 ++
.../query/filter/vector/VectorValueMatcher.java | 42 +
.../VectorValueMatcherColumnStrategizer.java | 74 +
.../filter/vector/VectorValueMatcherFactory.java | 31 +
.../apache/druid/query/groupby/GroupByQuery.java | 1 +
.../druid/query/groupby/GroupByQueryConfig.java | 16 +-
.../druid/query/groupby/GroupByQueryEngine.java | 10 +-
.../query/groupby/GroupByQueryQueryToolChest.java | 47 +-
.../query/groupby/GroupByQueryRunnerFactory.java | 6 +-
.../groupby/RowBasedColumnSelectorFactory.java | 3 +-
.../epinephelinae/AbstractBufferHashGrouper.java | 49 +-
.../groupby/epinephelinae/AggregateResult.java | 48 +-
.../groupby/epinephelinae/BufferArrayGrouper.java | 169 +-
.../groupby/epinephelinae/BufferHashGrouper.java | 207 +-
.../groupby/epinephelinae/ByteBufferHashTable.java | 17 +-
.../groupby/epinephelinae/ByteBufferKeySerde.java | 91 +
.../epinephelinae/CloseableGrouperIterator.java | 5 +-
.../groupby/epinephelinae/ConcurrentGrouper.java | 5 +-
.../groupby/epinephelinae/GroupByBinaryFnV2.java | 7 +-
.../epinephelinae/GroupByMergingQueryRunnerV2.java | 4 +-
.../epinephelinae/GroupByQueryEngineV2.java | 208 +-
.../druid/query/groupby/epinephelinae/Grouper.java | 8 +-
.../query/groupby/epinephelinae/Groupers.java | 66 +-
.../epinephelinae/LimitedBufferHashGrouper.java | 40 +-
.../epinephelinae/RowBasedGrouperHelper.java | 570 ++--
.../groupby/epinephelinae/SpillingGrouper.java | 21 +-
.../query/groupby/epinephelinae/VectorGrouper.java | 77 +
.../vector/DoubleGroupByVectorColumnSelector.java | 71 +
.../vector/FloatGroupByVectorColumnSelector.java | 69 +
.../vector/GroupByVectorColumnSelector.java | 37 +
.../vector/GroupByVectorColumnStrategizer.java | 70 +
.../vector/LongGroupByVectorColumnSelector.java | 70 +
...ngleValueStringGroupByVectorColumnSelector.java | 69 +
.../epinephelinae/vector/VectorGroupByEngine.java | 436 +++
.../query/groupby/strategy/GroupByStrategy.java | 29 +-
.../query/groupby/strategy/GroupByStrategyV1.java | 4 +-
.../query/groupby/strategy/GroupByStrategyV2.java | 42 +-
.../query/lookup/RegisteredLookupExtractionFn.java | 2 +-
.../SegmentMetadataQueryQueryToolChest.java | 16 +-
.../SegmentMetadataQueryRunnerFactory.java | 5 +-
.../metadata/metadata/AllColumnIncluderator.java | 2 +
.../metadata/metadata/ColumnIncluderator.java | 4 -
.../metadata/metadata/ListColumnIncluderator.java | 4 +-
.../metadata/metadata/NoneColumnIncluderator.java | 2 +
.../apache/druid/query/scan/ScanQueryEngine.java | 23 +-
.../query/scan/ScanQueryLimitRowIterator.java | 4 +-
.../druid/query/scan/ScanQueryRunnerFactory.java | 16 +-
.../query/search/DefaultSearchQueryMetrics.java | 6 +
.../apache/druid/query/search/SearchBinaryFn.java | 7 +-
.../query/search/SearchQueryQueryToolChest.java | 40 +-
.../druid/query/search/SearchQueryRunner.java | 4 +-
.../apache/druid/query/search/SearchStrategy.java | 2 +-
.../query/select/DefaultSelectQueryMetrics.java | 6 +
.../apache/druid/query/select/SelectBinaryFn.java | 5 +-
.../query/select/SelectQueryQueryToolChest.java | 41 +-
.../query/select/SelectQueryRunnerFactory.java | 4 +-
.../query/spec/SpecificSegmentQueryRunner.java | 12 +-
.../TimeBoundaryQueryQueryToolChest.java | 4 +-
.../TimeBoundaryQueryRunnerFactory.java | 4 +-
.../druid/query/timeseries/TimeseriesBinaryFn.java | 5 +-
.../query/timeseries/TimeseriesQueryEngine.java | 272 +-
.../timeseries/TimeseriesQueryQueryToolChest.java | 49 +-
.../timeseries/TimeseriesQueryRunnerFactory.java | 4 +-
.../query/timeseries/TimeseriesResultBuilder.java | 7 +-
.../query/topn/AlphaNumericTopNMetricSpec.java | 2 +-
.../org/apache/druid/query/topn/TopNBinaryFn.java | 4 +-
.../apache/druid/query/topn/TopNQueryBuilder.java | 12 +
.../druid/query/topn/TopNQueryQueryToolChest.java | 57 +-
.../druid/query/topn/TopNQueryRunnerFactory.java | 4 +-
.../types/StringTopNColumnSelectorStrategy.java | 3 +-
.../query/vector/VectorCursorGranularizer.java | 173 ++
.../druid/segment/ColumnSelectorFactory.java | 2 +
.../main/java/org/apache/druid/segment/Cursor.java | 4 +-
.../org/apache/druid/segment/CursorFactory.java | 43 +
.../druid/segment/DimensionDictionarySelector.java | 104 +
.../druid/segment/DimensionHandlerUtils.java | 78 +
.../apache/druid/segment/DimensionSelector.java | 78 +-
.../druid/segment/DoubleDimensionIndexer.java | 2 +-
.../druid/segment/FloatDimensionIndexer.java | 2 +-
.../java/org/apache/druid/segment/IndexIO.java | 2 +-
.../apache/druid/segment/LongDimensionIndexer.java | 2 +-
.../org/apache/druid/segment/MetricHolder.java | 4 +
.../QueryableIndexCursorSequenceBuilder.java | 602 ++++
.../druid/segment/QueryableIndexSegment.java | 4 +-
.../segment/QueryableIndexStorageAdapter.java | 603 ++--
.../segment/SingleScanTimeDimensionSelector.java | 4 +-
.../org/apache/druid/segment/StorageAdapter.java | 5 +
.../druid/segment/StringDimensionIndexer.java | 6 +-
.../druid/segment/StringDimensionMergerV9.java | 42 +-
.../org/apache/druid/segment/VirtualColumns.java | 5 +
.../apache/druid/segment/column/BaseColumn.java | 14 +
.../apache/druid/segment/column/ColumnBuilder.java | 9 +-
.../segment/column/ColumnCapabilitiesImpl.java | 12 +
.../druid/segment/column/ColumnDescriptor.java | 4 +
.../apache/druid/segment/column/ComplexColumn.java | 52 +
.../segment/column/DictionaryEncodedColumn.java | 13 +
.../apache/druid/segment/column/DoublesColumn.java | 9 +-
.../segment/column/DoublesColumnWithNulls.java | 8 +
.../apache/druid/segment/column/FloatsColumn.java | 8 +
.../segment/column/FloatsColumnWithNulls.java | 8 +
.../apache/druid/segment/column/LongsColumn.java | 8 +
.../druid/segment/column/LongsColumnWithNulls.java | 8 +
.../column/StringDictionaryEncodedColumn.java | 163 +-
.../data/BlockLayoutColumnarDoublesSerializer.java | 3 +
.../data/BlockLayoutColumnarDoublesSupplier.java | 65 +-
.../data/BlockLayoutColumnarFloatsSerializer.java | 3 +
.../data/BlockLayoutColumnarFloatsSupplier.java | 69 +-
.../data/BlockLayoutColumnarLongsSerializer.java | 3 +
.../data/BlockLayoutColumnarLongsSupplier.java | 52 +-
.../druid/segment/data/ByteBufferWriter.java | 4 +
.../apache/druid/segment/data/ColumnarDoubles.java | 76 +-
.../apache/druid/segment/data/ColumnarFloats.java | 75 +-
.../apache/druid/segment/data/ColumnarLongs.java | 75 +-
.../druid/segment/data/ColumnarMultiInts.java | 10 +
.../data/CompressedColumnarIntsSerializer.java | 6 +-
.../CompressedVSizeColumnarIntsSerializer.java | 5 +-
.../data/CompressedVSizeColumnarIntsSupplier.java | 64 +-
.../CompressedVSizeColumnarMultiIntsSupplier.java | 41 +-
.../druid/segment/data/CompressionFactory.java | 21 +
.../data/EntireLayoutColumnarFloatsSupplier.java | 16 -
.../data/EntireLayoutColumnarLongsSupplier.java | 16 -
.../apache/druid/segment/data/GenericIndexed.java | 1 +
.../druid/segment/data/GenericIndexedWriter.java | 3 +
.../org/apache/druid/segment/data/IndexedInts.java | 15 +
.../data/IntermediateColumnarLongsSerializer.java | 6 +-
.../segment/data/LongsLongEncodingReader.java | 13 +
.../segment/data/LongsLongEncodingWriter.java | 4 +
.../apache/druid/segment/data/ReadableOffset.java | 2 +
.../segment/data/VSizeColumnarIntsSerializer.java | 6 +-
.../druid/segment/data/VSizeColumnarMultiInts.java | 6 +
.../data/VSizeColumnarMultiIntsSerializer.java | 4 +
.../apache/druid/segment/data/VSizeLongSerde.java | 9 +-
.../org/apache/druid/segment/filter/AndFilter.java | 50 +-
.../apache/druid/segment/filter/BoundFilter.java | 20 +
.../segment/filter/DimensionPredicateFilter.java | 20 +
.../druid/segment/filter/ExpressionFilter.java | 2 +-
.../org/apache/druid/segment/filter/InFilter.java | 20 +
.../apache/druid/segment/filter/LikeFilter.java | 20 +
.../org/apache/druid/segment/filter/NotFilter.java | 33 +
.../org/apache/druid/segment/filter/OrFilter.java | 125 +-
.../druid/segment/filter/SelectorFilter.java | 20 +
.../segment/incremental/IncrementalIndex.java | 88 +-
.../incremental/IncrementalIndexAdapter.java | 1 +
.../IncrementalIndexColumnSelectorFactory.java | 9 +-
.../incremental/IncrementalIndexRowHolder.java | 3 +
.../incremental/IncrementalIndexRowIterator.java | 7 +-
.../IncrementalIndexStorageAdapter.java | 34 +-
.../incremental/OffheapIncrementalIndex.java | 5 +
.../incremental/OnheapIncrementalIndex.java | 4 +-
.../segment/serde/ComplexColumnPartSerde.java | 18 +-
.../apache/druid/segment/serde/ComplexMetrics.java | 12 +-
.../serde/DictionaryEncodedColumnPartSerde.java | 10 +-
.../serde/DoubleNumericColumnPartSerde.java | 37 +-
.../serde/DoubleNumericColumnPartSerdeV2.java | 5 +-
.../segment/serde/FloatNumericColumnPartSerde.java | 2 +
.../serde/FloatNumericColumnPartSerdeV2.java | 5 +-
.../segment/serde/LongNumericColumnPartSerde.java | 35 +-
.../serde/LongNumericColumnPartSerdeV2.java | 11 +-
.../vector/BaseDoubleVectorValueSelector.java | 88 +
.../vector/BaseFloatVectorValueSelector.java | 88 +
.../vector/BaseLongVectorValueSelector.java | 88 +
.../druid/segment/vector/BitmapVectorOffset.java | 134 +
.../druid/segment/vector/FilteredVectorOffset.java | 175 ++
.../vector/MultiValueDimensionVectorSelector.java | 37 +
.../druid/segment/vector/NilVectorSelector.java | 178 ++
.../druid/segment/vector/NoFilterVectorOffset.java | 90 +
.../QueryableIndexVectorColumnSelectorFactory.java | 194 ++
.../druid/segment/vector/ReadableVectorOffset.java | 67 +
.../vector/SingleValueDimensionVectorSelector.java | 37 +
.../vector/VectorColumnSelectorFactory.java | 69 +
.../apache/druid/segment/vector/VectorCursor.java | 76 +
.../druid/segment/vector/VectorObjectSelector.java | 33 +
.../apache/druid/segment/vector/VectorOffset.java | 43 +
.../druid/segment/vector/VectorSelectorUtils.java | 63 +
.../druid/segment/vector/VectorSizeInspector.java | 39 +
.../druid/segment/vector/VectorValueSelector.java | 55 +
.../druid/segment/virtual/ExpressionSelectors.java | 27 +-
.../segment/virtual/ExpressionVirtualColumn.java | 7 +-
.../RowBasedExpressionColumnValueSelector.java | 2 +-
...gInputCachingExpressionColumnValueSelector.java | 2 +-
...gInputCachingExpressionColumnValueSelector.java | 5 +-
.../SingleStringInputDimensionSelector.java | 44 +-
.../druid/collections/CombiningIterableTest.java | 41 +-
.../druid/granularity/QueryGranularityTest.java | 2 +-
.../apache/druid/query/AsyncQueryRunnerTest.java | 16 +-
.../query/ChainedExecutionQueryRunnerTest.java | 11 +-
.../druid/query/DefaultQueryMetricsTest.java | 3 +-
.../org/apache/druid/query/DoubleStorageTest.java | 6 +-
.../query/IntervalChunkingQueryRunnerTest.java | 10 +-
.../druid/query/MultiValuedDimensionTest.java | 151 +-
.../apache/druid/query/QueryRunnerTestHelper.java | 16 +-
.../apache/druid/query/RetryQueryRunnerTest.java | 59 +-
.../apache/druid/query/SchemaEvolutionTest.java | 2 +-
.../apache/druid/query/TimewarpOperatorTest.java | 25 +-
.../apache/druid/query/UnionQueryRunnerTest.java | 7 +-
.../query/aggregation/AggregationTestHelper.java | 9 +-
.../query/aggregation/AggregatorUtilTest.java | 4 +-
.../druid/query/cache/CacheKeyBuilderTest.java | 109 +-
.../DataSourceMetadataQueryTest.java | 8 +-
.../druid/query/filter/vector/VectorMatchTest.java | 127 +
...GroupByLimitPushDownInsufficientBufferTest.java | 11 +-
.../GroupByLimitPushDownMultiNodeMergeTest.java | 11 +-
.../query/groupby/GroupByMultiSegmentTest.java | 5 +-
.../query/groupby/GroupByQueryMergeBufferTest.java | 47 +-
.../groupby/GroupByQueryRunnerFactoryTest.java | 9 +-
.../query/groupby/GroupByQueryRunnerTest.java | 1009 ++++---
.../groupby/GroupByQueryRunnerTestHelper.java | 2 +-
.../groupby/GroupByTimeseriesQueryRunnerTest.java | 135 +-
.../query/groupby/NestedQueryPushDownTest.java | 17 +-
.../epinephelinae/BufferArrayGrouperTest.java | 15 +-
.../epinephelinae/BufferHashGrouperTest.java | 26 +-
.../LimitedBufferHashGrouperTest.java | 15 +-
.../having/DimensionSelectorHavingSpecTest.java | 81 +-
.../druid/query/groupby/having/HavingSpecTest.java | 195 +-
.../druid/query/metadata/SegmentAnalyzerTest.java | 4 +-
.../query/metadata/SegmentMetadataQueryTest.java | 47 +-
.../metadata/SegmentMetadataUnionQueryTest.java | 5 +-
.../query/scan/MultiSegmentScanQueryTest.java | 13 +-
.../query/scan/ScanQueryLimitRowIteratorTest.java | 7 +-
.../query/scan/ScanQueryRunnerFactoryTest.java | 4 +-
.../druid/query/scan/ScanQueryRunnerTest.java | 38 +-
.../druid/query/search/SearchQueryRunnerTest.java | 6 +-
.../search/SearchQueryRunnerWithCaseTest.java | 74 +-
.../query/select/MultiSegmentSelectQueryTest.java | 9 +-
.../druid/query/select/SelectQueryRunnerTest.java | 35 +-
.../query/spec/SpecificSegmentQueryRunnerTest.java | 19 +-
.../timeboundary/TimeBoundaryQueryRunnerTest.java | 22 +-
.../timeseries/TimeSeriesUnionQueryRunnerTest.java | 11 +-
.../timeseries/TimeseriesQueryRunnerBonusTest.java | 4 +-
.../timeseries/TimeseriesQueryRunnerTest.java | 279 +-
.../query/topn/DefaultTopNQueryMetricsTest.java | 3 +-
.../topn/TopNMetricSpecOptimizationsTest.java | 134 +-
.../query/topn/TopNQueryQueryToolChestTest.java | 14 +-
.../druid/query/topn/TopNQueryRunnerBenchmark.java | 13 +-
.../druid/query/topn/TopNQueryRunnerTest.java | 387 ++-
.../org/apache/druid/query/topn/TopNQueryTest.java | 58 +-
.../druid/query/topn/TopNUnionQueryTest.java | 14 +-
.../java/org/apache/druid/segment/AppendTest.java | 50 +-
.../org/apache/druid/segment/CloserRuleTest.java | 2 +-
.../segment/IndexMergerV9WithSpatialIndexTest.java | 7 +-
.../apache/druid/segment/IntIteratorUtilsTest.java | 21 +-
.../org/apache/druid/segment/IntListUtilsTest.java | 7 +-
.../apache/druid/segment/MergeIntIteratorTest.java | 29 +-
.../QueryableIndexCursorSequenceBuilderTest.java | 117 +
.../apache/druid/segment/SchemalessIndexTest.java | 5 +-
.../druid/segment/SchemalessTestFullTest.java | 26 +-
.../druid/segment/SchemalessTestSimpleTest.java | 17 +-
.../java/org/apache/druid/segment/TestIndex.java | 5 +-
.../segment/data/BitmapCreationBenchmark.java | 2 +-
.../data/CompressedColumnarIntsSerializerTest.java | 13 +-
.../segment/data/CompressedFloatsSerdeTest.java | 2 +-
.../segment/data/CompressedLongsSerdeTest.java | 2 +-
.../CompressedVSizeColumnarIntsSerializerTest.java | 9 +-
.../druid/segment/data/IncrementalIndexTest.java | 10 +-
...ressedVSizeColumnarMultiIntsSerializerTest.java | 19 +-
.../data/VSizeColumnarIntsSerializerTest.java | 9 +-
.../druid/segment/filter/BaseFilterTest.java | 240 +-
.../druid/segment/filter/BoundFilterTest.java | 4 +-
.../segment/filter/ColumnComparisonFilterTest.java | 52 +-
.../druid/segment/filter/ExpressionFilterTest.java | 123 +-
.../apache/druid/segment/filter/FiltersTest.java | 5 +-
.../filter/FloatAndDoubleFilteringTest.java | 6 +-
.../druid/segment/filter/JavaScriptFilterTest.java | 118 +-
.../druid/segment/filter/LongFilteringTest.java | 4 +-
.../druid/segment/filter/SelectorFilterTest.java | 61 +-
.../segment/filter/SpatialFilterBonusTest.java | 10 +-
.../druid/segment/filter/SpatialFilterTest.java | 7 +-
.../druid/segment/filter/TimeFilteringTest.java | 6 +-
.../IncrementalIndexStorageAdapterTest.java | 2 +-
.../OnheapIncrementalIndexBenchmark.java | 8 +-
.../druid/segment/serde/ComplexMetricsTest.java | 78 +
.../virtual/DummyStringVirtualColumnTest.java | 4 +-
.../virtual/ExpressionVirtualColumnTest.java | 17 +-
.../druid/segment/virtual/VirtualColumnsTest.java | 3 +-
publications/demo/figures/caching.png | Bin 36103 -> 29789 bytes
publications/demo/figures/realtime_flow.png | Bin 52345 -> 41583 bytes
publications/demo/figures/realtime_timeline.png | Bin 37015 -> 29939 bytes
.../demo/figures/throughput_vs_cardinality.png | Bin 75254 -> 50493 bytes
.../demo/figures/throughput_vs_num_dims.png | Bin 74606 -> 50912 bytes
.../demo/figures/throughput_vs_num_metrics.png | Bin 87298 -> 63279 bytes
publications/demo/figures/tpch_scaling.png | Bin 44252 -> 35808 bytes
.../radstack/figures/druid_vs_bigquery.png | Bin 159171 -> 95074 bytes
publications/radstack/figures/imps_clicks.png | Bin 195536 -> 135883 bytes
publications/radstack/figures/joined.png | Bin 168080 -> 116192 bytes
publications/radstack/figures/pipeline.png | Bin 401963 -> 288696 bytes
publications/radstack/figures/precompute.png | Bin 55497 -> 17375 bytes
publications/radstack/figures/radstack.png | Bin 17202 -> 10926 bytes
publications/radstack/figures/shuffled.png | Bin 184794 -> 131290 bytes
.../radstack/figures/throughput_vs_cardinality.png | Bin 75254 -> 50493 bytes
.../radstack/figures/throughput_vs_num_dims.png | Bin 74606 -> 50912 bytes
.../radstack/figures/throughput_vs_num_metrics.png | Bin 87298 -> 63279 bytes
.../figures/throughput_vs_cardinality.png | Bin 75254 -> 50493 bytes
.../whitepaper/figures/throughput_vs_num_dims.png | Bin 74606 -> 50912 bytes
.../figures/throughput_vs_num_metrics.png | Bin 87298 -> 63279 bytes
.../org/apache/druid/client/BrokerServerView.java | 44 +-
.../druid/client/CachingClusteredClient.java | 17 +-
.../apache/druid/client/CachingQueryRunner.java | 8 +-
.../apache/druid/client/DataSourcesSnapshot.java | 126 +-
.../org/apache/druid/client/DirectDruidClient.java | 34 +-
.../org/apache/druid/client/DruidDataSource.java | 21 +-
.../java/org/apache/druid/client/DruidServer.java | 2 -
.../druid/client/ImmutableDruidDataSource.java | 44 +-
.../apache/druid/client/ImmutableDruidServer.java | 21 +-
.../client/cache/BackgroundCachePopulator.java | 4 +
.../apache/druid/client/cache/CachePopulator.java | 19 +
.../druid/client/cache/CachePopulatorStats.java | 5 +
.../client/cache/ForegroundCachePopulator.java | 61 +-
.../druid/client/indexing/ClientCompactQuery.java | 6 +-
.../indexing/ClientCompactQueryTuningConfig.java | 14 +-
.../druid/client/indexing/ClientKillQuery.java | 3 +
.../apache/druid/client/indexing/ClientQuery.java | 7 +-
.../client/indexing/HttpIndexingServiceClient.java | 21 +
.../client/indexing/IndexingServiceClient.java | 3 +
.../druid/client/indexing/TaskStatusResponse.java | 2 +-
.../ConnectionCountServerSelectorStrategy.java | 3 +-
.../client/selector/QueryableDruidServer.java | 16 +-
.../druid/guice/FireDepartmentsProvider.java | 59 -
.../org/apache/druid/guice/FirehoseModule.java | 6 +-
.../apache/druid/guice/RealtimeManagerConfig.java | 37 -
.../druid/initialization/Initialization.java | 4 +-
.../initialization/Log4jShutterDownerModule.java | 12 +-
.../druid/metadata/MetadataSegmentManager.java | 105 +-
.../metadata/MetadataSegmentManagerConfig.java | 5 +
.../druid/metadata/SQLMetadataRuleManager.java | 2 +-
.../druid/metadata/SQLMetadataSegmentManager.java | 1025 ++++---
.../druid/metadata/UnknownSegmentIdException.java | 18 +-
.../druid/query/ResultLevelCachingQueryRunner.java | 6 +-
.../druid/segment/indexing/RealtimeIOConfig.java | 16 +-
.../segment/indexing/RealtimeTuningConfig.java | 14 +
.../loading/SegmentLoaderLocalCacheManager.java | 7 +-
.../druid/segment/loading/StorageLocation.java | 55 +-
.../segment/loading/StorageLocationConfig.java | 56 +-
.../druid/segment/realtime/FireDepartment.java | 11 -
.../druid/segment/realtime/RealtimeManager.java | 393 ---
.../realtime/appenderator/AppenderatorConfig.java | 2 +
.../realtime/appenderator/AppenderatorImpl.java | 4 +-
.../realtime/appenderator/AppenderatorPlumber.java | 3 +-
.../appenderator/BaseAppenderatorDriver.java | 10 +-
.../firehose/EventReceiverFirehoseFactory.java | 5 +-
.../segment/realtime/firehose/InlineFirehose.java | 99 +
.../realtime/firehose/InlineFirehoseFactory.java | 77 +
.../realtime/firehose/PredicateFirehose.java | 1 +
.../realtime/firehose/SqlFirehoseFactory.java | 3 +
.../segment/realtime/firehose/package-info.java | 23 +
.../druid/segment/realtime/plumber/Committers.java | 13 -
.../segment/realtime/plumber/RealtimePlumber.java | 5 +-
.../apache/druid/server/BrokerQueryResource.java | 9 +-
.../java/org/apache/druid/server/JettyUtils.java | 40 +
.../org/apache/druid/server/QueryLifecycle.java | 10 +-
.../org/apache/druid/server/QueryResource.java | 48 +-
.../org/apache/druid/server/SegmentManager.java | 9 +-
.../server/SetAndVerifyContextQueryRunner.java | 5 +-
.../org/apache/druid/server/StatusResource.java | 3 +-
.../coordination/BatchDataSegmentAnnouncer.java | 24 +-
.../BatchDataSegmentAnnouncerProvider.java | 6 +-
.../coordination/ChangeRequestHttpSyncer.java | 5 +-
.../coordination/SegmentLoadDropHandler.java | 97 +-
.../druid/server/coordination/ZkCoordinator.java | 57 +-
.../coordinator/CoordinatorDynamicConfig.java | 207 +-
.../server/coordinator/CostBalancerStrategy.java | 24 +-
.../server/coordinator/CuratorLoadQueuePeon.java | 2 -
.../DiskNormalizedCostBalancerStrategy.java | 4 +-
.../druid/server/coordinator/DruidCluster.java | 33 +-
.../druid/server/coordinator/DruidCoordinator.java | 135 +-
.../DruidCoordinatorCleanupPendingSegments.java | 12 +-
.../coordinator/DruidCoordinatorRuntimeParams.java | 179 +-
.../coordinator/ReservoirSegmentSampler.java | 2 +-
.../server/coordinator/SegmentReplicantLookup.java | 2 +-
.../server/coordinator/cost/ClusterCostCache.java | 7 +-
.../server/coordinator/cost/ServerCostCache.java | 7 +-
.../helper/DruidCoordinatorBalancer.java | 20 +-
.../DruidCoordinatorCleanupOvershadowed.java | 53 +-
.../helper/DruidCoordinatorCleanupUnneeded.java | 13 +-
.../coordinator/helper/DruidCoordinatorLogger.java | 13 +-
.../helper/DruidCoordinatorRuleRunner.java | 27 +-
.../helper/DruidCoordinatorSegmentCompactor.java | 3 +-
.../helper/DruidCoordinatorSegmentInfoLoader.java | 53 +-
.../helper/DruidCoordinatorSegmentKiller.java | 45 +-
.../druid/server/coordinator/rules/DropRule.java | 2 +-
.../druid/server/coordinator/rules/Rule.java | 8 +-
.../druid/server/http/CoordinatorResource.java | 2 +-
.../druid/server/http/DataSourcesResource.java | 447 ++-
.../apache/druid/server/http/MetadataResource.java | 173 +-
.../apache/druid/server/http/RouterResource.java | 3 +
.../druid/server/http/SegmentListerResource.java | 8 +-
.../server/security/AuthenticationResult.java | 2 +
.../druid/server/security/AuthenticationUtils.java | 2 +-
.../druid/server/security/AuthorizationUtils.java | 30 +-
.../server/security/UnsecuredResourceFilter.java | 8 +-
.../CachingClusteredClientFunctionalityTest.java | 25 +-
.../druid/client/CachingClusteredClientTest.java | 69 +-
.../druid/client/CachingQueryRunnerTest.java | 12 +-
.../apache/druid/client/DirectDruidClientTest.java | 29 +-
.../druid/client/ImmutableDruidDataSourceTest.java | 84 +-
.../druid/client/ImmutableDruidServerTests.java | 39 +
.../druid/client/indexing/ClientKillQueryTest.java | 12 +-
.../client/indexing/NoopIndexingServiceClient.java | 7 +
.../druid/client/selector/ServerSelectorTest.java | 10 +-
.../org/apache/druid/guice/FirehoseModuleTest.java | 88 +
.../druid/initialization/InitializationTest.java | 19 +-
.../SQLMetadataSegmentManagerEmptyTest.java | 113 +
.../metadata/SQLMetadataSegmentManagerTest.java | 1025 +++----
.../query/lookup/LookupReferencesManagerTest.java | 181 +-
.../firehose/CombiningFirehoseFactoryTest.java | 159 -
.../segment/indexing/RealtimeTuningConfigTest.java | 10 +-
.../SegmentLoaderLocalCacheManagerTest.java | 36 +-
.../druid/segment/loading/StorageLocationTest.java | 12 +-
.../druid/segment/realtime/FireDepartmentTest.java | 3 +-
.../segment/realtime/RealtimeManagerTest.java | 1104 -------
.../appenderator/AppenderatorPlumberTest.java | 1 +
.../realtime/appenderator/AppenderatorTest.java | 18 +-
.../realtime/appenderator/AppenderatorTester.java | 1 +
.../DefaultOfflineAppenderatorFactoryTest.java | 1 +
.../appenderator/TestUsedSegmentChecker.java | 8 +-
.../firehose/CombiningFirehoseFactoryTest.java | 158 +
.../firehose/InlineFirehoseFactoryTest.java | 113 +
.../realtime/firehose/InlineFirehoseTest.java | 231 ++
.../plumber/RealtimePlumberSchoolTest.java | 1 +
.../druid/segment/realtime/plumber/SinkTest.java | 2 +
.../org/apache/druid/server/QueryResourceTest.java | 4 +-
.../server/SegmentManagerThreadSafetyTest.java | 2 +-
.../apache/druid/server/StatusResourceTest.java | 13 +-
.../server/coordination/ServerManagerTest.java | 8 +-
.../CoordinatorRuntimeParamsTestHelpers.java | 44 +
.../coordinator/CostBalancerStrategyTest.java | 3 +-
.../coordinator/CuratorDruidCoordinatorTest.java | 57 +-
.../DiskNormalizedCostBalancerStrategyTest.java | 3 +-
.../server/coordinator/DruidClusterBuilder.java | 61 +
.../druid/server/coordinator/DruidClusterTest.java | 34 +-
.../DruidCoordinatorBalancerProfiler.java | 139 +-
.../coordinator/DruidCoordinatorBalancerTest.java | 109 +-
.../DruidCoordinatorBalancerTester.java | 9 -
.../DruidCoordinatorRuleRunnerTest.java | 967 ++----
.../server/coordinator/DruidCoordinatorTest.java | 72 +-
.../coordinator/ReservoirSegmentSamplerTest.java | 9 +-
.../cost/CachingCostBalancerStrategyTest.java | 2 +-
.../coordinator/cost/SegmentsCostCacheTest.java | 25 +-
.../DruidCoordinatorCleanupOvershadowedTest.java | 41 +-
.../DruidCoordinatorSegmentCompactorTest.java | 42 +-
.../helper/DruidCoordinatorSegmentKillerTest.java | 39 +-
.../helper/NewestSegmentFirstPolicyTest.java | 13 +-
.../rules/BroadcastDistributionRuleSerdeTest.java | 8 +-
.../rules/BroadcastDistributionRuleTest.java | 193 +-
.../server/coordinator/rules/LoadRuleTest.java | 590 ++--
.../server/http/CoordinatorDynamicConfigTest.java | 34 +-
.../druid/server/http/DataSourcesResourceTest.java | 819 +++--
.../http/security/SecurityResourceFilterTest.java | 8 +-
.../druid/server/initialization/JettyQosTest.java | 5 +-
.../druid/server/initialization/JettyTest.java | 2 +-
...JavaScriptTieredBrokerSelectorStrategyTest.java | 24 +-
.../utils/ImmutableDruidDataSourceTestUtils.java | 94 +
.../java/org/apache/druid/cli/CliCoordinator.java | 12 +-
.../org/apache/druid/cli/CliMiddleManager.java | 5 +-
.../java/org/apache/druid/cli/CliOverlord.java | 8 +-
.../java/org/apache/druid/cli/CliRealtime.java | 73 -
.../org/apache/druid/cli/CliRealtimeExample.java | 131 -
.../cli/CoordinatorJettyServerInitializer.java | 8 +-
.../java/org/apache/druid/cli/DumpSegment.java | 37 +-
.../src/main/java/org/apache/druid/cli/Main.java | 6 -
.../cli/MiddleManagerJettyServerInitializer.java | 6 +-
.../druid/cli/QueryJettyServerInitializer.java | 4 +-
.../druid/cli/RouterJettyServerInitializer.java | 13 +-
.../org/apache/druid/guice/RealtimeModule.java | 133 -
.../test/java/org/apache/druid/cli/MainTest.java | 2 -
.../druid/cli/validate/DruidJsonValidatorTest.java | 4 +-
.../expression/DirectOperatorConversion.java | 5 +
.../druid/sql/calcite/expression/TimeUnits.java | 14 +-
.../ArrayConstructorOperatorConversion.java | 58 +
.../builtin/ArrayContainsOperatorConversion.java | 54 +
.../builtin/ArrayLengthOperatorConversion.java | 73 +
.../builtin/ArrayOffsetOfOperatorConversion.java | 77 +
.../builtin/ArrayOffsetOperatorConversion.java | 77 +
.../builtin/ArrayOrdinalOfOperatorConversion.java | 77 +
.../builtin/ArrayOrdinalOperatorConversion.java | 77 +
.../builtin/ArrayOverlapOperatorConversion.java | 54 +
.../builtin/ArrayToStringOperatorConversion.java | 77 +
.../BaseExpressionDimFilterOperatorConversion.java | 70 +
.../expression/builtin/CeilOperatorConversion.java | 54 +-
.../builtin/ExtractOperatorConversion.java | 7 +
.../builtin/FloorOperatorConversion.java | 46 +-
.../MultiValueStringAppendOperatorConversion.java | 76 +
.../MultiValueStringConcatOperatorConversion.java | 73 +
.../MultiValueStringPrependOperatorConversion.java | 76 +
.../MultiValueStringSliceOperatorConversion.java | 81 +
...StringToMultiValueStringOperatorConversion.java | 74 +
.../builtin/TimeCeilOperatorConversion.java | 75 +
.../builtin/TimeFloorOperatorConversion.java | 115 +-
.../apache/druid/sql/calcite/planner/Calcites.java | 3 +
.../sql/calcite/planner/DruidConvertletTable.java | 2 +
.../sql/calcite/planner/DruidOperatorTable.java | 40 +
.../sql/calcite/planner/DruidRexExecutor.java | 4 +
.../apache/druid/sql/calcite/rel/Projection.java | 12 +-
.../apache/druid/sql/calcite/rel/QueryMaker.java | 7 +
.../apache/druid/sql/calcite/rule/DruidRules.java | 10 +-
.../druid/sql/calcite/schema/SystemSchema.java | 2 +-
.../druid/sql/avatica/DruidAvaticaHandlerTest.java | 14 +
.../druid/sql/calcite/BaseCalciteQueryTest.java | 64 +-
.../apache/druid/sql/calcite/CalciteQueryTest.java | 1245 +++++++-
.../sql/calcite/expression/ExpressionsTest.java | 33 +-
.../druid/sql/calcite/schema/DruidSchemaTest.java | 3 +-
.../druid/sql/calcite/schema/SystemSchemaTest.java | 8 +-
.../druid/sql/calcite/util/CalciteTests.java | 47 +-
.../util/SpecificSegmentsQuerySegmentWalker.java | 5 +-
web-console/.gitignore | 1 +
web-console/README.md | 7 +-
web-console/assets/druid.png | Bin 0 -> 15699 bytes
web-console/assets/example.png | Bin 0 -> 8873 bytes
web-console/assets/hadoop.png | Bin 0 -> 47082 bytes
web-console/assets/http.png | Bin 0 -> 10407 bytes
web-console/assets/kafka.png | Bin 0 -> 18022 bytes
web-console/assets/kinesis.png | Bin 0 -> 15631 bytes
web-console/assets/local.png | Bin 0 -> 9211 bytes
web-console/assets/other.png | Bin 0 -> 9549 bytes
web-console/assets/static-google-blobstore.png | Bin 0 -> 19344 bytes
web-console/assets/static-s3.png | Bin 0 -> 16541 bytes
web-console/babel.config.js | 38 +
web-console/favicon.png | Bin 4514 -> 1644 bytes
web-console/package-lock.json | 2827 ++++++++++++------
web-console/package.json | 87 +-
web-console/script/build | 2 +-
web-console/script/cp-to | 1 +
web-console/script/create-sql-function-doc.js | 102 +-
web-console/script/licenses | 175 ++
web-console/script/mkcomp | 30 +-
web-console/src/ace-modes/dsql.js | 142 +
web-console/src/ace-modes/hjson.js | 300 ++
.../bootstrap/react-table-custom-pagination.tsx | 32 +-
web-console/src/bootstrap/react-table-defaults.tsx | 17 +-
.../src/components/action-cell/action-cell.scss | 1 -
.../components/action-cell/action-cell.spec.tsx | 7 +-
.../src/components/action-cell/action-cell.tsx | 27 +-
.../components/action-icon/action-icon.spec.tsx | 4 +-
.../src/components/action-icon/action-icon.tsx | 8 +-
.../components/array-input/array-input.spec.tsx | 16 +-
.../src/components/array-input/array-input.tsx | 27 +-
.../__snapshots__/auto-form.spec.tsx.snap | 2 +-
.../src/components/auto-form/auto-form.spec.tsx | 25 +-
web-console/src/components/auto-form/auto-form.tsx | 325 +-
.../center-message/center-message.spec.tsx | 7 +-
.../components/center-message/center-message.tsx | 11 +-
.../__snapshots__/clearable-input.spec.tsx.snap | 2 +-
.../clearable-input/clearable-input.spec.tsx | 13 +-
.../components/clearable-input/clearable-input.tsx | 20 +-
.../external-link/external-link.spec.tsx | 7 +-
.../src/components/external-link/external-link.tsx | 13 +-
.../__snapshots__/header-bar.spec.tsx.snap | 3 +
.../src/components/header-bar/header-bar.scss | 4 +-
.../src/components/header-bar/header-bar.spec.tsx | 7 +-
.../src/components/header-bar/header-bar.tsx | 290 +-
web-console/src/components/index.ts | 2 +
.../json-collapse/json-collapse.spec.tsx | 10 +-
.../src/components/json-collapse/json-collapse.tsx | 36 +-
.../src/components/json-input/json-input.spec.tsx | 8 +-
.../src/components/json-input/json-input.tsx | 66 +-
web-console/src/components/loader/loader.scss | 6 +-
web-console/src/components/loader/loader.spec.tsx | 7 +-
web-console/src/components/loader/loader.tsx | 52 +-
.../menu-checkbox/menu-checkbox.spec.tsx | 5 +-
.../src/components/menu-checkbox/menu-checkbox.tsx | 9 +-
.../components/refresh-button/refresh-button.tsx | 57 +
.../components/rule-editor/rule-editor.spec.tsx | 23 +-
.../src/components/rule-editor/rule-editor.tsx | 255 +-
.../src/components/show-json/show-json.spec.tsx | 8 +-
web-console/src/components/show-json/show-json.tsx | 74 +-
.../src/components/show-log/show-log.spec.tsx | 9 +-
web-console/src/components/show-log/show-log.tsx | 96 +-
.../__snapshots__/suggestible-input.spec.tsx.snap | 51 +
.../suggestible-input/suggestible-input.spec.tsx | 33 +
.../suggestible-input/suggestible-input.tsx | 106 +
.../__snapshots__/table-cell.spec.tsx.snap | 28 +-
.../src/components/table-cell/table-cell.scss | 3 +-
.../src/components/table-cell/table-cell.spec.tsx | 44 +-
.../src/components/table-cell/table-cell.tsx | 51 +-
.../table-column-selector.spec.tsx | 9 +-
.../table-column-selector.tsx | 56 +-
.../src/components/timed-button/timed-button.scss | 21 +
.../src/components/timed-button/timed-button.tsx | 131 +
.../view-control-bar/view-control-bar.scss | 2 +-
.../view-control-bar/view-control-bar.spec.tsx | 7 +-
.../view-control-bar/view-control-bar.tsx | 10 +-
web-console/src/console-application.scss | 2 +-
web-console/src/console-application.tsx | 250 +-
.../__snapshots__/about-dialog.spec.tsx.snap | 9 +-
.../src/dialogs/about-dialog/about-dialog.spec.tsx | 11 +-
.../src/dialogs/about-dialog/about-dialog.tsx | 84 +-
.../async-action-dialog.spec.tsx.snap | 2 +-
.../async-action-dialog/async-action-dialog.scss | 23 +
.../async-action-dialog.spec.tsx | 17 +-
.../async-action-dialog/async-action-dialog.tsx | 133 +-
.../__snapshots__/compaction-dialog.spec.tsx.snap | 2 +-
.../compaction-dialog/compaction-dialog.spec.tsx | 13 +-
.../compaction-dialog/compaction-dialog.tsx | 136 +-
...coordinator-dynamic-config-dialog.spec.tsx.snap | 114 +
.../coordinator-dynamic-config-dialog.scss | 47 +
.../coordinator-dynamic-config-dialog.spec.tsx | 30 +
.../coordinator-dynamic-config-dialog.tsx | 296 ++
.../coordinator-dynamic-config.spec.tsx.snap | 123 -
.../coordinator-dynamic-config.scss | 47 -
.../coordinator-dynamic-config.spec.tsx | 33 -
.../coordinator-dynamic-config.tsx | 184 --
.../src/dialogs/history-dialog/history-dialog.scss | 5 -
.../dialogs/history-dialog/history-dialog.spec.tsx | 16 +-
.../src/dialogs/history-dialog/history-dialog.tsx | 78 +-
web-console/src/dialogs/index.ts | 4 +-
.../lookup-edit-dialog/lookup-edit-dialog.scss | 8 +-
.../lookup-edit-dialog/lookup-edit-dialog.spec.tsx | 11 +-
.../lookup-edit-dialog/lookup-edit-dialog.tsx | 208 +-
.../overload-dynamic-config-dialog.spec.tsx.snap | 114 +
.../overload-dynamic-config-dialog.spec.tsx | 31 +
.../overlord-dynamic-config-dialog.scss | 52 +
.../overlord-dynamic-config-dialog.tsx | 157 +
.../overload-dynamic-config.spec.tsx.snap | 356 ---
.../overload-dynamic-config.spec.tsx | 42 -
.../overlord-dynamic-config.scss | 52 -
.../overlord-dynamic-config.tsx | 148 -
.../query-plan-dialog/query-plan-dialog.scss | 1 -
.../query-plan-dialog/query-plan-dialog.spec.tsx | 13 +-
.../query-plan-dialog/query-plan-dialog.tsx | 155 +-
.../__snapshots__/retention-dialog.spec.tsx.snap | 13 +-
.../retention-dialog.array.spec.ts | 57 -
.../retention-dialog/retention-dialog.spec.tsx | 48 +-
.../dialogs/retention-dialog/retention-dialog.tsx | 137 +-
.../segment-table-action-dialog.spec.tsx.snap | 182 ++
.../segment-table-action-dialog.spec.tsx | 38 +
.../segment-table-action-dialog.tsx | 78 +
.../__snapshots__/show-value-dialog.spec.tsx.snap | 107 +
.../show-value-dialog/show-value-dialog.scss | 32 +
.../show-value-dialog/show-value-dialog.spec.tsx | 37 +
.../show-value-dialog/show-value-dialog.tsx | 60 +
.../src/dialogs/snitch-dialog/snitch-dialog.scss | 1 -
.../dialogs/snitch-dialog/snitch-dialog.spec.tsx | 12 +-
.../src/dialogs/snitch-dialog/snitch-dialog.tsx | 153 +-
.../src/dialogs/spec-dialog/spec-dialog.scss | 4 +-
.../src/dialogs/spec-dialog/spec-dialog.spec.tsx | 13 +-
.../src/dialogs/spec-dialog/spec-dialog.tsx | 84 +-
.../supervisor-table-action-dialog.spec.tsx | 14 +-
.../supervisor-table-action-dialog.tsx | 90 +-
.../table-action-dialog/table-action-dialog.scss | 6 +-
.../table-action-dialog.spec.tsx | 13 +-
.../table-action-dialog/table-action-dialog.tsx | 47 +-
.../task-table-action-dialog.spec.tsx | 13 +-
.../task-table-action-dialog.tsx | 99 +-
web-console/src/entry.ts | 36 +-
web-console/src/singletons/toaster.ts | 2 +-
web-console/src/utils/basic-action.tsx | 28 +-
web-console/src/utils/druid-expression.ts | 4 +-
web-console/src/utils/druid-query.ts | 23 +-
web-console/src/utils/druid-time.ts | 23 +-
web-console/src/utils/druid-type.ts | 67 +-
web-console/src/utils/general.spec.ts | 38 +-
web-console/src/utils/general.tsx | 114 +-
web-console/src/utils/index.tsx | 1 -
web-console/src/utils/ingestion-spec.tsx | 1145 ++++---
web-console/src/utils/joda-to-regexp.spec.ts | 9 +-
web-console/src/utils/joda-to-regexp.ts | 2 +-
.../src/utils/local-storage-backed-array.tsx | 62 +
web-console/src/utils/local-storage-keys.tsx | 8 +-
web-console/src/utils/object-change.spec.ts | 69 +-
web-console/src/utils/object-change.ts | 3 +-
web-console/src/utils/query-context.tsx | 12 +-
web-console/src/utils/query-manager.tsx | 76 +-
web-console/src/utils/query-state.ts | 2 +-
web-console/src/utils/rune-decoder.tsx | 32 +-
web-console/src/utils/sampler.ts | 267 +-
web-console/src/utils/spec-utils.spec.ts | 32 +-
web-console/src/utils/spec-utils.ts | 29 +-
.../src/utils/table-column-selection-handler.tsx | 61 -
.../__snapshots__/datasource-view.spec.tsx.snap | 84 +-
.../src/views/datasource-view/datasource-view.scss | 2 +-
.../views/datasource-view/datasource-view.spec.tsx | 7 +-
.../src/views/datasource-view/datasource-view.tsx | 900 +++---
web-console/src/views/home-view/home-view.scss | 2 +-
web-console/src/views/home-view/home-view.spec.tsx | 5 +-
web-console/src/views/home-view/home-view.tsx | 319 +-
.../__snapshots__/load-data-view.spec.tsx.snap | 184 +-
.../filter-table/filter-table.spec.tsx | 26 +-
.../load-data-view/filter-table/filter-table.tsx | 99 +-
.../src/views/load-data-view/load-data-view.scss | 62 +-
.../views/load-data-view/load-data-view.spec.tsx | 5 +-
.../src/views/load-data-view/load-data-view.tsx | 3122 +++++++++++---------
.../parse-data-table/parse-data-table.scss | 2 +-
.../parse-data-table/parse-data-table.spec.tsx | 27 +-
.../parse-data-table/parse-data-table.tsx | 124 +-
.../parse-time-table/parse-time-table.scss | 2 +-
.../parse-time-table/parse-time-table.spec.tsx | 28 +-
.../parse-time-table/parse-time-table.tsx | 137 +-
.../load-data-view/schema-table/schema-table.scss | 16 +-
.../schema-table/schema-table.spec.tsx | 32 +-
.../load-data-view/schema-table/schema-table.tsx | 168 +-
.../transform-table/transform-table.spec.tsx | 26 +-
.../transform-table/transform-table.tsx | 108 +-
.../__snapshots__/lookups-view.spec.tsx.snap | 27 +-
.../src/views/lookups-view/lookups-view.spec.tsx | 3 +-
.../src/views/lookups-view/lookups-view.tsx | 388 +--
.../query-view/column-tree/column-tree.spec.tsx | 39 +-
.../views/query-view/column-tree/column-tree.tsx | 109 +-
.../query-extra-info/query-extra-info.spec.tsx | 26 +-
.../query-extra-info/query-extra-info.tsx | 73 +-
.../src/views/query-view/query-input/keywords.ts | 74 +
.../views/query-view/query-input/query-input.scss | 8 +-
.../query-view/query-input/query-input.spec.tsx | 16 +-
.../views/query-view/query-input/query-input.tsx | 172 +-
.../query-view/query-output/query-output.spec.tsx | 8 +-
.../views/query-view/query-output/query-output.tsx | 29 +-
web-console/src/views/query-view/query-view.scss | 5 +-
.../src/views/query-view/query-view.spec.tsx | 9 +-
web-console/src/views/query-view/query-view.tsx | 220 +-
.../views/query-view/run-button/run-button.scss | 21 -
.../query-view/run-button/run-button.spec.tsx | 18 +-
.../src/views/query-view/run-button/run-button.tsx | 156 +-
.../__snapshots__/segments-view.spec.tsx.snap | 607 ++--
.../src/views/segments-view/segments-view.scss | 2 +-
.../src/views/segments-view/segments-view.spec.tsx | 5 +-
.../src/views/segments-view/segments-view.tsx | 809 +++--
.../__snapshots__/servers-view.spec.tsx.snap | 31 +-
.../src/views/servers-view/servers-view.scss | 6 +-
.../src/views/servers-view/servers-view.spec.tsx | 7 +-
.../src/views/servers-view/servers-view.tsx | 800 ++---
.../__snapshots__/tasks-view.spec.tsx.snap | 135 +-
web-console/src/views/task-view/tasks-view.scss | 2 +-
.../src/views/task-view/tasks-view.spec.tsx | 7 +-
web-console/src/views/task-view/tasks-view.tsx | 1401 +++++----
web-console/tsconfig.json | 17 +-
web-console/tslint.json | 4 +-
web-console/unified-console.html | 24 +-
web-console/webpack.config.js | 77 +-
1340 files changed, 50532 insertions(+), 34706 deletions(-)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org