Settings

Theme

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

github.com

134 points by lebinh 12 years ago · 33 comments

Reader

babuskov 12 years ago

For those who didn't know about it, please check Apachetop:

https://github.com/JeremyJones/Apachetop

I use it for both Apache and Nginx.

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.

  • lebinhOP 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?

KevinBongart 12 years ago

Looks cool!

Installation instructions would be a nice plus

  • lebinhOP 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.

    • diziet 12 years ago

      Doesn't seem to like to read the logs :

      ./ngxtop.py -l /opt/nginx/logs/access.log ## just pretends like the log is not being written to

      For some reason the access log file is defaulted to logs/access.log too~

      • bndr 12 years ago

        There was a bug that was overwriting --access-log (-l) option. Should be fixed now in master

jmngomes 12 years ago

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

  • lebinhOP 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 :)

    • jmngomes 12 years ago

      Yes, an average serving time per resource request would definitely be nice :)

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?

  • lebinhOP 12 years ago

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

    • HeyImAlex 12 years ago

      Just a heads up, you're going to want to translate your readme to rst if you want it to render right on pypi.

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?

    • jamra 12 years ago

      Well, if you're announcing a project that monitors a performance critical part of your infrastructure, it seems fairly appropriate to performance test your product.

  • lebinhOP 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.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection