10 ms·
Show HN: Real-time server monitoring in your browser
- flexd 13y agoI like it, but why not use something like htop? [1] Perhaps it's not entirely comparable, but you do not need to open any extra ports or run any extra processes. It looks really nice though! [1] https://en.wikipedia.org/wiki/Htop https://en.wikipedia.org/wiki/Htop
- acl 13y agoI love htop too, but the great thing about scout_realtime is the couple minutes of context provided the charts. Sometimes, nothing beats seeing a chart to quickly see what's going on.
- flexd 13y agoThat is true, charts are nice. I actually mostly use glances [1]. I forgot to mention glances in my comment. [1] https://pypi.python.org/pypi/Glances https://pypi.python.org/pypi/Glances
- artursapek 13y agoI've found MenuMeters really useful (only available on Mac though) http://www.ragingmenace.com/software/menumeters/index.html http://www.ragingmenace.com/software/menumeters/index.html It's always instantly clear when something like iTunes or a Chrome helper starts eating up 105% CPU, and provides quick access to force quitting it. :) Screenshot: http://i.imgur.com/sEtkR9p.png http://i.imgur.com/sEtkR9p.png
- k0 13y agoflexd, Htop or conky? http://conky.sourceforge.net/ http://conky.sourceforge.net/ acl...nice job. Your site looks nice and works nice.
- flexd 13y agoI've never actually used conky. I'd never see it, I rarely notice my wallpaper because I never see my desktop.
- qq66 13y agoNice. The play/pause should be one button that changes icon -- the current setup is a little confusing.
- wingerlang 13y agoI'd just like to add that I fully agree. It's a confusing setup as it is now.
- acl 13y agoah - thanks for the feedback, makes sense.
- dmdavis 13y agoI will add that if you keep it as two buttons, the colors should be switched. Right now, the active button is black and the other is gray. But gray buttons say to me that they are disabled, so it looks like I can only hit the play button when it's already playing.
- ireflect 13y agoThis was my interpretation too. Had to click it a few times to figure out what was going on.
- steve02 13y agoNice, but it requires ruby :S I been using this https://github.com/abimaelmartell/system_monitor https://github.com/abimaelmartell/system_monitor, easy to install and dont eat too much ram :P
- abimaelmartell 13y ago[2014-03-10 15:04:45] ERROR TypeError: nil can't be coerced into Fixnum server_metrics-1.2.0/lib/server_metrics/collectors/memory.rb:81:in `+' Getting this error under OSX
- ceejayoz 13y agoHere as well, running with Ruby 2.0.0.
- itsderek23 13y agoSorry - mind sharing the output of "top -l1 -n0 -u"? Looks like an issue parsing out the memory stats on OSX.
- anfedorov 13y agoError: [2014-03-10 15:38:12] ERROR TypeError: nil can't be coerced into Fixnum /usr/local/Cellar/ruby/2.1.1/lib/ruby/gems/2.1.0/gems/server_metrics-1.2.0/lib/server_metrics/collectors/memory.rb:81:in `+' Here's the output: [~] top -l1 -n0 -u Processes: 268 total, 3 running, 5 stuck, 260 sleeping, 2070 threads 2014/03/10 15:36:26 Load Avg: 1.92, 2.05, 2.08 CPU usage: 4.46% user, 12.50% sys, 83.3% idle SharedLibs: 60M resident, 0B data, 4156K linkedit. MemRegions: 73352 total, 3529M resident, 83M private, 892M shared. PhysMem: 6726M used (1812M wired), 199M unused. VM: 570G vsize, 1312M framework vsize, 1570984(0) swapins, 1861805(0) swapouts. Networks: packets: 2441317/1583M in, 1428870/324M out. Disks: 3446592/122G read, 1578215/101G written.
- itsderek23 13y agoThanks - I can reproduce with that output. Opened an issue on github - we'll fix: https://github.com/scoutapp/server_metrics/issues/9 https://github.com/scoutapp/server_metrics/issues/9
- itsderek23 13y ago
- wahnfrieden 13y agoSorry to be the one posting a tangent (looks like a nice tool!), but please rewrite "for the modern man" to something more gender neutral.
- tg3 13y agoI agree with this. I know "for the modern man" is an idiom, but I think it's better to be overly conscious about this stuff. Would you lose anything by saying "for the modern dev"?
- theknown99 13y agoPolitical correctness is such a depressing drain on the world. Leave it how it is. It's fine. Reminds me of when they tried to rename Manholes to "Personnel Access Units" to avoid offending women. If you're offended that something is named a 'manhole', you probably have too much time on your hands.
- dovel 13y agoWhat if a website with nursing resources was subtitled "...for the caring woman"?
- kibibu 13y agoLet me guess, you're a man?
- emonk59 13y agoI'm assuming you're going to disregard their comment because of their gender? What does it matter what gender the parent comment poster is? They should have a voice too...
- kibibu 13y agoActually, yes, I do tend to disregard claims that "everything is fine" from those who are not being aggrieved.
- atmosx 13y agoCan you guys add a if/else clause in sinatra and add a FreeBSD logo?[1] I see tux in my FreeBSD server and feels weird. [1] https://github.com/scoutapp/scout_realtime/blob/master/lib/scout_realtime/web/images/linux.png https://github.com/scoutapp/scout_realtime/blob/master/lib/s... ps. My photo-editing skills suck bigtime otherwise I'd do it. EDIT: Doesn't seem to work properly under FreeBSD-10. No data is displayed. Apparently (as expected) uses Linux ProcFS structure to get data. So FreeBSD for now is not supported, keep the icon for later :-)
- stock_toaster 13y agoI wonder if it can use the linproc compat stuff like htop does on FreeBSD.
- itsderek23 13y agoSorry - no FreeBSD support yet.
- jahaja 13y agoI've recently released a similar tool for Python. Definitely not as pretty but with a focus on providing a lot of details: https://github.com/Jahaja/psdash https://github.com/Jahaja/psdash The more the merrier! :)
- nodesocket 13y agoFor all my fellow CentOS/RHEL users here is a quick bash script for getting it running (assumes you don't have ruby 1.9 installed). # Install RVM and Ruby 1.9.3 curl -sSL https://get.rvm.io | bash -s stable source /etc/profile.d/rvm.sh rvm install 1.9.3 # Install JSON gem gem install json # Install Scout realtime gem install scout_realtime # Start Scout realtime scout_realtime # Punch a hole in iptables on port 5555 for Scout realtime iptables -A INPUT -p tcp --dport 5555 -j ACCEPT service iptables save service iptables restart
- stock_toaster 13y agoLooks nice, but it slowly turns my laptop into a fireball and pegs an entire core (older laptop).
- itsderek23 13y agoSorry. Just FYI, we've clocked the CPU usage of the scout_realtime daemon at 1% on an Intel Xeon 2.40GHz CPU.
- ibejoeb 13y agoI think we're talking about the browser side of things. I haven't investigated why, but it pegs the cpu on my macbook pro in Chrome, Safari, and Firefox. It seems pretty light on the server side.
- itsderek23 13y agoAh thanks - I haven't seen this yet my laptop. We'll keep an eye on it.
- hartator 13y agoAnyone with a link to a live demo?
- ehPReth 13y agohttp://scoutapp.com:5555/ http://scoutapp.com:5555/
- jakejake 13y agoThey said they use it on their own production servers so of course I couldn't resist... http://scoutapp.com:5555/ http://scoutapp.com:5555/ Really nice looking monitoring, though. I think it's fun to see the stats scrolling by.
- acl 13y agoHa yeah - we opened up a port in iptables for this so we don't have to ssh tunnel in to see stats. Obviously, if you're concerned about exposing numbers, you can view via an ssh tunnel instead of opening a port.
- cmbaus 13y agoI see you are using SVG to render the charts. What are your thoughts on SVG vs Canvas for these types of apps?
- angersock 13y agoNot these guys, but doing realtime viz of signals. We've switched over to a minimalist canvas renderer--if you don't need interactivity or styling, and instead just "draw me as much as you can as fast as you can, damnit.", we hope it's the way to go.
- cmbaus 13y agoI've been playing around (http://yield.io http://yield.io) with Flot, which uses canvas and rendering speed seems pretty good, but resizing gets a bit wonky when there are multiple canvas elements on a page.
- angersock 13y agoYeah, we started with Flotr2...too many graphs on a page (with thousands of datapoints per graph) brings Chrome to its knees, even with auto margins and whatnot turned off. EDIT: Very clean site! I like your style. :)
- benjamincburns 13y agoDid you roll your own SVG chart lib for this? If not, mind sharing which one you're using? It's very nice. If you were to make it so I can open a socket or websocket to it (perhaps on a second, internal port) and publish whatever data I want, that'd be all kinds of nifty. That is, make it so I can just start spraying numbers at ws://myhost:5556/Really%20Awesome%20Data and with that a nice auto-scaled chart magically appears in the dashboard. Edit: Oh, I see a github ribbon. Maybe you'll see a pull request sometime soon... Edit 2: Anyone wondering about my original question - the charts are built using the D3 project. http://d3js.org/ http://d3js.org/
- gvickers 13y agoI've been searching for something like that for a while now. A metrics web framework that consumes and renders json/edn would be interesting.
- Gigablah 13y agoI've been using shopify/dashing for metrics display: http://shopify.github.io/dashing/ http://shopify.github.io/dashing/ You can post JSON directly to each widget. It's also based on Sinatra. Someone already created a widget for Rickshaw graphs, I suppose it could be adapted to use D3.js.
- itsderek23 13y agoOur source for the charts is here: https://github.com/scoutapp/scout_realtime/blob/master/lib/scout_realtime/web/javascripts/d3.linechart.js https://github.com/scoutapp/scout_realtime/blob/master/lib/s... It's not yet in a state for plug-and-play usage in other projects. If you're looking to rollout smooth-scrolling charts quickly, checkout http://smoothiecharts.org/ http://smoothiecharts.org/.
- vpanyam 13y agoI just built this yesterday: http://blog.vivekpanyam.com/plotter-plot-anything/ http://blog.vivekpanyam.com/plotter-plot-anything/. Inspired by Tasseo and Scout Realtime
- garthk 13y agoI'm glad to see the sparklines. I'm worried that the CPU sparklines in particular are likely to mislead due to the lack of a common vertical axis scale. I suspect Tufte might advise two graphs: one with a fixed 0…100 axis scale, one "zoomed". The former would help you compare CPU history between apps, and sport a shaded background region to indicate the range of the latter.
- itsderek23 13y agoGood points. Thanks!
- jonahx 13y agoDoes this solve the same problem that new relic does? If not, what is the difference?
- keimoon 13y agoIt is burning my CPU (browser side, not server side) http://i.imgur.com/NgXi4LG.png http://i.imgur.com/NgXi4LG.png The author should provide configuration so it does not get data from stats.json every second.
- lcfg 13y agoCool idea! The interface is a tad heavy (for me) though, the fans of my laptop spun up. I noticed that by looking at the memory usage of the ssh daemon, one can determine how many people are connected with ssh. Every open connection (even if you're just idling at the login phase) adds around three to five mb to memory use. I wonder what other information might be unintentionally relayed through these metrics.
- sdesol 13y agoThis is cool. It looks like the developers are reading the comments so I'll add a quick suggestion. Something that I found to be insanely helpful with my own product development was being able to track memory swapping. I went to great lengths to tune my Java Virtual Machines so that they would work well in a minimum RAM environment. And being able to track swapping was critical for my decision making. Now I can run my product on a 512MB system with 1GB of swap space with no problem. Below is how I'm tracking swapping in real-time. http://screenshots.gitsense.com/track-swapping.html http://screenshots.gitsense.com/track-swapping.html Since your solution is focused on capturing a period of time, you'll be able to provide a better view than I am. With SSD becoming more common for cloud hosting, using swap space in lieu of getting more RAM will probably become more common. And before anybody points out that SSD is still significantly slower than RAM, I know. Depending on your product, using swap on SSD may be practical. I know using swap on amazon's infrastructure wasn't.
- itsderek23 13y agoPart of the scout_realtime team here...swap is important. Displaying it the future is possible. In fact, fire up the console on the project homepage and type "metrics.memory". We're capturing it, just not displaying it yet on the screen.
- sdesol 13y ago"We're capturing it," This is good to hear. Not sure what would be the best way to display that information though.
- hnriot 13y agokills the cpu on my mac with Chrome Version 34.0.1847.11 beta
- mrcozz 13y agoI'm working on a similar project, called dtop, check it out at https://github.com/ddierickx/dtop https://github.com/ddierickx/dtop!
- ireflect 13y agoThis is wonderful: No runtime required, minimal footprint, and almost no overhead when UI is idle.
- tijs 13y agoI just tried out the main product and while it's easy to setup i ran into snags with the plugins right away. Both redis and postgres (the first two i tried) failed to install and it took a bit of searching to figure out they had their own dependencies. When trying to install those dependencies i ran into issues with compatibility for a fresh ruby install. Maybe you should concentrate on fixing your own dependency issues before you start pounding on Nagios (https://scoutapp.com/info/nagios_alternative https://scoutapp.com/info/nagios_alternative) about the exact same issue.
- 72deluxe 13y agoLooks good. If you want to monitor network throughput on the CLI, use nload. It's great.
- rootuid 13y agoLooks bloody nice, got it up and running http://www.coldfusion10.com/installing-scout-realtime-on-centos-6-4-64bit/ http://www.coldfusion10.com/installing-scout-realtime-on-cen...
- Therac20 13y agoAny way of enforcing HTTPS and login/password auth? I would love to be able to use this on a set of public servers...
- davidradcliffe 13y agoA simple proxy through nginx should do the trick.
- wazoox 13y agoThe web page makes firefox gobbles more and more RAM until it crashes. You've found a firefox bug :) (FF 27.1 Linux).
- k3oni 13y agoThis looks nice but that /s refresh it might cause issues, maybe add a setting so refresh can be set by user? Shameless plug - If anyone is looking for a python/django alternative with refresh settings and remote access to the output data as json take a look at pyDash : https://github.com/k3oni/pydash https://github.com/k3oni/pydash . Posted about it a while ago https://news.ycombinator.com/item?id=7224710 https://news.ycombinator.com/item?id=7224710 .
- primo44 13y agoAnd I should add that this thing is awesome! It wouldn't install for me unless I was root, but that might be a ruby configuration thing, since this is also the first ruby app that I've ever touched. It would be nice to have an option to have scout_realtime only listen on 127.0.0.1, so (as someone else already mentioned) we could just proxy to it with another web server and then wrap controls around that. With my 10 minutes of poking around in the scout_realtime source and a bit of googling, I think the option would go here, in main.rb: server = WEBrick::HTTPServer.new(:Port => 5555, :AccessLog => [])
- primo44 13y agoRegarding "What operating systems are supported?" and the answer of "scout_realtime relies heavily on the proc file system to fetch metrics. procfs is supported on most Linux-based distributions with the exception of OSX and Debian." procfs is available on my Debian 7 servers, so scout_realtime just installed and runs fine on the few that I've tried it on.
- wazoox 13y agoAnd OS X is hardly a "linux distribution" :)
- telot 13y agoNoob to Ruby here...any thoughts on why gem_original_require is screwing me up? Thanks for the cool looking tool! /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require': no such file to load -- json (LoadError) from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `require' from /var/lib/gems/1.8/gems/scout_realtime-1.0.1/lib/scout_realtime.rb:23 from /var/lib/gems/1.8/gems/scout_realtime-1.0.1/bin/scout_realtime:4:in `load' from /var/lib/gems/1.8/gems/scout_realtime-1.0.1/bin/scout_realtime:4 from /usr/local/bin/scout_realtime:19:in `load' from /usr/local/bin/scout_realtime:19
- _kushagra 13y ago$ gem install json $ scout_realtime You're welcome.
- executive 13y agohow to view multiple servers on one screen?