nsqadmin: refactoring - #323
Conversation
|
ping #322 |
|
really like the client side UI approach. will be exciting to see what people create on it. |
|
@mreiferson the "messages" count includes messages in-flight right? would you be interested in changing that to only messages that have been FIN'd? or maybe adding another |
|
@visionmedia there should be a separate counter for just |
|
edit: |
|
edit again: I'm crazy, there isn't... |
|
I suppose it is derivable as |
|
@visionmedia you starting to work on this? |
|
nope just debugging some prod stuff ATM |
|
Great idea, what about having the admin endpoints on nsqd itself? .. and that way the client-side admin could be just some static html/js files, in the index.html just specify a jsonp endpoint to an nsqlookupd and done. |
|
@pkieltyka that's a little more difficult, in short, because that means all of the daemons are exposed to the internet. Technically I think it still makes sense for |
|
That makes sense |
03d926a to
7255221
Compare
e500795 to
6e9af9f
Compare
|
Is there a timeline for getting this reviewed & landed in master? I'm looking into submitting a pull request for #347, and obviously there are a number of nsqadmin changes involved there. Is there something a new contributor could possibly help with here? (I noticed a Travis build failure on these commits, but haven't dug into it yet - don't want to step on any toes or duplicate efforts) |
|
Hi @allgeek - great to hear that you're interested in contributing, thanks! I just need to finish up here, so this is on me. I've been distracted the past few weeks 😁 If you want to dig into this PR via code review, by all means that would be helpful - this way we're on the same page with the direction I'm taking things. |
|
I just remembered - if you are interested in helping out with this PR, I could use some help with the client side changes referenced in the OP. |
|
I'll try to catch you in the IRC channel at some point, although I've got meetings most of the day. Is there a particular JS framework or approach you had wanted to take with the new admin client page? I see the current site just uses jQuery and Bootstrap... |
6e9af9f to
16ca70b
Compare
There was a problem hiding this comment.
seems like we could use a little helper for this dance we're doing here a thousand times?
There was a problem hiding this comment.
haha clearly i was just in brute force make-it-work mode. fixed
|
cool, LGTM - let's land this Want to try to squash 091eabc on? |
|
Close. two things i found in validation
|
|
I spoke too soon. A few more items:
|
I think it's now in local storage, should be easy to default it to |
I didn't translate the JS 1:1 here, it's just broken or? |
|
For the counter page, i'm getting Zero's back from the /api/counter endpoint, but also the graphite URLS have unexpected |
|
I think i fixed all the previously mentioned bugs (please take a look before i squash those); glyphicon fonts are not being embedded properly and i think that's the only outstanding thing left. |
Did you figure this out? |
Yes, it was broken handling of |
|
cool 🔨 |
|
@mreiferson font issues addressed; take a look at last two commits? |
|
@jehiah don't you think the console.log might be useful when people inevitably encounter bugs? |
|
also, do we need another HTTP route for the same handler? Is it because bootstrap expects them at that URL? |
|
yeah, bootstrap requests them as I have "no console.log in production" burned into my brain since it's not present in all browsers and thus causes JS errors (Thanks IE 9!) |
|
very well, squash time? |
|
😱 |
|
Has anyone started work on refactoring the UI for #443? We get i/o timeout errors when nsq is under heavy load. I'd like to get rid of this timeout, make it configurable or ? I have experience with doing ReactJS interfaces and this is kind of a perfect use-case for it. If nobody is already working this, I'll give it a go. |
|
we're just evaluating if NSQ can work/scale for us, so I'll gladly give an alpha a shot :) |
|
@mreiferson any idea when a new release will be cut? |
|
@klucar I've been lazy, we should get one out (I've been running it in production without issue for a few weeks) |

nsqadminis a Go web app, which has some tradeoffs. It's great because it's dead simple to deploy. It's terrible because it's a PITA writing Go based web apps.I think an ideal middle ground is:
nsqadminbecomes a JSON API with convenience endpoints to query the cluster and aggregate datansqadminUI is a client-side appSimultaneously, it could use a facelift, but this refactoring alone makes things much easier to extend and for others to contribute.
cc @visionmedia