{"id":46601,"date":"2020-04-13T00:00:00","date_gmt":"2020-04-13T07:00:00","guid":{"rendered":"https:\/\/griddb-linux-hte8hndjf8cka8ht.westus-01.azurewebsites.net\/blog\/data-visualization-grafana-griddb\/"},"modified":"2025-11-13T12:54:54","modified_gmt":"2025-11-13T20:54:54","slug":"data-visualization-grafana-griddb","status":"publish","type":"post","link":"https:\/\/www.griddb.net\/en\/blog\/data-visualization-grafana-griddb\/","title":{"rendered":"Data Visualization with GridDB and Grafana"},"content":{"rendered":"<p>In this blog post, we&#8217;ll show how easy it is to visualize data stored in GridDB with Grafana. <\/p>\n<h2>Setup Grafana<\/h2>\n<p>To start off with, Grafana has good installation documentation <a href=https:\/\/grafana.com\/docs\/grafana\/latest\/installation\/>here<\/a> but the basic procedure for CentOS 7 is as follows:<\/p>\n<p>Create the Grafana yum repository file:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ sudo cat > \/etc\/yum.repos.d\/grafana.repo << EOF\n> [grafana]\n> name=grafana\n> baseurl=https:\/\/packages.grafana.com\/oss\/rpm\n> repo_gpgcheck=1\n> enabled=1\n> gpgcheck=1\n> gpgkey=https:\/\/packages.grafana.com\/gpg.key\n> sslverify=1\n> sslcacert=\/etc\/pki\/tls\/certs\/ca-bundle.crt\n> EOF\n<\/code><\/pre>\n<\/div>\n<p>Install the packages with yum, if prompted to verify GPG keys, respond with &#8220;y&#8221;:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ sudo yum -y install grafana\n<\/code><\/pre>\n<\/div>\n<p>Start Grafana and configure it to start on boot: <\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ sudo \/bin\/systemctl enable grafana-server.service\n$ sudo \/bin\/systemctl start grafana-server.service\n<\/code><\/pre>\n<\/div>\n<p>You can now head over to http:\/\/<grafana-ip>:3000\/ and log in to Grafana. The default user and password are both &#8220;admin&#8221; and Grafana will prompt you to change the password immediately. <\/p>\n<h2>Set up GridDB Grafana-JSON Connector<\/h2>\n<p>We&#8217;ve created a simple Python Flask application that connects to GridDB and provides endpoints that are accessed from by the Grafana JSON Data Source plugin. You can download it here: <a  data-e-Disable-Page-Transition=\"true\" class=\"download-link\" title=\"\" href=\"https:\/\/www.griddb.net\/en\/download\/26444\/?tmstv=1775981971\" rel=\"nofollow\" id=\"download-link-26444\" data-redirect=\"false\" >\n\tGridDB Grafana JSON Connector\t(1884 downloads\t)\n<\/a>\n. For the sake of simplicity, there are a few constraints without modifying the connector:<\/p>\n<ul>\n<li>Can only query time series containers.\n<li>The time series container&#8217;s key must be named &#8220;timestamp&#8221;.\n<\/ul>\n<p>First, install <a href=\"https:\/\/github.com\/griddb\/python_client\/\">GridDB&#8217;s Python Client<\/a>. We wrote a blog about it <a href=\"https:\/\/griddb.net\/en\/blog\/python-client\/\">here<\/a>.<\/p>\n<p>After unzipping the file:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ cd griddb_grafanajson_connector\n$ nohup app.py &\n<\/code><\/pre>\n<\/div>\n<p>The connector will log to \/tmp\/griddb_grafanajson_connector.log and is accessible from via http:\/\/<server-ip>:3003\/.<\/p>\n<h2>Install Grafana JSON Data Source plugin<\/h2>\n<p><a href=\"https:\/\/grafana.com\/grafana\/plugins\/simpod-json-datasource\">Grafana JSON Data Source Plugin<\/a> can be installed with the grafana-cli tool. Restarting Grafana is required after.<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-sh\">$ sudo grafana-cli plugins install simpod-json-datasource\n$ sudo systemctl restart grafana-server.service\n<\/code><\/pre>\n<\/div>\n<p>Now, navigate to your Grafana installation in a web browser and select &#8220;Add Datasource&#8221;. If <i>JSON<\/i> isnt in the list, you can search for it and select it as the data source you wish to add.<\/p>\n<p>Enter http:\/\/localhost:3003 into the URL field and click &#8220;Save &#038; Test&#8221;.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" alt=\"create data source\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-9.56.34-AM.png\" alt=\"\" width=\"885\" height=\"783\" class=\"alignnone size-full wp-image-26379\" srcset=\"\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-9.56.34-AM.png 885w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-9.56.34-AM-300x265.png 300w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-9.56.34-AM-768x679.png 768w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-9.56.34-AM-600x531.png 600w\" sizes=\"(max-width: 885px) 100vw, 885px\" \/><\/p>\n<h2>Create a Data Visualization<\/h2>\n<p>Now select &#8220;New Dashboard&#8221; from the Grafana homepage and a new dashboard will open with a new panel. Within the new panel, select &#8220;Add Query&#8221;. <\/p>\n<p><img decoding=\"async\" alt=\"create data visualization\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.29.30-AM-1024x544.png\" alt=\"\" width=\"1024\" height=\"544\" class=\"alignnone size-large wp-image-26380\" srcset=\"\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.29.30-AM-1024x544.png 1024w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.29.30-AM-300x159.png 300w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.29.30-AM-768x408.png 768w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.29.30-AM-600x319.png 600w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.29.30-AM.png 1426w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Now you can add metrics to the panel, the format the connector expects is <container_name>:<column_name>. so in the above screenshot, the container is &#8220;zstsample&#8221; and the column is &#8220;temperature&#8221;. You can adjust the time range in the widget in the top-right corner. <\/p>\n<h2>Add Annotations<\/h2>\n<p>Now if you want to add an annotation to your data visualizations, go to &#8220;Dashboard Settings&#8221; (the gear icon in the title) and then &#8220;Annotations&#8221; and &#8220;New Annotation&#8221;.<\/p>\n<p><img decoding=\"async\" alt=\"set up grafana annotations\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.51.34-AM-1024x544.png\" alt=\"\" width=\"1024\" height=\"544\" class=\"alignnone size-large wp-image-26382\" srcset=\"\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.51.34-AM-1024x544.png 1024w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.51.34-AM-300x159.png 300w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.51.34-AM-768x408.png 768w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.51.34-AM-600x319.png 600w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.51.34-AM.png 1425w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Create a name for your annotation, select &#8220;JSON&#8221; as the data source and input a query. Like the metrics, the format is &#8220;<container>:<condition>&#8220;. in this case we want to annotate points where the temperature is high (> 95F) so we input &#8221; zstsample:temperature > 95&#8243;.<\/p>\n<p>The annotated data visualization now looks like this:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"Data visualization with annotation\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.52.15-AM-1024x541.png\" alt=\"\" width=\"1024\" height=\"541\" class=\"alignnone size-large wp-image-26383\" srcset=\"\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.52.15-AM-1024x541.png 1024w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.52.15-AM-300x158.png 300w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.52.15-AM-768x406.png 768w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.52.15-AM-600x317.png 600w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-19-at-10.52.15-AM.png 1426w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h2>Visualize Data Aggregations<\/h2>\n<p>Our data set, from an environmental sensor, has a motion field that is set to True when the sensor detects motion and false otherwise. We could plot each motion event easily, but seeing the number of motion events per hour is an easier to quantify visualization. Using GridDB&#8217;s aggregations and multi query, we add a custom function to the GridDB Grafana JSON Connector:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-py\">def count_motion(container, start, end ):\n    results=[]\n    cn = gridstore.get_container(container)\n    i = 0;\n    lsQ=[]\n    datapoints=[]\n    interval_start= start - start%(3600*1000)\n    interval_end= start + 3600*1000\n    intervals=[]\n    while interval_end < end:\n        tql = \"select count(*) where timestamp > TO_TIMESTAMP_MS(\"+str(interval_start)+\") and timestamp < TO_TIMESTAMP_MS(\"+str(interval_end)+\") and motion\"\n        print(\"AGG:\"+tql)\n        query = cn.query(tql)\n        i=i+1\n        lsQ.append(query)\n        interval_start = interval_start + 3600*1000\n        interval_end = interval_end + 3600*1000\n\n    gridstore.fetch_all(lsQ)\n\n    interval=start\n    for q in lsQ:\n        rs = q.get_row_set()\n        rs.timestamp_output_with_float = True\n        columns = rs.get_column_names()\n\n        if rs.has_next():\n            row = rs.next()\n            datapoints.append([ row.get(griddb.Type.LONG), interval])\n\n        else:\n            datapoints.append([0, interval])\n\n        if interval == start:\n            interval=interval - start%(3600*1000) + 3600*1000\n        else:\n            interval=interval + 3600*1000\n\n    datapoints.append([datapoints[len(datapoints)-1][0], end])\n\n    return {'target': '%s' % (container+\" motion count\"),  'datapoints': datapoints }\n<\/code>\n<\/pre>\n<\/div>\n<p>This function iterates for every hour of the selected time range, counting the number of motion events. To enable the function, we alter the main query function with an if-statement:<\/p>\n<div class=\"clipboard\">\n<pre><code class=\"language-py\">if column == \"count_motion\":\n    results.append(count_motion(container, start, end))\nelse:\n    results.append(query_column(container, column, freq, start, end))\n<\/code><\/pre>\n<\/div>\n<p>Adding another query to the panel, we can see just how much traffic is in a given area at a certain time:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/griddb.net\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-26-at-9.36.02-AM-1024x504.png\" alt=\"aggregation query data visualization\" width=\"1024\" height=\"504\" class=\"alignnone size-large wp-image-26469\" srcset=\"\/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-26-at-9.36.02-AM-1024x504.png 1024w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-26-at-9.36.02-AM-300x148.png 300w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-26-at-9.36.02-AM-768x378.png 768w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-26-at-9.36.02-AM-600x295.png 600w, \/wp-content\/uploads\/2020\/03\/Screen-Shot-2020-03-26-at-9.36.02-AM.png 1430w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>We've shown a variety of data visualizations and -- given how easy it is to modify the connector -- you can create ever more complex visualizations using GridDB aggregations and queries.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this blog post, we&#8217;ll show how easy it is to visualize data stored in GridDB with Grafana. Setup Grafana To start off with, Grafana has good installation documentation here but the basic procedure for CentOS 7 is as follows: Create the Grafana yum repository file: $ sudo cat > \/etc\/yum.repos.d\/grafana.repo [grafana] > name=grafana > [&hellip;]<\/p>\n","protected":false},"author":71,"featured_media":26395,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[121],"tags":[],"class_list":["post-46601","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Data Visualization with GridDB and Grafana | GridDB: Open Source Time Series Database for IoT<\/title>\n<meta name=\"description\" content=\"In this blog post, we&#039;ll show how easy it is to visualize data stored in GridDB with Grafana. Setup Grafana To start off with, Grafana has good\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Data Visualization with GridDB and Grafana | GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"og:description\" content=\"In this blog post, we&#039;ll show how easy it is to visualize data stored in GridDB with Grafana. Setup Grafana To start off with, Grafana has good\" \/>\n<meta property=\"og:url\" content=\"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/\" \/>\n<meta property=\"og:site_name\" content=\"GridDB: Open Source Time Series Database for IoT\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/griddbcommunity\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-13T07:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-13T20:54:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.griddb.net\/wp-content\/uploads\/2020\/03\/macbook-graphs-charts_2560x1707.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Owen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:site\" content=\"@GridDBCommunity\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Owen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/\"},\"author\":{\"name\":\"Owen\",\"@id\":\"https:\/\/griddb.net\/en\/#\/schema\/person\/0f2f6d4b593adde8c43cf3ea5c794c66\"},\"headline\":\"Data Visualization with GridDB and Grafana\",\"datePublished\":\"2020-04-13T07:00:00+00:00\",\"dateModified\":\"2025-11-13T20:54:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/\"},\"wordCount\":576,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/griddb.net\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2020\/03\/macbook-graphs-charts_2560x1707.jpg\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/\",\"url\":\"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/\",\"name\":\"Data Visualization with GridDB and Grafana | GridDB: Open Source Time Series Database for IoT\",\"isPartOf\":{\"@id\":\"https:\/\/griddb.net\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/#primaryimage\"},\"thumbnailUrl\":\"\/wp-content\/uploads\/2020\/03\/macbook-graphs-charts_2560x1707.jpg\",\"datePublished\":\"2020-04-13T07:00:00+00:00\",\"dateModified\":\"2025-11-13T20:54:54+00:00\",\"description\":\"In this blog post, we'll show how easy it is to visualize data stored in GridDB with Grafana. Setup Grafana To start off with, Grafana has good\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/#primaryimage\",\"url\":\"\/wp-content\/uploads\/2020\/03\/macbook-graphs-charts_2560x1707.jpg\",\"contentUrl\":\"\/wp-content\/uploads\/2020\/03\/macbook-graphs-charts_2560x1707.jpg\",\"width\":2560,\"height\":1707},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/griddb.net\/en\/#website\",\"url\":\"https:\/\/griddb.net\/en\/\",\"name\":\"GridDB: Open Source Time Series Database for IoT\",\"description\":\"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL\",\"publisher\":{\"@id\":\"https:\/\/griddb.net\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/griddb.net\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/griddb.net\/en\/#organization\",\"name\":\"Fixstars\",\"url\":\"https:\/\/griddb.net\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb.net\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"contentUrl\":\"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png\",\"width\":200,\"height\":83,\"caption\":\"Fixstars\"},\"image\":{\"@id\":\"https:\/\/griddb.net\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/griddbcommunity\/\",\"https:\/\/x.com\/GridDBCommunity\",\"https:\/\/www.linkedin.com\/company\/griddb-by-toshiba\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/griddb.net\/en\/#\/schema\/person\/0f2f6d4b593adde8c43cf3ea5c794c66\",\"name\":\"Owen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/griddb.net\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/47438a5c81215c7a9043be1b427e0bbd8dc0f77bd536f147f8495575149e4325?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/47438a5c81215c7a9043be1b427e0bbd8dc0f77bd536f147f8495575149e4325?s=96&d=mm&r=g\",\"caption\":\"Owen\"},\"url\":\"https:\/\/www.griddb.net\/en\/author\/owen\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Data Visualization with GridDB and Grafana | GridDB: Open Source Time Series Database for IoT","description":"In this blog post, we'll show how easy it is to visualize data stored in GridDB with Grafana. Setup Grafana To start off with, Grafana has good","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/","og_locale":"en_US","og_type":"article","og_title":"Data Visualization with GridDB and Grafana | GridDB: Open Source Time Series Database for IoT","og_description":"In this blog post, we'll show how easy it is to visualize data stored in GridDB with Grafana. Setup Grafana To start off with, Grafana has good","og_url":"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/","og_site_name":"GridDB: Open Source Time Series Database for IoT","article_publisher":"https:\/\/www.facebook.com\/griddbcommunity\/","article_published_time":"2020-04-13T07:00:00+00:00","article_modified_time":"2025-11-13T20:54:54+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/www.griddb.net\/wp-content\/uploads\/2020\/03\/macbook-graphs-charts_2560x1707.jpg","type":"image\/jpeg"}],"author":"Owen","twitter_card":"summary_large_image","twitter_creator":"@GridDBCommunity","twitter_site":"@GridDBCommunity","twitter_misc":{"Written by":"Owen","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/#article","isPartOf":{"@id":"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/"},"author":{"name":"Owen","@id":"https:\/\/griddb.net\/en\/#\/schema\/person\/0f2f6d4b593adde8c43cf3ea5c794c66"},"headline":"Data Visualization with GridDB and Grafana","datePublished":"2020-04-13T07:00:00+00:00","dateModified":"2025-11-13T20:54:54+00:00","mainEntityOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/"},"wordCount":576,"commentCount":0,"publisher":{"@id":"https:\/\/griddb.net\/en\/#organization"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2020\/03\/macbook-graphs-charts_2560x1707.jpg","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/","url":"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/","name":"Data Visualization with GridDB and Grafana | GridDB: Open Source Time Series Database for IoT","isPartOf":{"@id":"https:\/\/griddb.net\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/#primaryimage"},"image":{"@id":"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/#primaryimage"},"thumbnailUrl":"\/wp-content\/uploads\/2020\/03\/macbook-graphs-charts_2560x1707.jpg","datePublished":"2020-04-13T07:00:00+00:00","dateModified":"2025-11-13T20:54:54+00:00","description":"In this blog post, we'll show how easy it is to visualize data stored in GridDB with Grafana. Setup Grafana To start off with, Grafana has good","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb.net\/en\/blog\/data-visualization-grafana-griddb\/#primaryimage","url":"\/wp-content\/uploads\/2020\/03\/macbook-graphs-charts_2560x1707.jpg","contentUrl":"\/wp-content\/uploads\/2020\/03\/macbook-graphs-charts_2560x1707.jpg","width":2560,"height":1707},{"@type":"WebSite","@id":"https:\/\/griddb.net\/en\/#website","url":"https:\/\/griddb.net\/en\/","name":"GridDB: Open Source Time Series Database for IoT","description":"GridDB is an open source time-series database with the performance of NoSQL and convenience of SQL","publisher":{"@id":"https:\/\/griddb.net\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/griddb.net\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/griddb.net\/en\/#organization","name":"Fixstars","url":"https:\/\/griddb.net\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb.net\/en\/#\/schema\/logo\/image\/","url":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","contentUrl":"https:\/\/griddb.net\/wp-content\/uploads\/2019\/04\/fixstars_logo_web_tagline.png","width":200,"height":83,"caption":"Fixstars"},"image":{"@id":"https:\/\/griddb.net\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/griddbcommunity\/","https:\/\/x.com\/GridDBCommunity","https:\/\/www.linkedin.com\/company\/griddb-by-toshiba"]},{"@type":"Person","@id":"https:\/\/griddb.net\/en\/#\/schema\/person\/0f2f6d4b593adde8c43cf3ea5c794c66","name":"Owen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/griddb.net\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/47438a5c81215c7a9043be1b427e0bbd8dc0f77bd536f147f8495575149e4325?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/47438a5c81215c7a9043be1b427e0bbd8dc0f77bd536f147f8495575149e4325?s=96&d=mm&r=g","caption":"Owen"},"url":"https:\/\/www.griddb.net\/en\/author\/owen\/"}]}},"_links":{"self":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/46601","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/comments?post=46601"}],"version-history":[{"count":1,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/46601\/revisions"}],"predecessor-version":[{"id":51286,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/posts\/46601\/revisions\/51286"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/media\/26395"}],"wp:attachment":[{"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/media?parent=46601"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/categories?post=46601"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.griddb.net\/en\/wp-json\/wp\/v2\/tags?post=46601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}