{"id":2434,"date":"2016-11-11T06:17:07","date_gmt":"2016-11-11T06:17:06","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2434"},"modified":"2019-02-26T00:16:53","modified_gmt":"2019-02-26T08:16:53","slug":"cbas-dashboard-node","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/","title":{"rendered":"Visualization Dashboard with Couchbase Analytics"},"content":{"rendered":"<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">In the world of Big Data, where we have gogolbytes of information available about all aspects of our applications and the users that are interacting with them, being able to analyze all of this data and provide insightful intelligence is paramount. \u00a0At Couchbase, we are working to build data management platforms that let you take advantage of this data. \u00a0This will then eventually be accessible from a variety of industry-standard analysis platforms like Tableau, QlikView and Microstrategy as well as next generation NoSQL analytics platforms such as <\/span><a style=\"text-decoration: none;\" href=\"https:\/\/www.cloud9charts.com\/couchbase\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #1155cc; background-color: transparent; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;\">Cloud9<\/span><\/a><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\"> and <\/span><a style=\"text-decoration: none;\" href=\"https:\/\/slamdata.com\/solution\/couchbase-analytics\/\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #1155cc; background-color: transparent; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;\">SlamData<\/span><\/a><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">, however it is also important that developers have APIs to access the systems that store and analyze this data. \u00a0With this level of direct access, these developers have the flexibility to build everything from simple dashboards to complete custom reporting for their users.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">As of version 2.2.4 of our Node.js SDK, we now have experimental support for performing Couchbase Analytics queries against a cluster. \u00a0The API is very similar to the existing APIs available for performing N1QL queries in the Node.js SDK. \u00a0<\/span><\/p>\n<pre><code class=\"language-javascript\">\/\/ Connect to the local cluster and enable experimental Couchbase Analytics support.\r\nvar cluster = new couchbase.Cluster('couchbase:\/\/localhost');\r\ncluster.enableCbas(['localhost:8095']);\r\n\r\n\/\/ Perform a simple query, selecting all users with a specific email.\r\nvar qs = 'SELECT * FROM users WHERE email=\"tom@example.com\"';\r\nvar q = couchbase.CbasQuery.fromString(qs);\r\ncluster.query(q, function(err, res) {\r\n if (err) {\r\n    throw err;\r\n }\r\n\r\n console.log(res);\r\n});<\/code><\/pre>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">As you might notice, the difference between our N1QL APIs and the Couchbase Analytics APIs is that with Couchbase Analytics you must perform your queries at the cluster-level and use CbasQuery to instantiate your query object.<\/span><\/p>\n<div dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><\/div>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">Using these new APIs, we have also built a new dashboard demonstration application which pulls together a few well-known libraries in the Node.js world to show how you might turn these new APIs into a useful interface that can display business-specific metrics that are useful to you and your colleagues.<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 21.3333px; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;\">How the Dashboard Works<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">The dashboard we have put together consists of two separate components. \u00a0First, a server-side component which is running the Node.js SDK and provides a restful interface. \u00a0Second, \u00a0a client-side component which is a simple HTML5 page. \u00a0The server-side component will serve the client-side component from the root of its web-service to make things easier.<\/span><\/p>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">The client-side of the application is a simple HTML and Javascript page which contains a small form allowing you to specify some parameters, a large text section which displays all the queries which have been executed against your Couchbase Analytics cluster, as well as 3 graphs which are used to present the data from your queries. \u00a0When the page loads, or when you click the update button, we dispatch requests to the server-side application requesting various pieces of information about our travel-sample data. \u00a0When a reply is received from the server, we then pass this information to Chart.js which generates our graphs.<\/span><\/p>\n<div dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><\/div>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\"><img loading=\"lazy\" decoding=\"async\" style=\"border-width: initial; border-style: none; transform: rotate(0rad);\" src=\"https:\/\/lh4.googleusercontent.com\/4ZtJzuDqd71tPaXeH8QDSyLsjbEMaZ5ouTy73kFP3F8lmhwha7PPnmlKJtk03SD84z4XrAcjjEpwrNPmVn_rycDNSn_r-PaeyzhYWCdfyI6aafy7eZlqn7tk-TtTtjiK3uPgPDoq\" alt=\"Screen+Shot+2016-11-01+at+11.20.39+AM.png\" width=\"624\" height=\"208\" \/><\/span><\/p>\n<div dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><\/div>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">The code for this is pretty straightforward.<\/span><\/p>\n<div dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\">\n<pre><code class=\"language-javascript\">$.get('\/pricestats?' + formData)\r\n.done(function(data) {\r\n  addNarration(data.narration);\r\n\r\n  var info = data.data;\r\n\r\n  config1.data.labels = [];\r\n  config1.data.datasets[0].data = [];\r\n\r\n  for (var i = 0; i &lt; info.length; ++i) {\r\n      config1.data.labels.push(info[i].grpdate);\r\n      config1.data.datasets[0].data.push(info[i].metric);\r\n  }\r\n\r\n  myChart1.update();\r\n}).fail(function(err) {\r\n  addNarrationText(err.toString());\r\n});<\/code><\/pre>\n<p><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">It simply \u00a0uses Express to start a web-server which responds to any root requests with the client-side page for this application. \u00a0It additionally registers a couple of REST endpoints which the application uses to update its graphs. \u00a0Each of these REST endpoints front-ends a SQL++ query against the Couchbase Analytics cluster and then returns the results of that query back to the client-side of the application to be graphed.<\/span><\/p>\n<\/div>\n<div dir=\"ltr\" style=\"margin-left: 0pt;\">\n<pre><code class=\"language-javascript\">var qs =\r\n  'SELECT ' +\r\n  '  parse_date(SUBSTR(e.date, 0, 10), \"Y-M-D\") AS grpdate, ' +\r\n  'SUM(e.price) AS metric ' +\r\n  'FROM users u ' +\r\n  '  UNNEST u.flights e ' +\r\n  'WHERE parse_date(SUBSTR(e.date, 0, 10), \"Y-M-D\") &gt;= parse_date(\"2016-10-01\", \"Y-M-D\") ' +\r\n  '  AND parse_date(SUBSTR(e.date, 0, 10), \"Y-M-D\") &lt; parse_date(\"2016-11-01\", \"Y-M-D\") ' +\r\n  'GROUP BY grpdate ' +\r\n  'ORDER BY grpdate;';\r\n\r\nvar q = couchbase.CbasQuery.fromString(qs);\r\ncluster.query(q, function(err, qres) {\r\nif (err) {\r\n  res.status(400).send(err);\r\n  return;\r\n}\r\n\r\nres.send({\r\n  data: qres,\r\n  narration: [\r\n    ['sql', qs]\r\n  ]\r\n});\r\n});<\/code><\/pre>\n<p><span style=\"color: #000000; font-family: Arial; font-size: 14.6667px; text-align: left; white-space: pre-wrap;\">In addition to the RESTful service provided by the server-side application, we have additionally included automatic creation of the necessary Couchbase Analytics shadow buckets for the travel sample and \u00a0inserting 1000 entries worth of randomly generated flight purchase data to give us something interesting to look at.<\/span><\/p>\n<pre><code class=\"language-javascript\">var qs =\r\n  'CREATE BUCKET tsBucket WITH {\"name\":\"travel-sample\",\"nodes\":\"127.0.0.1\"};' +\r\n  'CREATE SHADOW DATASET airlines ON tsBucket WHERE `type` = \"airline\";' +\r\n  'CREATE SHADOW DATASET airports ON tsBucket WHERE `type` = \"airport\";' +\r\n  'CREATE SHADOW DATASET hotels ON tsBucket WHERE `type` = \"hotel\";' +\r\n  'CREATE SHADOW DATASET landmarks ON tsBucket WHERE `type` = \"landmark\";' +\r\n  'CREATE SHADOW DATASET routes ON tsBucket WHERE `type` = \"route\";' +\r\n  'CREATE SHADOW DATASET users ON tsBucket WHERE `type` = \"user\";' +\r\n  'CONNECT BUCKET tsBucket WITH {\"password\":\"\"};';\r\n\r\n\r\nvar q = couchbase.CbasQuery.fromString(qs);\r\ncluster.query(q, function(err, res) {\r\n \/\/ We ignore errors here since they are usually just\r\n \/\/  'dataset already exists'.\r\n callback(null);\r\n});<\/code><\/pre>\n<\/div>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 21.3333px; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;\">Getting the Example Dashboard<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">Getting started with our new demonstration is as simple as visiting is GitHub repo which is located at:<\/span><a style=\"text-decoration: none;\" href=\"https:\/\/github.com\/brett19\/node-cbasdashdemo\"> <span style=\"font-size: 14.6667px; font-family: Arial; color: #1155cc; background-color: transparent; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;\">https:\/\/github.com\/couchbaselabs\/node-cbasdashdemo<\/span><\/a><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\"> and following the Getting Started guide available in the included README.<\/span><\/p>\n<h2 dir=\"ltr\" style=\"line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;\"><span style=\"font-size: 21.3333px; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; vertical-align: baseline; white-space: pre-wrap;\">Getting the Node.js Release<\/span><\/h2>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">As with all of our Node.js releases, we have published this version to NPM and it can be installed with a simple invocation of npm:<\/span><\/p>\n<pre class=\"lang:default decode:true \">npm install Couchbase@2.2.4<\/pre>\n<p dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><span style=\"font-size: 14.6667px; font-family: Arial; color: #000000; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;\">We also ship prebuilt binaries as part of our npm release process, allow you to get started with the Node.js SDK without any further hassles (note that Node.js v7.0.0 does not currently have prebuilt binaries of the Couchbase module available and requires a working compiler to install).<\/span><\/p>\n<div dir=\"ltr\" style=\"line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In the world of Big Data, where we have gogolbytes of information available about all aspects of our applications and the users that are interacting with them, being able to analyze all of this data and provide insightful intelligence is [&hellip;]<\/p>\n","protected":false},"author":31,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1822],"tags":[],"ppma_author":[9004],"class_list":["post-2434","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-node-js"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Visualization Dashboard with Couchbase Analytics<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Visualization Dashboard with Couchbase Analytics\" \/>\n<meta property=\"og:description\" content=\"In the world of Big Data, where we have gogolbytes of information available about all aspects of our applications and the users that are interacting with them, being able to analyze all of this data and provide insightful intelligence is [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-11T06:17:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-02-26T08:16:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Brett Lawson, Principal Software Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Brett Lawson, Principal Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/\"},\"author\":{\"name\":\"Brett Lawson, Principal Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5cfc2fbf25776be2a027a474562be02f\"},\"headline\":\"Visualization Dashboard with Couchbase Analytics\",\"datePublished\":\"2016-11-11T06:17:06+00:00\",\"dateModified\":\"2019-02-26T08:16:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/\"},\"wordCount\":668,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Node.js\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/\",\"name\":\"Visualization Dashboard with Couchbase Analytics\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-11-11T06:17:06+00:00\",\"dateModified\":\"2019-02-26T08:16:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Visualization Dashboard with Couchbase Analytics\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5cfc2fbf25776be2a027a474562be02f\",\"name\":\"Brett Lawson, Principal Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ee3586f0c112c20e863af447d44dec8f\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g\",\"caption\":\"Brett Lawson, Principal Software Engineer, Couchbase\"},\"description\":\"Brett Lawson is a Principal Software Engineer at Couchbase. Brett is responsible for the design and development of the Couchbase Node.js and PHP clients as well as playing a role in the design and development of the C library, libcouchbase.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/author\/brett-lawson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Visualization Dashboard with Couchbase Analytics","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:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/","og_locale":"en_US","og_type":"article","og_title":"Visualization Dashboard with Couchbase Analytics","og_description":"In the world of Big Data, where we have gogolbytes of information available about all aspects of our applications and the users that are interacting with them, being able to analyze all of this data and provide insightful intelligence is [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-11-11T06:17:06+00:00","article_modified_time":"2019-02-26T08:16:53+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"Brett Lawson, Principal Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Brett Lawson, Principal Software Engineer, Couchbase","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/"},"author":{"name":"Brett Lawson, Principal Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5cfc2fbf25776be2a027a474562be02f"},"headline":"Visualization Dashboard with Couchbase Analytics","datePublished":"2016-11-11T06:17:06+00:00","dateModified":"2019-02-26T08:16:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/"},"wordCount":668,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Node.js"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/","url":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/","name":"Visualization Dashboard with Couchbase Analytics","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-11-11T06:17:06+00:00","dateModified":"2019-02-26T08:16:53+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/cbas-dashboard-node\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Visualization Dashboard with Couchbase Analytics"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5cfc2fbf25776be2a027a474562be02f","name":"Brett Lawson, Principal Software Engineer, Couchbase","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ee3586f0c112c20e863af447d44dec8f","url":"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g","caption":"Brett Lawson, Principal Software Engineer, Couchbase"},"description":"Brett Lawson is a Principal Software Engineer at Couchbase. Brett is responsible for the design and development of the Couchbase Node.js and PHP clients as well as playing a role in the design and development of the C library, libcouchbase.","url":"https:\/\/www.couchbase.com\/blog\/author\/brett-lawson\/"}]}},"authors":[{"term_id":9004,"user_id":31,"is_guest":0,"slug":"brett-lawson","display_name":"Brett Lawson, Principal Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/6aec1ba24ef7558a248dcde7b7a18b15b06e2885b24b663906a448634066c1c4?s=96&d=mm&r=g","author_category":"","last_name":"Lawson","first_name":"Brett","job_title":"","user_url":"","description":"Brett Lawson is a Principal Software Engineer at Couchbase. Brett is responsible for the design and development of the Couchbase Node.js and PHP clients as well as playing a role in the design and development of the C library, libcouchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/users\/31"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/comments?post=2434"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/posts\/2434\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/media?parent=2434"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/categories?post=2434"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/tags?post=2434"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=2434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}