A big part of running your business involves looking at this list and picking the ones that make sense for your business, not what the blog-post-du-jour is telling you.
So put business and technological metrics on that dashboard. And then you can decide whether you should be focusing most on customer support, A/B testing, or that network bottleneck.
If you are sitting on your thumbs looking for something to do, then definitely add a dashboard. If you're like me and have a backlog a mile long, maybe a dashboard isn't the best way to spend your time.
My working theory on dashboards is this: the human mind is amazing at pattern recognition. We're wired for it. We can make intuitive leaps see patterns that may be very hard to describe in math/stats or code. Particularly visual ones. So if you provide that data to your brain to crunch, you are enabling and augmenting your natural tooling. The graphs and stats should be as specific an pre-thought out as possible, but they aren't perfect. Fortunately, as time progresses you learn what "looks right" and what "looks like a problem in subsystem Foo".
This isn't a silver bullet, but certainly it is a great tool. Since then, I've tried to never do work without some sort of visual feedback I can background my innate pattern matching on. Even if it is just scrolling logs -- these patterns emerge and provide clues even if you can't express what they are.
(Anecdote: I had built a demo a while back, and it hiccuped during the live presentation. Fortunately I was in the back of the room with my logs scrolling, and I noticed the logs looked wrong, so I found out a script had died. I restarted it, causing a weird blip in one of our display graphs, but the presenter noticed it before calling attention to that graph in the course of presentation. He glanced at me and I gave him the thumbs up and the audience never even noticed. What was the pattern? The scrolling in one of my log windows slowed down....)
On one side- yes it's supercool to have a dashboard with maps and metrics and everything like that. And I can see it could be really useful too when something's going wrong.
On the other hand, I'd be wary of building anything like this until I had a good number of customers, paying me money for a service. Is the product so complete (I would ask myself) and my users so happy, that we have no more important task than building a dashboard to look at in the office. Don't some simple email alerts cover most of the important bases (server down, site down etc) for now.
Your startup needs customers (or failing that, users). Your users don't care if you've got a dashboard, they care that your product does what it says.
Sometimes you need a way to look at the system and say "Hmm, everything works, but those two queues shouldn't have 20k items waiting in them ..."
handy, that one.
Yes you need some customers, otherwise you have no data to look at. However, as soon as you have _any_ customers if you aren't looking at real data to decide what is important to do next you are essentially just guessing.
For a long time that's what we did because tracking what was relevant was just too hard. Now what I see in a lot of startups that are leading the pack is that they are monitoring everything whether they think they'll need it or not - then when they have a critical question the data is already there.
Next thing you know, you have a dashboard tracking: - Real time revenue/revenue projections - Real time payments funnel metrics (impressions on payments page, conversions, average transaction size) - Real time tutorial completion rate by hour (aka application health monitoring) - Other KPIs tracked by the day (revenue, install, etc.)
In fact, there was a period of time when my dashboard was the most effective health monitoring in the company, and detected an issue before engineering or ops.
Dashboard answers the question: Is my product right now working for my users?
Eventually it can also show trends in terms of resource usage, strange peaks, etc. But the primary function of dashboard is answering the question: "are my users getting the service?"
Additional note: dashboard works wonders for getting us - engineers - understand that there are real users out there right now and thus making us want to build even better product.
Once you've gotten to the MVP stage, you should be tracking the key metrics, and those should be easily viewable in some sort of dashboard. Tracking up-time (or if the service is working) is a small part of what should be measured. When you're just starting off, you need to quickly figure out if your market hypothesis is correct. You can't do that without data, and a dashboard is both easy to build and helps make more informed decisions for everyone involved.
No one is arguing that you should build a dashboard before you have a MVP. Once that happens, you need to be measuring things.
They have variety of purposes. For e.g our webapp is an open book, we display live dashboard (https://my.infocaptor.com) of our very app itself because it is meant to be a dashboard platform
The main purpose of dashboards is to keep a birds eye view and take action when something is off.
Don't track metrics where you don't have time or resources to take action against.
I have taken the time to build a graphite/stasd setup. It is over engineered for now, but it grows and is really easy to add in new metrics. (there is even a fab file to install on ubuntu buried in github/lifeisstillgood/frozone)
but, you are right - a dashboard that measures how the site is going is useful. One that measures cashflow, email conversion rates and more is more useful. Linking those into graphite is not a good idea. A more traditional data collection is needed.
Metrics are also about the state of your business. What is your growth rate ? What is your churn ? Are people only clicking on certain features ? Where should you improve performance ? These sort of questions are essential for startups especially in the early stages where you need to be careful where to allocate precious resources.
Yes you can sort of gauge that with Google Analytics but only to a certain granularity. Graphite is incredibly flexible.
I think you can make a mistake of measuring and trying to understand data in increments that are so small as to be a waste of time. It can become just another way to not be minding your knitting. Server down? You need to know right now. Knowing that somebody considering buying your product is using a iPhone in New Zealand? Not so much. Computers are great at catching and storing all sorts of stuff. Unless it's critical, best to play with the bells and whistles in controlled deep dives, not as part of a Tony Stark video-game-master-of-the-universe thing. I love bringing up my real-time site metrics and watching all sorts of folks that I am helping. I also like to watch my stock portfolio move throughout the day. But I've found that there's a lot of naval-gazing going on there and not much of anything useful.
Don't look at measurements that generate no subsequent management activity.
http://www.perceptualedge.com/articles/Whitepapers/Dashboard... http://www.perceptualedge.com/articles/Whitepapers/Common_Pi...
The author also has written a great book on dashboard design.
Operations dashboards are essential for any (tech?) company.
Business dashboards are another beast all together.
Do you have any additional suggested reading material? Thanks much.
The The Grammar of Graphics (Statistics and Computing) by Leland Wilkinson is also great, though more focused on building graphing systems. I believe it is the inspiration for a lot of d3.js http://www.amazon.com/The-Grammar-Graphics-Statistics-Comput...
We don't really cover any serious metrics, as we're mostly client work - but we did have a big screen that we wanted to use. It's become one of the coolest things in our office.
Like any doctor would say, the sooner you find out something is wrong, the better. And if nothing goes wrong, you have a huge cool display of how awesome your company is doing.
If you're interested in dashboards, our startup recently launched a service that makes it simple to hook in your metrics through OSS tools like StatsD and build real-time dashboards with a few clicks: https://metrics.librato.com You just provide the data, we do all the rest. Would love any feedback you might have!
The only issue is the pricing can be a little unfair if you are aiming for more of a real time system since you can't define retention rate. It would be great to be able to model the same system used in Graphite i.e. real time for last 6 hours, then capture every 5 minutes for 6-24 hours and then every 10 minutes from 24 hours onwards.
Its one thing to give the numbers to the management group, but its more readily accepted when combined in a visual manner. i.e. dashboard
My current employer is only now beginning to see the advantage of collecting good metrics and how it shows the behaviour of both the users and the application.
Their decision making and planning becomes more accurate over time due to having good information at their fingertips rather than an educated guess because originally the system was a black box.
It doesn't even matter what sort of logging/stats drawing software they use, it could just as well be a tiled window manager with some Google Analytics views on auto-refresh and a colour-coded log tail :)
Not saying you can't do much better than that by picking smart visualisations, but the biggest win is having a few dedicated screens mounted on the wall continuously displaying info, for everyone in the office to glance at.
Not to mention is looks damn cool and impressive :)
Stashboard - Open source status monitor for elements of your infrastructure, run it on AppEngine
GeckoBoard - Dashboard as a service - Can be coerced into creating whatever kind of charts/graphs you want on a slick looking board, but is set to do polling of data which is less helpful for system operations stuff, but nicer for marketing, MAU/DAU monitoring, signups, etc.
Disclosure: I'm one of the founders, thanks for the mention.
We have plenty of tasks we could constructively spend our time on rather watschen der blinkenlichten.
If no one's going to watch your dashboard, why build it? If occasional glances at a dashboard is your monitoring strategy, why monitor at all?
Our monitoring system has to not only interrupt and alert us, it also has to be capable of some interventions on our behalf occasionally.
Sprinkle the stat-recording somewhere common to all the calls (metaprogrammy-inheritance-whatever) and it's not even like it's a ton of work.
So far, I've only seen beautiful but closed source SaaS apps, and pretty ugly open source PHP or Python projects. I'm very tempted to start my own, but I just wish someone like Panic would open source their awesome design.
# New Users Today # Returning Users % Conversion Rate in Last 24 Hours % Open Rate on Last Email Campaign $ Dollars Raised Today
many moons ago * 20+ i had a summer jobb in a industrial consumer analog photo lab, in the entrence to the coffe machine / resting area there where hand-plotted charts updated daily on velocity of orders / our fulfillment with comparison to expected orders and also historical high and lows . this made the workforce (40+) transparently se what shape we all where in with regards to business ...
1) Munin. There are hundreds of munin plugins around for monitoring every part of your infrastructure from CPU to MongoDB replication lag to number of Nginx 404s. Use Munin2Graphite bridge.
2) App. There are lots of statsd clients which allow you to measure all your business metrics. Signups. Retention rate. Revenue rates etc.
3) Front End. With the NginxStatsd module you can push stats directly into statds from your Javascript methods. Use it to do end to end timing, capture what the user is doing etc without putting any load on your app.
Sure it's a bit of work but done well it can save you a lot of money over products like MixPanel or NewRelic.