Influxdb Query Examples

To enable pretty-printed output, append pretty=true to the Query URL. This step-by-step guide through the basics of writing a Flux query. Time Series Admin is aimed primarily at developers/users who have at least base knowledge about InfluxQL. It’s not possible to make a generic continious query that downsample the data with the same field name (you will have an aggregation prefix). During data transfer, the measurement can be transferred from the data source or set statically. The init-influxdb script is made of two parts:. The following is a list of example queries using an example data set. The InfluxDB source connector allows you to import data from an InfluxDB host into Kafka topics. CL-INFLUXDB has been upgraded to support influxdb version 1. Influxdb - A brief summary. It is faster than mysql. Description. However, the InfluxData team have been decreasing their Windows efforts lately. Query by Example (QBE) is a database query language for relational databases. Design a query to the InfluxDB. InfluxDBClient. Create Point and Batchpoint using influxdb-java library APIs and write the Batchpoints. Here is example how to configure iptables in CentOS: $ vi /etc/sysconfig/iptables. It requires only very minimal change in your existing framework as we use TestNG listeners. I loathe MRTG graphs. For example, as shown in the figure below, the input graph is downsampled, and the output captures every 10th point in the input graph. We will cover the query syntax of InfluxDB further in this article. I have a bunch of measurements of battery levels that I'd like to visualize as a graph in Chronograf. The following commands can be executed in the influx command window to query the database and identify the measurements that will be used in later steps to define a continuous query. These guides assume your are familiar with the basics of defining, recording, replaying and enabling tasks within Kapacitor. The default ordering of query results from InfluxDB is ascending by timestamp. InfluxDB is the public interface to run queries against the your database. The result is returned in msg. What I've found so far is:. With several VMs and complex network setups there is nothing more satisfying than watching your system come to life in the form of a dashboard. flushDelay. In this post we recap the week’s most interesting influxQL query examples, InfluxDB and TICK-stack related issues, workarounds, how-tos and Q&A from GitHub, IRC and the InfluxDB Google Group that you might have missed. In this article we will explain how to delete data from InfluxDB. Note that they need a local running InfluxDB server. Design a query to the InfluxDB. json and query_example_influxdb. Then we look at the first entry in the list and see the free memory size of the second point we inserted. # InfluxDB (0. Final Thoughts. See Schema Exploration for syntax explanations and examples of InfluxQL’s SHOW queries. 100% Upvoted. There also are nice tools on the web for visualizing InfluxDB time series, such as Grafana. " - InfluxDB Version 1. Dear Talk² team, Dear Mike, we developed a flexible, generic and open source data acquisition backend around the components outlined in this post, it is based on InfluxDB and Grafana as well and glues things together as it offers multiple ways of multi-tenant data acquisition and automatically creates Grafana dashboards on data arrival, besides other nice things. I recently came across an interesting contract position which uses Grafana and InfluxDB. tweet, DM or event) and the hashtag (so that we can watch multiple hashtags), and the only field is the measurement. To keep things as concise and as apples-to-apples as possible, these will not be included in the examples. Home Assistant does the hard work of collecting data from all the sensors and aggregating it, we can then store it in the InfluxDB database. If you're reading this message, then you should only expect support for InfluxDB v0. With Metrics the database field is optional, as Metrics does not rely on databases to store its metrics. How to fetch and write influxdb data using java June 20, 2019 Ashish Doneriya Influx time series database is a platform for storing, collecting, visualizing and managing time-series data. Type, MSysObjects. In the above example, we are select three performance counters, query their current value and send that result into InfluxDB. Lets take a 1-hour interval as an example. Another workaround is using the IP address of the containers to resolve connection issues. You can vote up the examples you like. But I have created an api for influxdb in Github. Query Example 2. This integration enables you to se. Set up InfluxDB on Grafana. InfluxDB data can be easily viewed in a browser through Grafana. Home Assistant does the hard work of collecting data from all the sensors and aggregating it, we can then store it in the InfluxDB database. To do so, we will create a user that has “write only” privilege to “testrobot1_testdb”. Here is how one of my dashboards looks like:. Firstly, I have my lab workload cluster out there in the form of a Dell C6100, and I've noticed with the recent weather that the temperature in there gets…a bit warm. This is what Grafana uses. For example, using the continuous query described below, InfluxDB downsamples the CPU load metric, and keeps a single average datapoint per 15 minutes grouped by server region. A lot of their users have real-time dashboards up when they're at work, but what happens at the end of the day? It's wasteful to have servers up for the downtime. Thank you Colin for the modification of JSONat is perfect. Expiring the old data in the time series database is enabled through continuous queries and data retention policies. It will then ask you to specify a datasource, which we added earlier, and a query, as in the following screenshot: As you can see, we have defined our query and are now getting our load average graphed. Time to awesome = short when following examples and knowing the influxdocs. GetInfluxDBNamesAsync - 6 examples found. In addition, this supports multiple statements and multiple series. Bellow are two very simple examples. Connect to InfluxDB Cloud. You can use the InfluxDB sink connector to write data from a Kafka topic to an InfluxDB host. Grafana, on the other hand, is a tool that allows you to query and visualize your metrics no matter where they are stored. In this tutorial we will learn how to use it in Java running on the top of WildFly. Your votes will be used in our system to get more good examples. Examples for InfluxDB queries which can be used in Grafana Example 1: Select last 10 successful builds Example 2: Select last 10 step names of failed builds Example 3: Select build duration of step for a specific project Example 4: Get transparency about successful/failed steps for a specific project jenkinsMaterializeLog. Which of these solutions best suits our needs? Disclaimer: Each benchmark is different, time and performance m. In this tutorial, I have installed Influxdb, you can refer here: InfluxDB examples InfluxDB show databases Use databases Uptime Server Check Root FS used Swap used Users login CPU usage RAM Usage CPU Load CPUs number Other examples How to list all value systems, …. 6 Dead work Start the server Execute the following commands: service influxdb start Examples are as follows: [[email protected] ~]# service influxdb start Starting influxdb influxdb process was started [ OK ] [[email protected] ~]UTF-8. export method query. In this guide, you'll use a handler to populate the time series database InfluxDB. query() function will return a ResultSet Object. Query response object: ResultSet¶. The measurements build the data pool in InfluxDB, comparable to a table in classic SQL. The Kickstarter campaign has proven to be quite involving, but things start to get back to normal and new posts will keep appearing. InfluxDB has a HTTP API that can be used for queries. Previously we setup an influxdb instance running through docker and we also run our first InfluxDBMapper code against an influxdb database. Thoughts and Ideas. When working directly with the API, and not via a client library, it's convenient to have pretty-printed JSON output. To enable pretty-printed output, append pretty=true to the Query URL. Contribute to influxdata/influxdb-python development by creating an account on GitHub. For example, using the continuous query described below, InfluxDB downsamples the CPU load metric, and keeps a single average datapoint per 15 minutes grouped by server region. select * from Watts;. Build EMQ X + InfluxDB + Grafana IoT data visualization solution in one hour. As I have read in the influxdb documentation, there is an option to read data in chunks of e. This page explains the InfluxQL syntax. •MIT Licensed •Multi-tenanted •Telegraf, InfluxDB, Chronograf, Kapacitor rolled into 1 •OSS single server •Cloud usage based pricing •Dedicated Cloud •Enterprise on-premise. Queries issued to the database are typically sequential per-series, in some sort of sort order with perhaps a time-based operator or function applied; InfluxDB introduction. Relational data model. The REST API can be used by applications to insert data into the database. The result is returned in msg. Background. Query condition example avg() OF query(A, 5m, now) IS BELOW 14 avg() Controls how the values for each series should be reduced to a value that can be compared against the threshold. fields = ['some_stat', 'other_stat'] # Defines all the tags for the series. Let's see few influxdb example queries here: post / write. Influxdb uses a totally different approach as relational database (e. The syntax is slightly different from what you would use in standard SQL. NET library lives on GitHub. Models Database - 5 examples found. A CQ which was set to run every hour will run precisely at the beginning of each hour. » InfluxDB Provider The InfluxDB provider allows Terraform to create Databases in InfluxDB. Probably the most useful endpoint in the API, /api/query enables extracting data from the storage system in various formats determined by the serializer selected. 7, PyPy and PyPy3. The following are code examples for showing how to use influxdb. Login Try The data is analyzed using a SQL-like query language. Schema of InfluxDB: InfluxDB stores data as Points. Add dependent fields/tags # in curly brackets. Grafana will now go and query InfluxDB and present your dashboard with all of your OpenWrt devices. At first point you should create an authentication token as is described here. Queries and Gets list of all existing databases in the Influx server instance When Influx needs authentication, and no user name password is supplied or auth fails all other HTTP exceptions InfluxDB service is not available on the port mentioned. For example, host_type = testservers (included global_tags in telegraf conf) My purpose: To have a pie chart with server names that only include that tag. An example query: InfluxDB has made these graphs more accessible to a broad audience of engineers and product managers across our organization, which is incredibly important and impactful for us as a whole. With continuous queries in InfluxDB, you can downsample application data and improve the end user experience for your users. Let's get more specific, we will select…. InfluxDB doesn’t have a separate agent for aggregations. Example log output with log-queries-after set to "1s":. Learn how to query InfluxDB. Name; where Type will be one of the values in the table at right. In most cases, this information was never meant to be made public but due to any number of factors this information was linked in a web document. It requires a bucket parameter. Functions are chained off each other. type Response ¶ Uses. Getting started with influxDB (with Golang example) ` function queries the influxDB and return the result as an array of. The database has HTTP API and command line interfaces. Hi all, there is a very quick guide how to configure a system monitoring for one or more servers using a modern stack of technologies, like Grafana, Docker and Telegraf with Influxdb. Queries and Gets list of all existing databases in the Influx server instance When Influx needs authentication, and no user name password is supplied or auth fails all other HTTP exceptions InfluxDB service is not available on the port mentioned. For example, the aggregation function avg() can be used to control how the values for each series are reduced to a value that can be compared to the threshold value. This is because Monasca currently implements a single InfluxDB database by default and project scoped metrics are filtered using a WHERE statement. The next field defines which query should be executed on the Metrics tab. Learn to query data stored in InfluxDB using Flux and tools such as the InfluxDB user interface and the 'influx' command line interface. InfluxDB is one of the most popular time series databases on the market. C# (CSharp) InfluxDB. The InfluxDB API is the primary means for querying data in InfluxDB (see the command line interface and client libraries for alternative ways to query the database). InfluxDB queries can return data from multiple measurements (=tables) so the measurement name(s) should be included in the return, multiple tags can also be returned. io, there is a community add-on available. Create a query to monitor your SNMP device. Often used to run code in a different Thread. 5_x64InfluxDB version: 1. Query processing, for example. InfluxDB missed a non-blocking driver for both Scala and Java. Authorization as authorizer") // ErrInvalidResourceType notes that the provided resource is invalid ErrInvalidResourceType = errors. Moreover, you don't have to rely on the compiler to inline away the extra argument, because the newtype is "free". This can be used to aggregate the metrics to a different RP. Querying data with the InfluxDB API. Schema of InfluxDB: InfluxDB stores data as Points. 2 — Grafana. Getting started with influxDB (with Golang example) ` function queries the influxDB and return the result as an array of. InfluxDB is one of the popular time series database out there. Having a sample database to experiment with is. I’ve been working with InfluxDB + Grafana recently. Time series database is not a new idea. Influxdata is a platform for storing, collecting, visualizing and managing time-series data. Types that can be converted from an JSON object returned by InfluxDB. The recommended way of running InfluxDB in this scenario is a dedicated server where the InfluxDB HTTP API or Telegraf as Proxy are running. InfluxDB is part of the TICK stack which consists of four components:. If you add a template variable of the type Query you can write a InfluxDB exploration (meta data) query. What is the right syntax for this query? All examples contain a group-by-time-clause, but that (naturally) results in multiple time units, each with its own histogram. For example, host_type = testservers (included global_tags in telegraf conf) My purpose: To have a pie chart with server names that only include that tag. Oracle System Properties Comparison InfluxDB vs. x on Node 0. InfluxDB is meant to be used as a backing store for any use case involving large amounts of timestamped data, including DevOps monitoring, application metrics, IoT sensor data, and real-time analytics. Simple InfluxDB wrapper for Espruino. In order to allow data to be submitted by a collectd agent, the InfluxDB server must be configured to listen for collectd connections. After that you should configure properties: influx_cloud_url, influx_cloud_token, bucket and org in a influx_cloud. All the relevant info is in the InfluxDB docs, but they are a little scatter brained,. The query parameter can either be a String or a Perl ArrayRef of Strings, where every String contains a valid InfluxDB query. graphite-web - Graphite's user interface & API for rendering graphs and dashboards. Getting started with influxDB (with Golang example) ` function queries the influxDB and return the result as an array of. Now lets create a simple producer that sends these types of event messages into Kafka. Finally you can include. See this link for more details. type Response ¶ Uses. It is possible to install InfluxDB on (almost) all Linux distributions without too much difficulty. deviceMeasurement is the time series namespace (measurement) for influxDB. When using graphite as the data source I can do a * in my query which would then display all the values in that string. Install InfluxDB plugin in Grafana. 222:8086/energy and I can confirm the following works. It sounds simple in my head but I can't translate it to a query. InfluxDB is easy to use, scalable and highly available. Time to awesome = short when following examples and knowing the influxdocs. On the Data tab, in the Get & Transform Data group, click Get Data. Here's a walk-through on setting up InfluxDB + Grafana, collecting network throughput data, and displaying it. x on Node 4 on onwards, and modern browsers Version 4. It uses a SQL-like (or to be totally honest, an "almost-SQL") language. Covers InfluxQL for managing databases and retention policies in InfluxDB. It is faster than mysql. If set to a specific value, InfluxDB chunks responses by series or by that number of points None. A CQ which was set to run every hour will run precisely at the beginning of each hour. In this article we will install a monitoring solution on CentOS 7 consisting of CollectD, InfluxDB and Grafana. I'm writing Energy readings to an influxdb datasource and i'd like to do check/search/lookup for some values that will have been posted, but I can't seem to get other query commands to work. I recently came across an interesting contract position which uses Grafana and InfluxDB. The init-influxdb script is made of two parts:. # sudo pip install influxdb Step 2: Install InfluxDB in CentOS 7. Basic Setup 4. In some fields, time series may be called profiles, curves, traces or trends. x will no longer have updates by core contributers, please consider upgrading. Dear Talk² team, Dear Mike, we developed a flexible, generic and open source data acquisition backend around the components outlined in this post, it is based on InfluxDB and Grafana as well and glues things together as it offers multiple ways of multi-tenant data acquisition and automatically creates Grafana dashboards on data arrival, besides other nice things. FYI - The server config is 192. For an example, see Aggregate Historian Agent Specification. Install InfluxDB plugin in Grafana. We will cover the query syntax of InfluxDB further in this article. The provider configuration block accepts the following arguments: url - (Optional) The root URL of a InfluxDB server. For example:. Automatic compression of data along with down sampling helps in minimizing the storage space. InfluxDB class. InfluxDB+Grafana persistence and graphing Tutorials & Examples I’ve just got this up and running and have encountered the same issue as you @vespaman I don’t have a reverse proxy set up, but am running openHABian fwiw. These queries can return things like measurement names, key names or key values. It requires a bucket parameter. Documentation coming soon or be a dear and contribute to these docs. You can only run queries that are supported by your precomputed, predesigned summary tables. How to use Jupyter + Pandas + InfluxDB 2. The commercial InfluxDB offering is, by design, a distributed storage cluster with storage and queries being handled by many nodes at once. InfluxDB is a popular time series database and I am here to show you how to query it. Because my InfluxDB was added, and is being updated with live data from my various scripts, it’s really just a matter of finding the data and displaying it with Grafana. Let's config the influxdb out node first. client = myclient # The series name must be a string. Now that you know how to read and write data, let's take a look at the InfluxDB query language to see what you can do. From that we could fetch and write to database very easily. For example I have values of data transferred for all my network interfaces how do i add them based on the interfaces that I want. It runs a full Node. The InfluxDB provider allows Terraform to create Databases in InfluxDB. No: 60000: druid. x on Node 4 on onwards, and modern browsers Version 4. If your data point point gets written into InfluxDB even a second after the full hour, it won't be used by the continuous query to calculate the downsample for the previous hour. The first seven documents in this section provide a tutorial-style introduction to InfluxQL. The following example demonstrates how to write data to InfluxDB 2. all_projects: Whether return the volumes in all projects. 9 documentation gives an example of preserving all tags on a Continuous Query (CQ) by simply doing GROUP BY time(), * Is there a way to preserve a subset of tags th. In the previous posts we have installed an InfluxDB instance and started gathering data with Telegraf, now we want to explore and query those data. For reference of others, the Grafana InfluxDB link users the default DB master user 'admin'/password 'admin' - it's in the screenshot within the blog. If the InfluxDB server was down, your script would wait until the connection timed out before continuing, or could even throw an exception causing the script to terminate. How to use Jupyter + Pandas + InfluxDB 2. In contrast, InfluxDB began with a “SQL-like” query language (called InfluxQL), placing it in the middle of the spectrum, and has recently made a marked move towards the “custom” end with its new Flux query language. By using a single database, the scope for each subsequent query will be limited to that database. ClickHouse is a general purpose analytical DBMS. C# (CSharp) AdysTech. You can rate examples to help us improve the quality of examples. In our simple datalogger example, the data is stored on the SD card; hence make sure you use a good quality type of card as it will be written to many times. Getting started. Hi all, there is a very quick guide how to configure a system monitoring for one or more servers using a modern stack of technologies, like Grafana, Docker and Telegraf with Influxdb. 2 Getting Started with Telegraf Glossary of Terms Input Data Formats Installation Introduction Output Data Formats Release Notes/Changelog Running Telegraf as a Windows Service Supported Input Plugins Supported Outputs Supported Service Inputs Troubleshooting. As an example, the influxdb-java library allows you to create an InfluxDB database very easily. Name FROM MSysObjects WHERE MSysObjects. InfluxDB and Grafana have also improved a lot. In this tutorial, Getting started with InfluxDB. No: Integer. 3 — Telegraf. If your data point point gets written into InfluxDB even a second after the full hour, it won’t be used by the continuous query to calculate the downsample for the previous hour. In this post you will learn its key concepts, as well as, how to interact with InfluxDB in Go on example. The influxdb output plugin, Before to start Fluent Bit, make sure the target database exists on InfluxDB, using the above example, we will insert the data into a fluentbit database. In Elasticsearch you would have to store it all for each data point + you would have to analyze the namspace field so you can query it. Live Performance Result Monitoring with Jmeter-Grafana-influxdb In this article we are going to see how can we build a system where we can live monitor jmeter test results. Don't get me wrong, it is not a relational database in any sense. Moreover, you don't have to rely on the compiler to inline away the extra argument, because the newtype is "free". I use this protocol as a standard query tool that most network devices natively support, or can have support added. In addition you can find links to details of the available metrics instrumentation, configuration details for InfluxDB and examples of Grafana dashboard and graphs that you can use a starting point for further exploration. Chronograf replaces the web admin interface with improved tooling for querying data, writing data, and database management. 7, PyPy and PyPy3. Craig will discuss architecture patterns with InfluxDB Enterprise, covering an overview of InfluxDB Enterprise, features, ingestion and query rates, deployment examples, replication patterns, and general advice. So if I would do something like this: How can I duplicate this with InfluxDB? When I add a * in my query it adds up the values and only displays one value. We have much better visualisation tools available, and we don’t need to be so aggressive with aggregating old data. Data is loaded by periodically executing an Influx query and creating an output record for each row in the result set. InfluxDB supports regular expression for field name in query, so querying these fields won’t be an issue. Add dependent fields/tags # in curly brackets. Grafana: This is the pretty graphing dashboard that we'll run to highlight various parts of our solar usage. In Elasticsearch you would have to store it all for each data point + you would have to analyze the namspace field so you can query it. Having a sample database to experiment with is. There is already official java api in maven and github. Do note that by design the SSH connection remembers the current scope, but not all client SDK's are guaranteed to have this available as well. InfluxDB is a time-series database compatible with SQL, so we can setup a user and database easily. Yes I will produce steps to follow but I won't explain what a MQTT broker is for example. Query Examples. Test viewing the metrics in Kibana for ELK and Grafana for InfluxDB. The following are code examples for showing how to use influxdb. Manual installation steps are detailed further below. Click the + Add data source button in the. NewQueryWithRP returns a query object. If your data point point gets written into InfluxDB even a second after the full hour, it won't be used by the continuous query to calculate the downsample for the previous hour. Before we start talking about them, it is good to know that these 10 queries work on all types of SQL engines available in the market. How to use the Grafana visualization tool stack to create a rich dashboard solution to better explore and present the data stored in our InfluxDB instance. It requires a bucket parameter. Flux queries can be extended in many ways to form powerful. 6 videos Play all InfluxDb with Grafana Tutorial Abhishek Jain Strange answers to the psychopath test | Jon Ronson - Duration: 18:02. Query condition example avg() OF query(A, 5m, now) IS BELOW 14 avg() Controls how the values for each series should be reduced to a value that can be compared against the threshold. InfluxDB is one of the most popular Timeseries data stores. CONCLUSIONS. Ruby support. Understanding unexpected fill() behavior. You can use the InfluxDB sink connector to write data from a Kafka topic to an InfluxDB host. Or the total number of requests between 1/2/2020 00:00 and 1/3/2020 06:15 for example. 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. 3 $ sudo apt-get install python-influxdb Dependencies The influxdb-python distribution is supported and tested on Python 2. The following measurements are currently stored in InfluxDB: PROCESS_file_descriptors; PROCESS_gc_statistics; PROCESS_memory_usage; PROCESS_method_calls; PROCESS_object_counts; PROCESS_transactions; PROCESS_views; events. In our simple datalogger example, the data is stored on the SD card; hence make sure you use a good quality type of card as it will be written to many times. It is an integral component of the TICK stack. To copy those queries into Grafana, use the Raw text editor mode in Grafana. Home Assistant does the hard work of collecting data from all the sensors and aggregating it, we can then store it in the InfluxDB database. However, the InfluxData team have been decreasing their Windows efforts lately. InfluxDB has a HTTP API that can be used for queries. Yes I will produce steps to follow but I won't explain what a MQTT broker is for example. If the InfluxDB server was down, your script would wait until the connection timed out before continuing, or could even throw an exception causing the script to terminate. x will no longer have updates by core contributers, please consider upgrading. We now have collectd, InfluxDB and Grafana set up and receiving metrics. These are the top rated real world C# (CSharp) examples of AdysTech. a – InfluxDB Query Language. Looking at the flow chart below shows where InfluxDB sits in the flow of data for Home Automation. Select the newly created "InfluxDB" data source from the Query drop-down list. See examples below. Each series you enter in Grafana will pull one or more series of data from InfluxDB (or other back-end data sources) and use select statements, time grouping, and other query. No: Integer. InfluxDB design conceptually reminds relational database. Before you start, you'll need the following:. ipynb; Result: The second example shows how to use client capabilities to realtime visualization via hvPlot, Streamz, RxPY:. Examples for InfluxDB queries which can be used in Grafana Example 1: Select last 10 successful builds Example 2: Select last 10 step names of failed builds Example 3: Select build duration of step for a specific project Example 4: Get transparency about successful/failed steps for a specific project jenkinsMaterializeLog. Though, some clients (InfluxDB Web UI in our case), will convert query results to the local time using your browser settings. Live Performance Result Monitoring with Jmeter-Grafana-influxdb In this article we are going to see how can we build a system where we can live monitor jmeter test results. Connect to InfluxDB Cloud; How to efficiently import large dataset; Efficiency write data from IOT sensor; How to use Jupyter + Pandas + InfluxDB 2; Installation. InfluxDB provides an SQL-like interface for querying data. This gives greater flexibility for what the language can do. For example,. Using a time series database to for aggregating testing and development tool data makes sense if you can query it after all the testing is complete to determine if a build is stable. Support for aggregation queries is built into InfluxDB and can be accessed through the SQL and REST interfaces. We will be using Node-RED to act as the endpoint for the Test Data Webhook, which will parse and inject the payload into InfluxDB, which Grafana will then. 12 and onwards. See Schema Exploration for syntax explanations and examples of InfluxQL’s SHOW queries. InfluxDB doesn't have a separate agent for aggregations. Data upload is initiated as follows: Some examples of the various ways this can be used to create different types of measurement. It then sends those results back to the front-end in JSON format. json under the examples folder of the agent installation to get you started. With continuous queries in InfluxDB, you can downsample application data and improve the end user experience for your users. For example, host_type = testservers (included global_tags in telegraf conf) My purpose: To have a pie chart with server names that only include that tag. The REST API can be used by applications to insert data into the database. Using InfluxDB in Grafana Grafana ships with a feature-rich data source plugin for InfluxDB.