top | item 7442925

Show HN: Real-time, top-like metrics for Nginx

134 points| lebinh | 12 years ago |github.com

33 comments

order

yeukhon|12 years ago

Side question: I saw a project similar to this, but display top in your terminal/browser with a beautiful visual dashboard. I remember seeing it here on HN recently but I can't find it. I mention that because it has a non-ascii visual component. I am interested in looking at the two source codes and see if I could make pretty dashboard out of it...

EDIT:

Thanks for finding the, HNers. I also think it is possible to look at IPythoNoteBook integration.

kureikain|12 years ago

How about porting it to LUA and embed directly in nginx?

scrollaway|12 years ago

Very cool tool. It seems to be clearing the screen every time it runs though which isn't great, especially when it crashes that hides the backtrace. Consider using ncurses?

On a different note... developers, please use Python 3. Several Linux distributions are now using Py3 as their main python and those scripts with an "env python" hashbang will not work.

Porting your codebase to be python 2+3 compatible is dead simple, and most of the time it is just a matter of using print("foo") instead of print "foo". So please be considerate.

lebinh|12 years ago

Unfortunately most of the servers I'm working with are still on python2 by default. The latest Ubuntu LTS, 12.04, only has python2 by default so python2 is still my priority. But in this case, a port should be trivia so I'll look into python3 as soon as possible.

Yes, ncurses would be much better but I haven't had time for it yet. Clearing screen is simple enough and work pretty well for me so far so here we are :)

stefantalpalaru|12 years ago

> Several Linux distributions are now using Py3 as their main python

Only Arch Linux does it.

cheald|12 years ago

Nice. You can get similar for any HTTP interface via Varnish and Varnishtop, if you're interested, as well.

ProAm|12 years ago

Does it matter which version of python we use?

sc00ty|12 years ago

Seems like it was made with 2. Will not run on 3.

KevinBongart|12 years ago

Looks cool!

Installation instructions would be a nice plus

lebinh|12 years ago

Thanks, I'll definitely add that, maybe put this on pypi asap. For now you can clone the repo and then run

pip install -r requirements.txt

to install required dependencies.

jmngomes|12 years ago

This is nice, congrats! Would also like some performance metrics, or at least exec time per script

lebinh|12 years ago

If what you mean by exec time is request_time, i.e., serving time of a request, then it's pretty close on my agenda as long as you have it in your access log :)

dougcorrea|12 years ago

Very cool put it on pypi it will be useful with my blogs in aws

jedicoffee|12 years ago

I think this is a great idea. Very useful, thank you.

sebslomski|12 years ago

Cool! Why is this not on pypi?

lebinh|12 years ago

Thanks, I'll put it on pypi soon, just put it on github today

korzun|12 years ago

Am I the only one that bothered when tools like this do not give you some insight on resource consumption/limit?

Even if it's just parsing logs via sqlite, I still want to see the limitations and X per Y usage metrics to see if it can handle monitoring high traffic domain without impacting performance.

evilduck|12 years ago

You're seriously bothered about the robustness of a 2 hour old project?

lebinh|12 years ago

The performance impact really depend on your server and traffics. Currently with high traffic server it will take quite some amount of CPU if running for awhile, after 15-20 mins or so, but I'm working on reduce that. So now it mostly useful to know what's going on with your nginx at the moment but not over a long period.

clubhi|12 years ago

You aren't the only one. I often am bothered by the limitations of my own project. I rarely need outsiders to point out the major issues because I know of so many myself. Some people consider it a talent to blurt out obvious observations though.