Open atrauzzi opened 7 years ago
We have been having a discussion around HAPI support here - https://github.com/Glimpse/Home/issues/95. As of release of 0.20.9, we should be working with Hapi now... the only thing that you won't get is middleware insights. Its possible that we can light middleware but we are trying to understand more about what Hapi users would find really useful. Do you have any thoughts of what would be most valuable?
Ah yes, so it does appear to be working, I was making the mistake of not initializing glimpse before my first hapi import. That's one item that I might suggest be improved if possible, I'll open a separate ticket for it.
Specific to hapi though, I'll spend some time with things although I suspect if you run down the feature list of what hapi as a framework offers, there may be more worth surfacing.
As a follow-on, I'll edit my opening comment for this ticket with a list of things I come up with as I encounter them.
Super excited to see Glimpse show love to the node.js
community. I can see Glimpse being a super-useful tool during development just like it is in ASP.net. Thank you to the Glimpse team.
server-methods
(and the hapi.js
plugins that registered them) executed when request is made to hapi.js
server.expose
, routes registered, and handlers registered by plugin.hapi.js
server when request sent to a route.This is great! Thanks @kizzlebot @atrauzzi
I'm really dying to see full hapi.js
support w/ @glimpse/glimpse
. I think hapi.js
's configuration-based approach along with it's plugin-registration system would allow glimpse
to display a serious amount of useful information if glimpse
can instrument the methods defined on the hapi.js
server instance.
I don't know how glimpse
works w/ exactly but perhaps the following information can help with progress? Sorry if I seem arrogant, inconsiderate, or impatient regarding this issue. I just see a lot of potential using glimpse
w/ hapi.js
versus express.js
, mostly because hapi.js
has a lot more metadata to work with than express.js
.
server-methods
calls added by plugins
server.method({name: String, method: Function, options: Object})
server.expose
, routes registered, and handlers registered by plugin.
hapi.js
plugin exports an object with
// pkgName.js hapi.js plugin const internals = module.exports = {}; internals.register = (server, options, next) => { ... } internals.register.attributes = { name: 'pkgName', version: '0.0.1', dependencies: ['blipp'] }
// Plugins are "registered" w/ server instance via server.register({ register: require('pkgName'), options: { ... } })
- [ ] Show log data emitted by "logging-events" of `hapi.js` server when request sent to a route.
- `hapi.js` server instance has a `server.on(evtName, callback)` that can add listeners for logging events
I don't know how Glimpse does tracing but just general info about mysql, redis, ... query timing with query info would be very useful. I guess if you do some patching you could do plugin initialization timings as well. Just in general whatever you expose of express, expose the same thing from hapi. Not sure if there is a list somewhere, I could help map the express stuff to hapi if you want. And ofc the things stated above are 👌
Hapi is fairly popular and has really good mindshare. Would be a shame to not be able to use this with it!