blob: d37734316bcda2a48a9a5fce16506056dc76fe2a [file] [log] [blame]
(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{638:function(a,t,s){"use strict";s.r(t);var n=s(69),r=Object(n.a)({},(function(){var a=this,t=a.$createElement,s=a._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[s("h1",{attrs:{id:"iotdb-grafana"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#iotdb-grafana"}},[a._v("#")]),a._v(" IoTDB-Grafana")]),a._v(" "),s("h2",{attrs:{id:"outline"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#outline"}},[a._v("#")]),a._v(" Outline")]),a._v(" "),s("ul",[s("li",[a._v("IoTDB-Grafana\n"),s("ul",[s("li",[a._v("Grafana installation\n"),s("ul",[s("li",[a._v("Install Grafana")]),a._v(" "),s("li",[a._v("Install data source plugin")]),a._v(" "),s("li",[a._v("Start Grafana")])])]),a._v(" "),s("li",[a._v("IoTDB installation")]),a._v(" "),s("li",[a._v("IoTDB-Grafana installation\n"),s("ul",[s("li",[a._v("Start IoTDB-Grafana")])])]),a._v(" "),s("li",[a._v("Explore in Grafana\n"),s("ul",[s("li",[a._v("Add data source")]),a._v(" "),s("li",[a._v("Design in dashboard")])])])])])]),a._v(" "),s("h1",{attrs:{id:"iotdb-grafana-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#iotdb-grafana-2"}},[a._v("#")]),a._v(" IoTDB-Grafana")]),a._v(" "),s("p",[a._v("Grafana is an open source volume metrics monitoring and visualization tool, which can be used to display time series data and application runtime analysis. Grafana supports Graphite, InfluxDB and other major time series databases as data sources. IoTDB-Grafana is a connector which we developed to show time series data in IoTDB by reading data from IoTDB and sends to Grafana(https://grafana.com/). Before using this tool, make sure Grafana and IoTDB are correctly installed and started.")]),a._v(" "),s("h2",{attrs:{id:"grafana-installation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#grafana-installation"}},[a._v("#")]),a._v(" Grafana installation")]),a._v(" "),s("h3",{attrs:{id:"install-grafana"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#install-grafana"}},[a._v("#")]),a._v(" Install Grafana")]),a._v(" "),s("ul",[s("li",[a._v("Download url: https://grafana.com/grafana/download")]),a._v(" "),s("li",[a._v("version >= 4.4.1")])]),a._v(" "),s("h3",{attrs:{id:"install-data-source-plugin"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#install-data-source-plugin"}},[a._v("#")]),a._v(" Install data source plugin")]),a._v(" "),s("ul",[s("li",[a._v("plugin name: simple-json-datasource")]),a._v(" "),s("li",[a._v("Download url: https://github.com/grafana/simple-json-datasource")])]),a._v(" "),s("p",[a._v("After downloading this plugin, use the grafana-cli tool to install SimpleJson from the commandline:")]),a._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("grafana-cli plugins install grafana-simple-json-datasource\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br")])]),s("p",[a._v("Alternatively, manually download the .zip file and unpack it into grafana plugins directory.")]),a._v(" "),s("ul",[s("li",[s("code",[a._v("{grafana-install-directory}\\data\\plugins\\")]),a._v(" (Windows)")]),a._v(" "),s("li",[s("code",[a._v("/var/lib/grafana/plugins")]),a._v(" (Linux)")]),a._v(" "),s("li",[s("code",[a._v("/usr/local/var/lib/grafana/plugins")]),a._v("(Mac)")])]),a._v(" "),s("h3",{attrs:{id:"start-grafana"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#start-grafana"}},[a._v("#")]),a._v(" Start Grafana")]),a._v(" "),s("p",[a._v("If Unix is used, Grafana will start automatically after installing, or you can run "),s("code",[a._v("sudo service grafana-server start")]),a._v(" command. See more information "),s("a",{attrs:{href:"http://docs.grafana.org/installation/debian/",target:"_blank",rel:"noopener noreferrer"}},[a._v("here"),s("OutboundLink")],1),a._v(".")]),a._v(" "),s("p",[a._v("If Mac and "),s("code",[a._v("homebrew")]),a._v(" are used to install Grafana, you can use "),s("code",[a._v("homebrew")]),a._v(" to start Grafana.\nFirst make sure homebrew/services is installed by running "),s("code",[a._v("brew tap homebrew/services")]),a._v(", then start Grafana using: "),s("code",[a._v("brew services start grafana")]),a._v(".\nSee more information "),s("a",{attrs:{href:"http://docs.grafana.org/installation/mac/",target:"_blank",rel:"noopener noreferrer"}},[a._v("here"),s("OutboundLink")],1),a._v(".")]),a._v(" "),s("p",[a._v("If Windows is used, start Grafana by executing grafana-server.exe, located in the bin directory, preferably from the command line. See more information "),s("a",{attrs:{href:"http://docs.grafana.org/installation/windows/",target:"_blank",rel:"noopener noreferrer"}},[a._v("here"),s("OutboundLink")],1),a._v(".")]),a._v(" "),s("h2",{attrs:{id:"iotdb-installation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#iotdb-installation"}},[a._v("#")]),a._v(" IoTDB installation")]),a._v(" "),s("p",[a._v("See https://github.com/apache/iotdb")]),a._v(" "),s("h2",{attrs:{id:"iotdb-grafana-installation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#iotdb-grafana-installation"}},[a._v("#")]),a._v(" IoTDB-Grafana installation")]),a._v(" "),s("div",{staticClass:"language-shell line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[a._v("git")]),a._v(" clone https://github.com/apache/iotdb.git\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br")])]),s("h3",{attrs:{id:"start-iotdb-grafana"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#start-iotdb-grafana"}},[a._v("#")]),a._v(" Start IoTDB-Grafana")]),a._v(" "),s("h4",{attrs:{id:"option-one"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#option-one"}},[a._v("#")]),a._v(" Option one")]),a._v(" "),s("p",[a._v("Import the entire project, after the maven dependency is installed, directly run"),s("code",[a._v("iotdb/grafana/rc/main/java/org/apache/iotdb/web/grafana")]),a._v("directory"),s("code",[a._v("TsfileWebDemoApplication.java")]),a._v(", this grafana connector is developed by springboot")]),a._v(" "),s("h4",{attrs:{id:"option-two"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#option-two"}},[a._v("#")]),a._v(" Option two")]),a._v(" "),s("p",[a._v("In "),s("code",[a._v("/grafana/target/")]),a._v("directory")]),a._v(" "),s("div",{staticClass:"language-shell line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("cd")]),a._v(" iotdb\nmvn clean package -pl grafana -am -Dmaven.test.skip"),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("true\n"),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v("cd")]),a._v(" grafana/target\njava -jar iotdb-grafana-"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("version"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),a._v(".war\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br"),s("span",{staticClass:"line-number"},[a._v("3")]),s("br"),s("span",{staticClass:"line-number"},[a._v("4")]),s("br")])]),s("p",[a._v("If following output is displayed, then iotdb-grafana connector is successfully activated.")]),a._v(" "),s("div",{staticClass:"language-shell line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[a._v("$ java -jar iotdb-grafana-"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("{")]),a._v("version"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("}")]),a._v(".war\n\n "),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(".")]),a._v(" ____ _ __ _ _\n /"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v(" / ___"),s("span",{pre:!0,attrs:{class:"token string"}},[a._v("'_ __ _ _(_)_ __ __ _ \\ \\ \\ \\\n( ( )\\___ | '")]),a._v("_ "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[a._v("'_| | '")]),a._v("_ "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("/ _` "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("/ ___"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(")")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("_"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(")")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("||")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("(")]),a._v("_"),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(")")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(")")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(")")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(")")]),a._v("\n ' "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("____"),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" .__"),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("_"),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("_"),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("_"),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("_"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("__, "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" / / / /\n "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("==")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("==")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("==")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("==")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("_"),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("==")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("==")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("==")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("==")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("==")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("==")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("==")]),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("___/"),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("/_/_/_/\n :: Spring Boot :: "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("(")]),a._v("v1.5.4.RELEASE"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(")")]),a._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("..")]),a._v(".\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br"),s("span",{staticClass:"line-number"},[a._v("3")]),s("br"),s("span",{staticClass:"line-number"},[a._v("4")]),s("br"),s("span",{staticClass:"line-number"},[a._v("5")]),s("br"),s("span",{staticClass:"line-number"},[a._v("6")]),s("br"),s("span",{staticClass:"line-number"},[a._v("7")]),s("br"),s("span",{staticClass:"line-number"},[a._v("8")]),s("br"),s("span",{staticClass:"line-number"},[a._v("9")]),s("br"),s("span",{staticClass:"line-number"},[a._v("10")]),s("br")])]),s("p",[a._v("To configure properties, move the "),s("code",[a._v("grafana/src/main/resources/application.properties")]),a._v(" to the same directory as the war package ("),s("code",[a._v("grafana/target")]),a._v(")")]),a._v(" "),s("h2",{attrs:{id:"explore-in-grafana"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#explore-in-grafana"}},[a._v("#")]),a._v(" Explore in Grafana")]),a._v(" "),s("p",[a._v("The default port of Grafana is 3000, see http://localhost:3000/")]),a._v(" "),s("p",[a._v('Username and password are both "admin" by default.')]),a._v(" "),s("h3",{attrs:{id:"add-data-source"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#add-data-source"}},[a._v("#")]),a._v(" Add data source")]),a._v(" "),s("p",[a._v("Select "),s("code",[a._v("Data Sources")]),a._v(" and then "),s("code",[a._v("Add data source")]),a._v(", select "),s("code",[a._v("SimpleJson")]),a._v(" in "),s("code",[a._v("Type")]),a._v(" and "),s("code",[a._v("URL")]),a._v(' is http://localhost:8888.\nAfter that, make sure IoTDB has been started, click "Save & Test", and "Data Source is working" will be shown to indicate successful configuration.\n'),s("img",{staticStyle:{width:"100%","max-width":"800px","max-height":"600px","margin-left":"auto","margin-right":"auto",display:"block"},attrs:{src:"https://user-images.githubusercontent.com/13203019/51664777-2766ae00-1ff5-11e9-9d2f-7489f8ccbfc2.png"}})]),a._v(" "),s("img",{staticStyle:{width:"100%","max-width":"800px","max-height":"600px","margin-left":"auto","margin-right":"auto",display:"block"},attrs:{src:"https://user-images.githubusercontent.com/13203019/51664842-554bf280-1ff5-11e9-97d2-54eebe0b2ca1.png"}}),a._v(" "),s("h3",{attrs:{id:"design-in-dashboard"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#design-in-dashboard"}},[a._v("#")]),a._v(" Design in dashboard")]),a._v(" "),s("p",[a._v("Add diagrams in dashboard and customize your query. See http://docs.grafana.org/guides/getting_started/")]),a._v(" "),s("img",{staticStyle:{width:"100%","max-width":"800px","max-height":"600px","margin-left":"auto","margin-right":"auto",display:"block"},attrs:{src:"https://user-images.githubusercontent.com/13203019/51664878-6e54a380-1ff5-11e9-9718-4d0e24627fa8.png"}}),a._v(" "),s("h2",{attrs:{id:"config-grafana"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#config-grafana"}},[a._v("#")]),a._v(" config grafana")]),a._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v('# ip and port of IoTDB \nspring.datasource.url=jdbc:iotdb://127.0.0.1:6667/\nspring.datasource.username=root\nspring.datasource.password=root\nspring.datasource.driver-class-name=org.apache.iotdb.jdbc.IoTDBDriver\nserver.port=8888\n# Use this value to set timestamp precision as "ms", "us" or "ns", which must to be same with the timestamp\n# precision of Apache IoTDB engine.\ntimestamp_precision=ms\n\n# Use this value to set down sampling true/false\nisDownSampling=true\n# defaut sampling intervals\ninterval=1m\n# aggregation function to use to downsampling the data (int, long, float, double)\n# COUNT, FIRST_VALUE, LAST_VALUE, MAX_TIME, MAX_VALUE, AVG, MIN_TIME, MIN_VALUE, NOW, SUM\ncontinuous_data_function=AVG\n# aggregation function to use to downsampling the data (boolean, string)\n# COUNT, FIRST_VALUE, LAST_VALUE, MAX_TIME, MIN_TIME, NOW\ndiscrete_data_function=LAST_VALUE\n')])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br"),s("span",{staticClass:"line-number"},[a._v("3")]),s("br"),s("span",{staticClass:"line-number"},[a._v("4")]),s("br"),s("span",{staticClass:"line-number"},[a._v("5")]),s("br"),s("span",{staticClass:"line-number"},[a._v("6")]),s("br"),s("span",{staticClass:"line-number"},[a._v("7")]),s("br"),s("span",{staticClass:"line-number"},[a._v("8")]),s("br"),s("span",{staticClass:"line-number"},[a._v("9")]),s("br"),s("span",{staticClass:"line-number"},[a._v("10")]),s("br"),s("span",{staticClass:"line-number"},[a._v("11")]),s("br"),s("span",{staticClass:"line-number"},[a._v("12")]),s("br"),s("span",{staticClass:"line-number"},[a._v("13")]),s("br"),s("span",{staticClass:"line-number"},[a._v("14")]),s("br"),s("span",{staticClass:"line-number"},[a._v("15")]),s("br"),s("span",{staticClass:"line-number"},[a._v("16")]),s("br"),s("span",{staticClass:"line-number"},[a._v("17")]),s("br"),s("span",{staticClass:"line-number"},[a._v("18")]),s("br"),s("span",{staticClass:"line-number"},[a._v("19")]),s("br"),s("span",{staticClass:"line-number"},[a._v("20")]),s("br")])]),s("p",[a._v("The specific configuration information of interval is as follows")]),a._v(" "),s("p",[a._v("<1h: no sampling")]),a._v(" "),s("p",[a._v("1h~1d : intervals = 1m")]),a._v(" "),s("p",[a._v("1d~30d:intervals = 1h")]),a._v(" "),s("p",[a._v(">30d:intervals = 1d")]),a._v(" "),s("p",[a._v("After configuration, please re-run war package")]),a._v(" "),s("div",{staticClass:"language- line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[a._v("java -jar iotdb-grafana-{version}.war\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br")])])])}),[],!1,null,null,null);t.default=r.exports}}]);