apparatus / fuge

The microservice shell
http://fuge.io
MIT License
432 stars 49 forks source link

postmortem capabilities (autopsy and nodux integration) #17

Open davidmarkclements opened 8 years ago

davidmarkclements commented 8 years ago

http://npmjs.com/autopsy http://npmjs.com/nodux

Nodux can be used to generate linux core files on an OS X machine

Postmortem debugging is an interesting scenario, because it can involve the entire tool chain (fuge -> oast -> substrate -> fuge) - e.g. we develop in fuge, build with oast, deploy with substrate, a process crashes, we get a core file, and we use fuge to inspect it via autopsy.

So, I see four integration pieces:

1) integrate autopsy with fuge: postmortem <service that died> 2) some sort of deployment environment tunnel from fuge: postmortem <currently deployed remote service that died> 3) generate core files with fuge: <service> abort, <service> abort-on-crash - this is where nodux comes in for OS X, when these commands are run, it may ask Restart service in Linux container (Y/n)? 4) enable core file dumps (by default) with substrate

davidmarkclements commented 8 years ago

should this be in core or as an extension?

mcdonnelldean commented 8 years ago

Love the idea, does it need to be in fuge at all? I could see a full blown toolkit in it's own right here. Especially around having it run analysis and diagnostics as part of the post portem. Who says it shpuld only be when it crashes. I'd love to postmortem in the context of speed improvements and perf hotspots

davidmarkclements commented 8 years ago

@mcdonnelldean funny you should say that - as @mcollina and myself will be running a workshop where we'll be covering exactly that the day after Nodeday in Amsterdam on the 11th of Feb

:)

whatever we do here - it needs to have a level of compatibility/integration with the fuge workflow. needs more thought

mcdonnelldean commented 8 years ago

@davidmarkclements I think a nice tie in would be, "Should fuge have a plugin system"

lucamaraschi commented 8 years ago

@mcdonnelldean I think it's even more valuable when we enter the field of predictive analysis...we could collect enough data to process and predict if some code might end up in a crash of the app. Post-mortem is always, like you described, a side effect of some malfunctioning while we should think in how to make it more proactive process. Does it make sense to you guys?

@davidmarkclements The challenge is how to use these tools in the complete lifecycle of the application's development, form bootstrapping to running it a scale in production.