From b6b9a4848ec7c05ea31dd49212611e6b205aaeca Mon Sep 17 00:00:00 2001 From: Robert Hajek Date: Tue, 11 Feb 2020 16:35:36 +0100 Subject: [PATCH 1/5] [ZEPPELIN-4602] Added initial version of InfluxDB interpreter --- .../zeppelin/img/docs-img/influxdb1.png | Bin 0 -> 159175 bytes .../zeppelin/img/docs-img/influxdb2.png | Bin 0 -> 76681 bytes docs/interpreter/influxdb.md | 111 ++++++ influxdb/README.md | 18 + influxdb/pom.xml | 87 +++++ .../influxdb/InfluxDBInterpreter.java | 203 +++++++++++ .../main/resources/interpreter-setting.json | 42 +++ .../influxdb/InfluxDBInterpeterTest.java | 327 ++++++++++++++++++ pom.xml | 1 + 9 files changed, 789 insertions(+) create mode 100644 docs/assets/themes/zeppelin/img/docs-img/influxdb1.png create mode 100644 docs/assets/themes/zeppelin/img/docs-img/influxdb2.png create mode 100644 docs/interpreter/influxdb.md create mode 100644 influxdb/README.md create mode 100644 influxdb/pom.xml create mode 100644 influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java create mode 100644 influxdb/src/main/resources/interpreter-setting.json create mode 100644 influxdb/src/test/java/org/apache/zeppelin/influxdb/InfluxDBInterpeterTest.java diff --git a/docs/assets/themes/zeppelin/img/docs-img/influxdb1.png b/docs/assets/themes/zeppelin/img/docs-img/influxdb1.png new file mode 100644 index 0000000000000000000000000000000000000000..6731c5671d8ad871039731c1d9a082328f54a2af GIT binary patch literal 159175 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¡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 ZmZ1{|uGJq>Sp$EmC~5wkbIcO|{{Upx0%-sM literal 0 HcmV?d00001 diff --git a/docs/interpreter/influxdb.md b/docs/interpreter/influxdb.md new file mode 100644 index 00000000000..b3cf051e954 --- /dev/null +++ b/docs/interpreter/influxdb.md @@ -0,0 +1,111 @@ +--- +layout: page +title: "InfluxDB Interpreter for Apache Zeppelin" +description: "InfluxDB is an open-source time series database designed to handle high write and query loads." +group: interpreter +--- + +{% include JB/setup %} + +# InfluxDB Interpreter for Apache Zeppelin + +
+ +## Overview +[InfluxDB](https://v2.docs.influxdata.com/v2.0/) is an open-source time series database (TSDB) developed by InfluxData. It is written in Go and optimized for fast, high-availability storage and retrieval of time series data in fields such as operations monitoring, application metrics, Internet of Things sensor data, and real-time analytics. +This interpreter allows to perform queries in [Flux Language](https://v2.docs.influxdata.com/v2.0/reference/flux/) in Zeppelin Notebook. + +### Notes +* This interpreter is compatible with InfluxDB 2.0+ (v2 API, Flux language) +* Code complete and syntax highlighting is not supported for now + +### Example notebook + +![InfluxDB notebook]({{BASE_PATH}}/assets/themes/zeppelin/img/docs-img/influxdb1.png) + +### Configuration + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDefaultValue
influxdb.urlhttp://localhost:9999InfluxDB API connection url
influxdb.orgmy-orgorganization name
influxdb.tokenmy-tokenauthorization token for InfluxDB API
influxdb.logLevelNONEInfluxDB client library verbosity level (for debugging purpose)
+ +#### Example configuration + +![InfluxDB notebook]({{BASE_PATH}}/assets/themes/zeppelin/img/docs-img/influxdb2.png) + +## Overview + + +## How to use +Basically, you can use + +``` +%influxdb +from(bucket: "my-bucket") + |> range(start: -1h) + |> filter(fn: (r) => r._measurement == "cpu") + |> filter(fn: (r) => r.cpu == "cpu-total") + |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value") +``` +In this example we use data collected by `[[inputs.cpu]]` [Telegraf](https://github.com/influxdata/telegraf) input plugin. + +The result of Flux command can contain more one or more tables. In the case of multiple tables, each +table is rendered as a separate %table structure. This example uses `pivot` +function to collect values from multiple tables into single table. + +## How to run InfluxDB 2.0 using docker +```bash +docker pull quay.io/influxdb/influxdb:nightly +docker run --name influxdb -p 9999:9999 quay.io/influxdb/influxdb:nightly + +## Post onBoarding request, to setup initial user (my-user@my-password), org (my-org) and bucketSetup (my-bucket)" +curl -i -X POST http://localhost:9999/api/v2/setup -H 'accept: application/json' \ + -d '{ + "username": "my-user", + "password": "my-password", + "org": "my-org", + "bucket": "my-bucket", + "token": "my-token" + }' + +``` + + + + + diff --git a/influxdb/README.md b/influxdb/README.md new file mode 100644 index 00000000000..e9fd86aaaaf --- /dev/null +++ b/influxdb/README.md @@ -0,0 +1,18 @@ +InfluxDB 2.0 interpreter for Apache Zeppelin +============================================ + +## Description: + +Provide InfluxDB Interpreter for Zeppelin. + +## Build + +``` +mvn -pl zeppelin-interpreter,zeppelin-display,influxdb -DskipTests package +``` + +## Test + +``` +mvn -pl influxdb,zeppelin-display,zeppelin-interpreter -Dtest='org.apache.zeppelin.influxdb.*' -DfailIfNoTests=false test +``` diff --git a/influxdb/pom.xml b/influxdb/pom.xml new file mode 100644 index 00000000000..33d4e1624b5 --- /dev/null +++ b/influxdb/pom.xml @@ -0,0 +1,87 @@ + + + + + 4.0.0 + + zeppelin-interpreter-parent + org.apache.zeppelin + 0.9.0-SNAPSHOT + ../zeppelin-interpreter-parent/pom.xml + + + zeppelin-influxdb + jar + 0.9.0-SNAPSHOT + Zeppelin: InfluxDB interpreter + InfluxDB 2.0 timeseries database support + + + influxdb + UTF-8 + + 1.4.0 + 3.13.1 + 2.8.5 + + + + + com.influxdb + influxdb-client-java + ${influxdb.client.version} + + + com.google.code.gson + gson + ${dependency.gson.version} + + + com.squareup.okhttp3 + mockwebserver + ${dependency.okhttp3.version} + test + + + + + + + maven-enforcer-plugin + + + maven-dependency-plugin + + + maven-resources-plugin + + + maven-shade-plugin + + + org.apache.maven.plugins + maven-checkstyle-plugin + + false + + + + + diff --git a/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java b/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java new file mode 100644 index 00000000000..9bade0b92fc --- /dev/null +++ b/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java @@ -0,0 +1,203 @@ +/** + * 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.zeppelin.influxdb; + +import java.util.Properties; +import java.util.StringJoiner; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.atomic.AtomicReference; + +import com.influxdb.LogLevel; +import com.influxdb.client.InfluxDBClient; +import com.influxdb.client.InfluxDBClientFactory; +import com.influxdb.client.InfluxDBClientOptions; +import com.influxdb.client.QueryApi; +import org.apache.zeppelin.interpreter.AbstractInterpreter; +import org.apache.zeppelin.interpreter.BaseZeppelinContext; +import org.apache.zeppelin.interpreter.InterpreterContext; +import org.apache.zeppelin.interpreter.InterpreterException; +import org.apache.zeppelin.interpreter.InterpreterResult; + +/** + * InfluxDB 2.0 interpreter for Zeppelin. + * It uses /v2/query API, query is written in Flux Language. + *

+ * How to use:
+ *

+ * {@code
+ * %influxdb
+ * from(bucket: "my-bucket")
+ *   |> range(start: -5m)
+ *   |> filter(fn: (r) => r._measurement == "cpu")
+ *   |> filter(fn: (r) => r._field == "usage_user")
+ *   |> filter(fn: (r) => r.cpu == "cpu-total")
+ * }
+ * 
+ *

+ */ +public class InfluxDBInterpreter extends AbstractInterpreter { + + static final String INFLUXDB_API_URL_PROPERTY = "influxdb.url"; + static final String INFLUXDB_TOKEN_PROPERTY = "influxdb.token"; + static final String INFLUXDB_ORG_PROPERTY = "influxdb.org"; + private static final String INFLUXDB_LOGLEVEL_PROPERTY = "influxdb.logLevel"; + + private static final String TABLE_MAGIC_TAG = "%table "; + private static final String WHITESPACE = " "; + private static final String NEWLINE = "\n"; + private static final String TAB = "\t"; + static final String EMPTY_COLUMN_VALUE = ""; + + InfluxDBClient client; + QueryApi queryApi; + + public InfluxDBInterpreter(Properties properties) { + super(properties); + } + + @Override + public BaseZeppelinContext getZeppelinContext() { + return null; + } + + @Override + protected InterpreterResult internalInterpret(String query, InterpreterContext context) + throws InterpreterException { + + logger.debug("Run Flux command '{}'", query); + query = query.trim(); + + QueryApi queryService = getInfluxDBClient(context); + + final int[] actualIndex = {-1}; + + AtomicReference resultRef = new AtomicReference<>(); + CountDownLatch countDownLatch = new CountDownLatch(1); + + StringBuilder result = new StringBuilder(); + queryService.query( + query, + + //process record + (cancellable, fluxRecord) -> { + + Integer tableIndex = fluxRecord.getTable(); + if (actualIndex[0] != tableIndex) { + result.append(NEWLINE); + result.append(TABLE_MAGIC_TAG); + actualIndex[0] = tableIndex; + + //add column names to table header + StringJoiner joiner = new StringJoiner(TAB); + fluxRecord.getValues().keySet().forEach(c -> joiner.add(replaceReservedChars(c))); + result.append(joiner.toString()); + result.append(NEWLINE); + } + + StringJoiner rowsJoiner = new StringJoiner(TAB); + for (Object value : fluxRecord.getValues().values()) { + if (value == null) { + value = EMPTY_COLUMN_VALUE; + } + rowsJoiner.add(replaceReservedChars(value.toString())); + } + result.append(rowsJoiner.toString()); + result.append(NEWLINE); + }, + + throwable -> { + + logger.error(throwable.getMessage(), throwable); + resultRef.set(new InterpreterResult(InterpreterResult.Code.ERROR, + throwable.getMessage())); + + countDownLatch.countDown(); + + }, () -> { + //on complete + InterpreterResult intpResult = new InterpreterResult(InterpreterResult.Code.SUCCESS); + intpResult.add(result.toString()); + resultRef.set(intpResult); + countDownLatch.countDown(); + } + ); + try { + countDownLatch.await(); + } catch (InterruptedException e) { + throw new InterpreterException(e); + } + + return resultRef.get(); + } + + + private QueryApi getInfluxDBClient(InterpreterContext context) { + if (queryApi == null) { + queryApi = this.client.getQueryApi(); + } + return queryApi; + } + + + @Override + public void open() throws InterpreterException { + + if (this.client == null) { + InfluxDBClientOptions opt = InfluxDBClientOptions.builder() + .url(getProperty(INFLUXDB_API_URL_PROPERTY)) + .authenticateToken(getProperty(INFLUXDB_TOKEN_PROPERTY).toCharArray()) + .logLevel(LogLevel.valueOf( + getProperty(INFLUXDB_LOGLEVEL_PROPERTY, LogLevel.NONE.toString()))) + .org(getProperty(INFLUXDB_ORG_PROPERTY)) + .build(); + + this.client = InfluxDBClientFactory.create(opt); + } + } + + @Override + public void close() throws InterpreterException { + if (this.client != null) { + this.client.close(); + this.client = null; + } + } + + @Override + public void cancel(InterpreterContext context) throws InterpreterException { + + } + + @Override + public FormType getFormType() throws InterpreterException { + return FormType.SIMPLE; + } + + @Override + public int getProgress(InterpreterContext context) throws InterpreterException { + return 0; + } + + /** + * For %table response replace Tab and Newline. + */ + private String replaceReservedChars(String str) { + if (str == null) { + return EMPTY_COLUMN_VALUE; + } + return str.replace(TAB, WHITESPACE).replace(NEWLINE, WHITESPACE); + } + +} diff --git a/influxdb/src/main/resources/interpreter-setting.json b/influxdb/src/main/resources/interpreter-setting.json new file mode 100644 index 00000000000..363b9ef3830 --- /dev/null +++ b/influxdb/src/main/resources/interpreter-setting.json @@ -0,0 +1,42 @@ +[ + { + "group": "influxdb", + "name": "influxdb", + "className": "org.apache.zeppelin.influxdb.InfluxDBInterpreter", + "properties": { + "influxdb.url": { + "envName": null, + "propertyName": "influxdb.url", + "defaultValue": "http://localhost:9999", + "description": "The URL for InfluxDB 2.X API", + "type": "string" + }, + "influxdb.token": { + "envName": null, + "propertyName": "influxdb.token", + "defaultValue": "my-token", + "description": "InfluxDB auth token", + "type": "password" + }, + "influxdb.org": { + "envName": null, + "propertyName": "influxdb.org", + "defaultValue": "my-org", + "description": "InfluxDB org name", + "type": "string" + }, + "influxdb.logLevel": { + "envName": null, + "propertyName": "influxdb.logLevel", + "defaultValue": "NONE", + "description": "InfluxDB http client library verbosity level (NONE, BASIC, HEADERS, BODY)", + "type": "string" + } + }, + "editor": { + "language": "sql", + "editOnDblClick": false, + "completionSupport": false + } + } +] diff --git a/influxdb/src/test/java/org/apache/zeppelin/influxdb/InfluxDBInterpeterTest.java b/influxdb/src/test/java/org/apache/zeppelin/influxdb/InfluxDBInterpeterTest.java new file mode 100644 index 00000000000..3ed6385f5f9 --- /dev/null +++ b/influxdb/src/test/java/org/apache/zeppelin/influxdb/InfluxDBInterpeterTest.java @@ -0,0 +1,327 @@ +/** + * 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.zeppelin.influxdb; + +import java.io.IOException; +import java.util.List; +import java.util.Properties; +import javax.annotation.Nonnull; + +import com.influxdb.LogLevel; +import okhttp3.mockwebserver.MockResponse; +import okhttp3.mockwebserver.MockWebServer; +import org.apache.zeppelin.interpreter.InterpreterContext; +import org.apache.zeppelin.interpreter.InterpreterException; +import org.apache.zeppelin.interpreter.InterpreterResult; +import org.apache.zeppelin.interpreter.InterpreterResultMessage; +import org.apache.zeppelin.user.AuthenticationInfo; +import org.junit.After; +import org.junit.Assert; +import static org.junit.Assert.assertEquals; +import org.junit.Before; +import org.junit.Test; + + +public class InfluxDBInterpeterTest { + + Properties properties; + + static final String SINGLE_TABLE_RESPONSE = + "#datatype,string,long,dateTime:RFC3339,double,string\n" + + "#group,false,false,false,false,true\n" + + "#default,_result,,,,\n" + + ",result,table,_time,_value,_field\n" + + ",,0,2020-01-24T10:23:56Z,12.114014251781473,usage_user\n" + + ",,0,2020-01-24T10:23:57Z,12.048493938257717,usage_user\n" + + ",,0,2020-01-24T10:24:06Z,12.715678919729932,usage_user\n" + + ",,0,2020-01-24T10:24:07Z,11.876484560570072,usage_user\n" + + ",,0,2020-01-24T10:24:16Z,10.044977511244378,usage_user\n" + + ",,0,2020-01-24T10:24:17Z,10.594702648675662,usage_user\n" + + ",,0,2020-01-24T10:24:26Z,12.092034512942353,usage_user\n" + + ",,0,2020-01-24T10:24:27Z,12.131065532766383,usage_user\n" + + ",,0,2020-01-24T10:24:36Z,14.332125452955141,usage_user\n" + + ",,0,2020-01-24T10:24:37Z,15.153788447111777,usage_user"; + + static final String MULTI_TABLE_RESPONSE = + "#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339," + + "string,string,string,string,double,dateTime:RFC3339\n" + + "#group,false,false,true,true,true,true,true,true,false,false\n" + + "#default,_result,,,,,,,,,\n" + + ",result,table,_start,_stop,_field,_measurement,cpu,host,_value,_time\n" + + ",,0,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu," + + "cpu-total,macek.local,12.381414297598637,2020-01-24T09:28:00Z\n" + + ",,0,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu," + + "cpu-total,macek.local,18.870254041431455,2020-01-24T09:29:00Z\n" + + ",,0,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu," + + "cpu-total,macek.local,26.64080311971415,2020-01-24T09:30:00Z\n" + + ",,0,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu," + + "cpu-total,macek.local,11.644120979499911,2020-01-24T09:31:00Z\n" + + ",,0,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu," + + "cpu-total,macek.local,16.046354351571846,2020-01-24T09:32:00Z\n" + + ",,1,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu0," + + "macek.local,23.525686625686625,2020-01-24T09:28:00Z\n" + + ",,1,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu0," + + "macek.local,31.582258129037516,2020-01-24T09:29:00Z\n" + + ",,1,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu0," + + "macek.local,39.20349852756812,2020-01-24T09:30:00Z\n" + + ",,1,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu0," + + "macek.local,23.533275499942164,2020-01-24T09:31:00Z\n" + + ",,1,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu0," + + "macek.local,19.11247206247206,2020-01-24T09:32:00Z\n" + + ",,2,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu1," + + "macek.local,3.775801800801801,2020-01-24T09:28:00Z\n" + + ",,2,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu1," + + "macek.local,8.776226876226875,2020-01-24T09:29:00Z\n" + + ",,2,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu1," + + "macek.local,16.15592568092568,2020-01-24T09:30:00Z\n" + + ",,2,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu1," + + "macek.local,3.466367149700483,2020-01-24T09:31:00Z\n" + + ",,2,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu1," + + "macek.local,10.123511023511023,2020-01-24T09:32:00Z\n" + + ",,3,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu2," + + "macek.local,23.186861861861857,2020-01-24T09:28:00Z\n" + + ",,3,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu2," + + "macek.local,30.502449226101927,2020-01-24T09:29:00Z\n" + + ",,3,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu2," + + "macek.local,37.800263500263505,2020-01-24T09:30:00Z\n" + + ",,3,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu2," + + "macek.local,21.04487655320989,2020-01-24T09:31:00Z\n" + + ",,3,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu2," + + "macek.local,23.40988960155627,2020-01-24T09:32:00Z\n" + + ",,4,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu3," + + "macek.local,3.7013513513513514,2020-01-24T09:28:00Z\n" + + ",,4,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu3," + + "macek.local,8.669684156858507,2020-01-24T09:29:00Z\n" + + ",,4,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu3," + + "macek.local,16.4761093606771,2020-01-24T09:30:00Z\n" + + ",,4,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu3," + + "macek.local,3.416193908762379,2020-01-24T09:31:00Z\n" + + ",,4,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu3," + + "macek.local,10.391479708146376,2020-01-24T09:32:00Z\n" + + ",,5,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu4," + + "macek.local,20.520504495504497,2020-01-24T09:28:00Z\n" + + ",,5,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu4," + + "macek.local,28.435828535828534,2020-01-24T09:29:00Z\n" + + ",,5,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu4," + + "macek.local,35.76454396684968,2020-01-24T09:30:00Z\n" + + ",,5,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu4," + + "macek.local,18.94977031643698,2020-01-24T09:31:00Z\n" + + ",,5,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu4," + + "macek.local,22.81423008923009,2020-01-24T09:32:00Z\n" + + ",,6,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu5," + + "macek.local,3.4502771752771753,2020-01-24T09:28:00Z\n" + + ",,6,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu5," + + "macek.local,8.617365310885685,2020-01-24T09:29:00Z\n" + + ",,6,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu5," + + "macek.local,16.5813353653174,2020-01-24T09:30:00Z\n" + + ",,6,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu5," + + "macek.local,3.341634649967983,2020-01-24T09:31:00Z\n" + + ",,6,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu5," + + "macek.local,10.489286880953548,2020-01-24T09:32:00Z\n" + + ",,7,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu6," + + "macek.local,17.42073857073857,2020-01-24T09:28:00Z\n" + + ",,7,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu6," + + "macek.local,25.555054526024517,2020-01-24T09:29:00Z\n" + + ",,7,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu6," + + "macek.local,34.19774496441163,2020-01-24T09:30:00Z\n" + + ",,7,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu6," + + "macek.local,15.985298393631725,2020-01-24T09:31:00Z\n" + + ",,7,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu6," + + "macek.local,21.359203467536798,2020-01-24T09:32:00Z\n" + + ",,8,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu7," + + "macek.local,3.4507517507517504,2020-01-24T09:28:00Z\n" + + ",,8,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu7," + + "macek.local,8.817554700888033,2020-01-24T09:29:00Z\n" + + ",,8,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu7," + + "macek.local,16.957243048909714,2020-01-24T09:30:00Z\n" + + ",,8,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu7," + + "macek.local,3.408601950268617,2020-01-24T09:31:00Z\n" + + ",,8,2020-01-24T09:27:44.8452185Z,2020-01-24T10:27:44.8452185Z,usage_user,cpu,cpu7," + + "macek.local,10.672760839427506,2020-01-24T09:32:00Z"; + + protected MockWebServer mockServer; + + /** + * Start Mock server. + * + * @return the mock server URL + */ + @Nonnull + protected String startMockServer() { + + mockServer = new MockWebServer(); + try { + mockServer.start(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + return mockServer.url("/").url().toString(); + } + + + @Nonnull + protected MockResponse createResponse(final String data) { + return createResponse(data, "text/csv", true); + } + + @Nonnull + protected MockResponse createResponse(final String data, final String + contentType, final boolean chunked) { + + MockResponse response = new MockResponse() + .setHeader("Content-Type", contentType + "; charset=utf-8") + .setHeader("Date", "Tue, 26 Jun 2018 13:15:01 GMT"); + + if (chunked) { + response.setChunkedBody(data, data.length()); + } else { + response.setBody(data); + } + + return response; + } + + + @Before + public void before() throws InterpreterException { + //properties for local influxdb2 server + properties = new Properties(); + //properties.setProperty("influxdb.url", "http://localhost:9999"); + properties.setProperty("influxdb.url", startMockServer()); + + properties.setProperty("influxdb.token", "my-token"); + properties.setProperty("influxdb.org", "my-org"); + properties.setProperty("influxdb.logLevel", LogLevel.BODY.toString()); + } + + @After + public void after() throws IOException { + if (mockServer != null) { + mockServer.shutdown(); + } + } + + @Test + public void testSigleTable() throws InterpreterException { + + InfluxDBInterpreter t = new InfluxDBInterpreter(properties); + t.open(); + + //just for testing with real influxdb (not used in mock) + String flux = "from(bucket: \"my-bucket\")\n" + + " |> range(start:-1m)\n" + + " |> filter(fn: (r) => r._measurement == \"cpu\")\n" + + " |> filter(fn: (r) => r._field == \"usage_user\")\n" + + " |> filter(fn: (r) => r.cpu == \"cpu-total\")\n" + + " |> limit(n:5, offset: 0)" + + " |> keep(columns: [\"_field\", \"_value\", \"_time\"])"; + + InterpreterContext context = InterpreterContext.builder() + .setAuthenticationInfo(new AuthenticationInfo("testUser")) + .build(); + + mockServer.enqueue(createResponse(SINGLE_TABLE_RESPONSE)); + + InterpreterResult interpreterResult = t.interpret(flux, context); + + // if prefix not found return ERROR and Prefix not found. + assertEquals(InterpreterResult.Code.SUCCESS, interpreterResult.code()); + + List message = interpreterResult.message(); + Assert.assertEquals(1, message.size()); + Assert.assertEquals(InterpreterResult.Type.TABLE, message.get(0).getType()); + Assert.assertEquals("result\ttable\t_time\t_value\t_field\n" + + "_result\t0\t2020-01-24T10:23:56Z\t12.114014251781473\tusage_user\n" + + "_result\t0\t2020-01-24T10:23:57Z\t12.048493938257717\tusage_user\n" + + "_result\t0\t2020-01-24T10:24:06Z\t12.715678919729932\tusage_user\n" + + "_result\t0\t2020-01-24T10:24:07Z\t11.876484560570072\tusage_user\n" + + "_result\t0\t2020-01-24T10:24:16Z\t10.044977511244378\tusage_user\n" + + "_result\t0\t2020-01-24T10:24:17Z\t10.594702648675662\tusage_user\n" + + "_result\t0\t2020-01-24T10:24:26Z\t12.092034512942353\tusage_user\n" + + "_result\t0\t2020-01-24T10:24:27Z\t12.131065532766383\tusage_user\n" + + "_result\t0\t2020-01-24T10:24:36Z\t14.332125452955141\tusage_user\n" + + "_result\t0\t2020-01-24T10:24:37Z\t15.153788447111777\tusage_user\n", + message.get(0).getData()); + + t.close(); + } + + @Test + public void testMultiTable() throws InterpreterException { + + InfluxDBInterpreter t = new InfluxDBInterpreter(properties); + t.open(); + + //just for testing with real influxdb (not used in mock) + String flux = "from(bucket: \"my-bucket\")\n" + + " |> range(start: -1h)\n" + + " |> filter(fn: (r) => r._measurement == \"cpu\")\n" + + " |> filter(fn: (r) => r._field == \"usage_user\")\n" + + " |> aggregateWindow(every: 1m, fn: mean)\n" + + " |> limit(n:5, offset: 0)"; + + InterpreterContext context = InterpreterContext.builder() + .setAuthenticationInfo(new AuthenticationInfo("testUser")) + .build(); + + mockServer.enqueue(createResponse(MULTI_TABLE_RESPONSE)); + InterpreterResult interpreterResult = t.interpret(flux, context); + + // if prefix not found return ERROR and Prefix not found. + if (InterpreterResult.Code.ERROR.equals(interpreterResult.code())) { + Assert.fail(interpreterResult.toString()); + } + + assertEquals(InterpreterResult.Code.SUCCESS, interpreterResult.code()); + List message = interpreterResult.message(); + + Assert.assertEquals(9, message.size()); + + message.forEach(m -> Assert.assertEquals(InterpreterResult.Type.TABLE, m.getType())); + + Assert.assertEquals( + "result\ttable\t_start\t_stop\t_field\t_measurement\tcpu\thost\t_value\t_time\n" + + "_result\t0\t2020-01-24T09:27:44.845218500Z\t2020-01-24T10:27:44.845218500Z\tusage_user" + + "\tcpu\tcpu-total\tmacek.local\t12.381414297598637\t2020-01-24T09:28:00Z\n" + + "_result\t0\t2020-01-24T09:27:44.845218500Z\t2020-01-24T10:27:44.845218500Z\tusage_user" + + "\tcpu\tcpu-total\tmacek.local\t18.870254041431455\t2020-01-24T09:29:00Z\n" + + "_result\t0\t2020-01-24T09:27:44.845218500Z\t2020-01-24T10:27:44.845218500Z\tusage_user" + + "\tcpu\tcpu-total\tmacek.local\t26.64080311971415\t2020-01-24T09:30:00Z\n" + + "_result\t0\t2020-01-24T09:27:44.845218500Z\t2020-01-24T10:27:44.845218500Z\tusage_user" + + "\tcpu\tcpu-total\tmacek.local\t11.644120979499911\t2020-01-24T09:31:00Z\n" + + "_result\t0\t2020-01-24T09:27:44.845218500Z\t2020-01-24T10:27:44.845218500Z\tusage_user" + + "\tcpu\tcpu-total\tmacek.local\t16.046354351571846\t2020-01-24T09:32:00Z\n", + message.get(0).getData()); + + Assert.assertEquals("result\ttable\t_start\t_stop\t_field\t_measurement\tcpu\thost\t_value" + + "\t_time\n" + + "_result\t8\t2020-01-24T09:27:44.845218500Z\t2020-01-24T10:27:44.845218500Z\tusage_user" + + "\tcpu\tcpu7\tmacek.local\t3.4507517507517504\t2020-01-24T09:28:00Z\n" + + "_result\t8\t2020-01-24T09:27:44.845218500Z\t2020-01-24T10:27:44.845218500Z\tusage_user" + + "\tcpu\tcpu7\tmacek.local\t8.817554700888033\t2020-01-24T09:29:00Z\n" + + "_result\t8\t2020-01-24T09:27:44.845218500Z\t2020-01-24T10:27:44.845218500Z\tusage_user" + + "\tcpu\tcpu7\tmacek.local\t16.957243048909714\t2020-01-24T09:30:00Z\n" + + "_result\t8\t2020-01-24T09:27:44.845218500Z\t2020-01-24T10:27:44.845218500Z\tusage_user" + + "\tcpu\tcpu7\tmacek.local\t3.408601950268617\t2020-01-24T09:31:00Z\n" + + "_result\t8\t2020-01-24T09:27:44.845218500Z\t2020-01-24T10:27:44.845218500Z\tusage_user" + + "\tcpu\tcpu7\tmacek.local\t10.672760839427506\t2020-01-24T09:32:00Z\n", + message.get(8).getData()); + + t.close(); + } + +} diff --git a/pom.xml b/pom.xml index 8c358f3aed6..6e6e232a0bf 100644 --- a/pom.xml +++ b/pom.xml @@ -75,6 +75,7 @@ file flink ignite + influxdb kylin python lens From 04b7e28d81aa2ed260a6bbd73c7891eb9db4a1e0 Mon Sep 17 00:00:00 2001 From: Robert Hajek Date: Thu, 13 Feb 2020 16:07:00 +0100 Subject: [PATCH 2/5] [ZEPPELIN-4602] Added licences --- zeppelin-distribution/src/bin_license/LICENSE | 3 +++ .../src/bin_license/licenses/LICENSE-influxdb | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 zeppelin-distribution/src/bin_license/licenses/LICENSE-influxdb diff --git a/zeppelin-distribution/src/bin_license/LICENSE b/zeppelin-distribution/src/bin_license/LICENSE index a861833de25..671e2a8ebfc 100644 --- a/zeppelin-distribution/src/bin_license/LICENSE +++ b/zeppelin-distribution/src/bin_license/LICENSE @@ -136,6 +136,7 @@ The following components are provided under Apache License. (Apache 2.0) Google Guice - Core Library (com.google.inject:guice:3.0 - http://code.google.com/p/google-guice/guice/) (Apache 2.0) OkHttp (com.squareup.okhttp:okhttp:2.5.0 - https://github.com/square/okhttp/okhttp) (Apache 2.0) Okio (com.squareup.okio:okio:1.6.0 - https://github.com/square/okio/okio) + (Apache 2.0) OkHttp mockwebserver (com.squareup.okhttp3:mockwebserver:3.13.1) - https://github.com/square/okhttp/blob/master/LICENSE.txt (Apache 2.0) config (com.typesafe:config:1.2.1 - https://github.com/typesafehub/config) (Apache 2.0) akka-actor (com.typesafe.akka:akka-actor_2.10:2.3.7 - http://akka.io/) (Apache 2.0) akka-remote (com.typesafe.akka:akka-remote_2.10:2.3.7 - http://akka.io/) @@ -221,6 +222,7 @@ The following components are provided under Apache License. (Apache 2.0) mongo-java-driver 3.4.1 (org.mongodb:mongo-java-driver:3.4.1) - https://github.com/mongodb/mongo-java-driver/blob/master/LICENSE.txt (Apache 2.0) Neo4j Java Driver (https://github.com/neo4j/neo4j-java-driver) - https://github.com/neo4j/neo4j-java-driver/blob/1.4.3/LICENSE.txt (Apache 2.0) Hazelcast Jet (http://jet.hazelcast.org) - https://github.com/hazelcast/hazelcast-jet/blob/master/LICENSE + (Apache 2.0) RxJava (io.reactivex.rxjava2:rxjava:2.2.17) - https://github.com/ReactiveX/RxJava/blob/2.x/LICENSE ======================================================================== MIT licenses @@ -278,6 +280,7 @@ The text of each license is also included at licenses/LICENSE-[project]-[version (The MIT License) angular-viewport-watch 0.135 (https://github.com/wix/angular-viewport-watch) - https://github.com/wix/angular-viewport-watch/blob/master/LICENSE (The MIT License) ansi-up 2.0.2 (https://github.com/drudru/ansi_up) - https://github.com/drudru/ansi_up#license (The MIT License) bcpkix-jdk15on 1.60 (org.bouncycastle:bcpkix-jdk15on:1.60 https://github.com/bcgit/bc-java) - https://github.com/bcgit/bc-java/blob/master/LICENSE.html + (The MIT License) influxdb-client-java 1.4.0 (com.influxdb:influxdb-client-java:1.4.0 https://github.com/influxdata/influxdb-client-java) - https://github.com/influxdata/influxdb-client-java/blob/master/LICENSE ======================================================================== BSD-style licenses diff --git a/zeppelin-distribution/src/bin_license/licenses/LICENSE-influxdb b/zeppelin-distribution/src/bin_license/licenses/LICENSE-influxdb new file mode 100644 index 00000000000..75f97cfbcbc --- /dev/null +++ b/zeppelin-distribution/src/bin_license/licenses/LICENSE-influxdb @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Influxdata, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file From 8955205c1634929d4068436654c732624270a053 Mon Sep 17 00:00:00 2001 From: Robert Hajek Date: Thu, 13 Feb 2020 16:31:18 +0100 Subject: [PATCH 3/5] [ZEPPELIN-4602] Updated README.md, removed specific maven-checkstyle-plugin configuration --- influxdb/README.md | 4 ++-- influxdb/pom.xml | 7 ------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/influxdb/README.md b/influxdb/README.md index e9fd86aaaaf..06ba34f6adf 100644 --- a/influxdb/README.md +++ b/influxdb/README.md @@ -8,11 +8,11 @@ Provide InfluxDB Interpreter for Zeppelin. ## Build ``` -mvn -pl zeppelin-interpreter,zeppelin-display,influxdb -DskipTests package +mvn -pl influxdb -am -DskipTests package ``` ## Test ``` -mvn -pl influxdb,zeppelin-display,zeppelin-interpreter -Dtest='org.apache.zeppelin.influxdb.*' -DfailIfNoTests=false test +mvn -pl influxdb -am -Dtest='org.apache.zeppelin.influxdb.*' -DfailIfNoTests=false test ``` diff --git a/influxdb/pom.xml b/influxdb/pom.xml index 33d4e1624b5..be74e3cefaf 100644 --- a/influxdb/pom.xml +++ b/influxdb/pom.xml @@ -75,13 +75,6 @@ maven-shade-plugin - - org.apache.maven.plugins - maven-checkstyle-plugin - - false - - From 34cd9ed201edc92b7044640e3590863bb291f11b Mon Sep 17 00:00:00 2001 From: Robert Hajek Date: Fri, 6 Mar 2020 12:23:08 +0100 Subject: [PATCH 4/5] [ZEPPELIN-4602] BaseZeppelinContext replaced --- .../org/apache/zeppelin/influxdb/InfluxDBInterpreter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java b/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java index 9bade0b92fc..0396331cf36 100644 --- a/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java +++ b/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java @@ -25,7 +25,7 @@ import com.influxdb.client.InfluxDBClientOptions; import com.influxdb.client.QueryApi; import org.apache.zeppelin.interpreter.AbstractInterpreter; -import org.apache.zeppelin.interpreter.BaseZeppelinContext; +import org.apache.zeppelin.interpreter.ZeppelinContext; import org.apache.zeppelin.interpreter.InterpreterContext; import org.apache.zeppelin.interpreter.InterpreterException; import org.apache.zeppelin.interpreter.InterpreterResult; @@ -68,7 +68,7 @@ public InfluxDBInterpreter(Properties properties) { } @Override - public BaseZeppelinContext getZeppelinContext() { + public ZeppelinContext getZeppelinContext() { return null; } From 206848edc8b244435e1e14e22b034d721d59b952 Mon Sep 17 00:00:00 2001 From: Robert Hajek Date: Mon, 20 Apr 2020 15:09:10 +0200 Subject: [PATCH 5/5] [ZEPPELIN-4602] updated influxdb client libraries to 1.7.0, added support for InfluxDB 1.8, interpreter code cleanup --- docs/interpreter/influxdb.md | 6 +++--- influxdb/pom.xml | 3 +-- .../zeppelin/influxdb/InfluxDBInterpreter.java | 12 ++++++------ 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/docs/interpreter/influxdb.md b/docs/interpreter/influxdb.md index b3cf051e954..64dd084b1ea 100644 --- a/docs/interpreter/influxdb.md +++ b/docs/interpreter/influxdb.md @@ -28,7 +28,7 @@ limitations under the License. This interpreter allows to perform queries in [Flux Language](https://v2.docs.influxdata.com/v2.0/reference/flux/) in Zeppelin Notebook. ### Notes -* This interpreter is compatible with InfluxDB 2.0+ (v2 API, Flux language) +* This interpreter is compatible with InfluxDB 1.8+ and InfluxDB 2.0+ (v2 API, Flux language) * Code complete and syntax highlighting is not supported for now ### Example notebook @@ -50,12 +50,12 @@ This interpreter allows to perform queries in [Flux Language](https://v2.docs.in influxdb.org my-org - organization name + organization name, Organizations are supported in InfluxDB 2.0+, use "-" as org for InfluxDB 1.8 influxdb.token my-token - authorization token for InfluxDB API + authorization token for InfluxDB API, token are supported in InfluxDB 2.0+, for InfluxDB 1.8 use 'username:password' as a token. influxdb.logLevel diff --git a/influxdb/pom.xml b/influxdb/pom.xml index be74e3cefaf..8ab2dd99596 100644 --- a/influxdb/pom.xml +++ b/influxdb/pom.xml @@ -36,8 +36,7 @@ influxdb UTF-8 - - 1.4.0 + 1.7.0 3.13.1 2.8.5 diff --git a/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java b/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java index 0396331cf36..1bbcfcd44c3 100644 --- a/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java +++ b/influxdb/src/main/java/org/apache/zeppelin/influxdb/InfluxDBInterpreter.java @@ -49,19 +49,19 @@ */ public class InfluxDBInterpreter extends AbstractInterpreter { - static final String INFLUXDB_API_URL_PROPERTY = "influxdb.url"; - static final String INFLUXDB_TOKEN_PROPERTY = "influxdb.token"; - static final String INFLUXDB_ORG_PROPERTY = "influxdb.org"; + private static final String INFLUXDB_API_URL_PROPERTY = "influxdb.url"; + private static final String INFLUXDB_TOKEN_PROPERTY = "influxdb.token"; + private static final String INFLUXDB_ORG_PROPERTY = "influxdb.org"; private static final String INFLUXDB_LOGLEVEL_PROPERTY = "influxdb.logLevel"; private static final String TABLE_MAGIC_TAG = "%table "; private static final String WHITESPACE = " "; private static final String NEWLINE = "\n"; private static final String TAB = "\t"; - static final String EMPTY_COLUMN_VALUE = ""; + private static final String EMPTY_COLUMN_VALUE = ""; - InfluxDBClient client; - QueryApi queryApi; + private volatile InfluxDBClient client; + private volatile QueryApi queryApi; public InfluxDBInterpreter(Properties properties) { super(properties);