Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here

Statistics on dashboard

Number of watchers on Github 321
Number of open issues 12
Average time to close an issue about 1 year
Main language JavaScript
Average time to merge a PR 5 months
Open pull requests 5+
Closed pull requests 3+
Last commit over 4 years ago
Repo Created over 8 years ago
Repo Last Updated almost 2 years ago
Size 1.23 MB
Organization / Authoretsy
Page Updated
Do you use dashboard? Leave a review!
View open issues (12)
View dashboard activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating dashboard for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)
      __                    __      __                                 __
     /\ \                  /\ \    /\ \                               /\ \
     \_\ \     __      ____\ \ \___\ \ \____    ___      __     _ __  \_\ \    ____
     /'_` \  /'__`\   /',__\\ \  _ `\ \ '__`\  / __`\  /'__`\  /\`'__\/'_` \  /',__\
    /\ \L\ \/\ \L\.\_/\__, `\\ \ \ \ \ \ \L\ \/\ \L\ \/\ \L\.\_\ \ \//\ \L\ \/\__, `\
    \ \___,_\ \__/.\_\/\____/ \ \_\ \_\ \_,__/\ \____/\ \__/.\_\\ \_\\ \___,_\/\____/
     \/__,_ /\/__/\/_/\/___/   \/_/\/_/\/___/  \/___/  \/__/\/_/ \/_/ \/__,_ /\/___/

This is an Archived Project

Dashboard is no longer actively maintained and is no longer in sync with the version used internally at Etsy.

Etsy Dashboards

Source code for Etsy's dashboards framework.

Take a look at the various htdocs/example_* files to get started.


  1. Create a new virtual host on your favourite web server, and point the DocumentRoot to the htdocs/ directory.

  2. Edit htdocs/phplib/Dashboard.php: i. Edit the varions server variables near the top, to point to your graphing servers. ii. You can edit the TABS section below that. Each of your dashboard pages should import one of the arrays, which will generate a set of navigation tabs at the top of that page. The index page also uses the tabs as a table of contents for you to start on. Check out the top of htdocs/index.php to see how that is organised.

  3. Edit htdocs/assets/js/dashboard.js, and edit the server names there too. We apologies for making you put server names in two places. Still, it's better than three places!


There are a number of cool things you can do in your dashboards as you create them. The framework is designed such that you should not need to put any HTML in your dashboard files to get your graphs to appear.

You can optionally set one variable, $html_for_header, which will be inserted just above your graphs when the page is rendered.

BUILT IN GRAPH TYPES: There are a number of handlers for graphs built in to the frame work. Each type expects to find a global array named '$graphs', but the contents of this array vary from handler to handler. Here is what each of the current handlers expects:

  • Graphite An array of metrics to print on the graph. This can be a single metric name, or a list of metrics. Eg: array( '', '' );

  • Ganglia An array with the following key/value pairs: source: The name of the ganglia cluster node: The name of the server datum: The name of the graph

  • Cacti Cacti does not require a complex array. The value of metric is the integer ID of the graph.

  • FITB FITB has no metric array, but expects the following variables for each graph object: host: The name of the network device portname: The name of the port on the device graphtype: One of 'bits', 'ucastpkts' or 'errors' title: The name you want for this graph

  • NewRelic: The NewRelic metric array for each graph requires two variables: time: One of the dashboard time frames, eg '1w', '2d', etc. url: The URL to the graph, as given when you make a graph public. The configuration for NewRelic requires multiple graph URLs for each graph you want displayed. Please see the example_newrelic.php file for more details.


At Etsy we store a graphite metric each time we do a deploy. We store a unique metric for each type of deploy. For example, when we deploy our Web stack, we insert a '1' to deploys.web.production. We do similar things for Search deploys, blog changes, etc.

These lines get overlayed on all graphite graphs displayed in the dashboard. If you do the same thing, you should add these stat names to the htdocs/phplib/DeployConstants.php file. If you don't, you should delete the entries in this file. The dashbaord framework will let you hide individual deploy types on the dashboard pages.

dashboard open issues Ask a question     (View All Issues)
  • over 6 years Splunk support?
  • almost 7 years graphite color support missing support for longer colors (results in no colors set)
  • about 7 years missing js
  • over 7 years Ganglia aggregate graphs
  • over 7 years default view is broken
  • about 8 years Adding Cacti Graphs that require a login
  • over 8 years Deploying on Heroku
dashboard open pull requests (View All Pulls)
  • formatting tweaks
  • combined PR 12 and 11 (php tags and relative pathing)
  • OpenTSDB graphing and an example
  • Complete graph type splunk in the dashboard
  • added Dygraph rendering of Graphite data
dashboard questions on Stackoverflow (View All Questions)
  • Is this possible to add custom query in Kibana dashboard which is hidden from logged in user?
  • How to create a calculation on the dashboard between two different worksheets in Tableau?
  • Google Charts dashboard - hide columns
  • Where is the best place for storing user action in dashboard - CUSTOM PLUGIN
  • Shiny Dashboard - display a dedicated "loading.." page until initial loading of the data is done
  • Database Create Operation Failed on Cloudant Local Dashboard
  • Cannot deploy. Heroku dashboard shows "Latest build failed"
  • Saving a HTML dashboard which does not get affected on reloading
  • Host Status Details page in Nagios dashboard shows question mark
  • aws cloudwatch create dashboard via script
  • Is there an open source dashboard for testing
  • Admin dashboard with Angular Js
  • Custom user dashboard in django
  • Hospital Patient Schedule Dashboard
  • Dashboard tactic in MVC with large data in child table
  • Add functionality from wordpress dashboard to define images on hover
  • Why am I not receiving any Android Tokens in the Ionic Dashboard?
  • LARAVEL: Get an array of scheduled tasks for output in admin dashboard
  • Redirect to the pentaho dashboard when user logging in
  • Redirect admin to other page instead of dashboard page (NING)
  • I see my URL but I can't find the page in wordpress dashboard
  • Mount Split gem dashboard within Rails_Admin
  • How to provide a Tableau dashboard to 100,000 users and embed it into my website
  • "Web Content" widget with datasets in PowerBI dashboard
  • XAMPP keeps showing Dashboard/Welcome Page instead of the Configuration Page
  • XAMPP localhost redirects to localhost/dashboard
  • Building a dashboard using Google Analytics API, not sure where to start
  • Best way to integrate chat with a custom admin dashboard
  • Dashboard pagebreak issue
  • Xampp Localhost loads as a dashboard & Htdocs missing from apache folder
dashboard list of languages used
Other projects in JavaScript