Stats collection using node.js with MongoDB capped collections.
Click on the stats link to see current client page load speeds. There are a few pages with random text that collect stats for other pages. Only overall page speed stats are displayed.
I used parts of the Etsy Statsd project for data collection.
I am using Steve Souders Episodes for tracking page load metrics.
I am using MongoDB Capped Collections store the metrics.
Other tools: Express.js Socket.io flot Node MongoDB
Voting is now closed.
technoweenie
charlesbeeler
therazorbladeThis would be much more useful as a library or as a generic service for collecting stats. I am not even sure I understand what you are measuring and which component is doing the measuring (the client or server). | |||
Doing the NKO solo is brave and/or crazy. I’m impressed by that alone. Unfortunately I couldn’t get any aspect of it to work, and I even read some code and tried multiple browsers. Maybe it is down right now? Utility-wise I like the ability to have this keeping track of how the site is performing without relying upon external metrics providers. Somebody mentioned embeddability, but I much prefer the idea of running “npm install metricspackage” for handling the monitoring of my servers. At least relying upon myself I’ve got nobody else to blame. Low marks in design and completion are pretty self-explanatory. | |||
Thanks for taking time to look, I’ve restarted the dead process so it should be working now. Since I was doing this solo I took most of my time to focus on the idea of getting a stats collection system going so the UI doesn’t look like much of anything. I only ended up being able to put a few hours into the contest so there are various problems for sure but I wanted to start something I could come back to.
The problem you hit is that the node.js collector process dies every night so you caught it dead. I believe the capped collections aren’t rolling like I thought they would so they fill up and then start producing errors. I plan on fixing it when the contest is over, I also had partial support for gathering SNMP stats that I’ll be adding as well.
:( Still down for me, looks like it dies pretty quickly! Try again? Blow away any database? I wanna see!
Restarted everything again. Could be I have a connection leak too I guess.
Hm: EPISODES.mark: firstbyte, 1314827479630 EPISODES.measure: backend, starttime, firstbyte Error: unexpected startNameOrTime in EPISODES.measure: starttime EPISODES.measure: backend, starttime, firstbyte Error: unexpected startNameOrTime in EPISODES.measure: starttime io is not defined [Break On This Error] var socket = io.connect(); index.js (line 4) EPISODES.mark: onload, undefined EPISODES.measure: frontend, firstbyte, onload EPISODES.measure: page load time, starttime, onload Error: unexpected startNameOrTime in EPISODES.measure: starttime EPISODES.mark: done, undefined EPISODES.measure: total load time, starttime, done Error: unexpected startNameOrTime in EPISODES.measure: starttime
Interesting. What browser are you using? I tested with everything except IE and didn’t have any problems on the client side.
Firefox 6 throws that error, but only if it is all blown up. It is working right now!
Yeah I can believe there are UI issues when things get wonky. Thanks for coming back and trying. I really spent the majority of the effort on the collector part. My plan is to hopefully make it a viable alternative to collecting SNMP data at some point.
Looks like node crashed on me for some reason. It should be back now.
jedschmidt+1 easy to grok, good use of #nodeko to explore a tech stack for a specific use case. -1: perhaps too specific, would have been better as an embeddable service measuring client page load times. | |||
csanz
The app does what is described by “MD” and you can see where it might go with more time. I like the potential for the utility of this app with more dev work on it and the KO app is a good “sample” of this. Design is basic but works for the purpose.