Cubism.js: time series visualization
square.github.com
square.github.com
Part of the Cube 0.2.0 release: https://github.com/square/cube/wiki/Release-Notes http://square.github.com/cube/
If someone would suggest a reliable, free source of realtime data that won't fall under peak load from HN, I'd be happy to replace the random walk data source with something more realistic. (For example, stock data, wind measurements, etc.) I added a sine to the random walk to make it a bit more interesting, but these visualizations are much more compelling with real data.
Getting a stream off Twitter for words like "square", "visualization", "data", "d3", "javascript" wouldn't be too hard and falls over pretty rarely.
I don't know if it would fall under peak load, though.
Sorry for the self-promotion. I can't seem to stop talking about this.
Has anyone used this in production? How does it compare with other data warehousing projects? Are there any prominent alternatives?
I don't think it's meant to be used as a full-on data warehouse. The closest thing people usually compare it to is Graphite.
The full screen demo is really what triggered the question for me. I've got a bunch of servers that we monitor and have found that a single graph that shows load for every server gives me a better indicator for those that are outliers. Perhaps you're just not using this for that purpose.
Would love to hear some of the use cases, are you doing all of your graphing with this?
Line graphs work well when you only have a few hosts, but start to suffer when you try to plot many hosts simultaneously. Depending on how noisy your metrics are, line graphs are good for showing the envelope, but are less effective at revealing when one or two hosts are behaving oddly; the anomalies get lost in the mess of lines. (It doesn't help that the default colors in Graphite are bad; the host that happens to be assigned bright yellow against a white background becomes much harder to see.)
Small multiples give each host a dedicated row, so you don't have to worry about occlusion or distraction. However, that requires more vertical space, which is why you need horizon graphs or a similar technique to compress them. Scrolling with a vertical rule also helps detect coincident anomalies across metrics.
Regarding line graphs, there is some visibility loss by having a a single line graph show a ton of servers. I tend to think that deviations that are worth noting tend to stick out. That isn't always going to be the case I suppose, but nothing is 100%.
I'm just not sure how this scales if I've got 100 servers with 2-3 metrics each that I'm tracking. Perhaps this is better for more of a detailed view than a dashboard where where more density is needed. They're certainly more readable then what we use today.
Edit: Not really the purpose I know but it was just something that struck me as a possible use case.
TypeError: '[object HTMLDivElement]' is not a function (evaluating 'callback.apply(this, (arguments[0] = this, arguments))')Analytics visualizations are great when they're pretty, but if they aren't comprehensible, you've failed. In the vast (>1) user testing I've done with horizon graphs, it just isn't grokkable.
People in general don't want to look stupid, so they aren't going to volunteer a "hey, what the heck am I looking at here?" They'll just assume they aren't smart enough to get it and be quiet.
- you do not confuse it with something else when you 1st see it.
- one glance at the image from the link I posted and you instantly knows how it works!