observability

o11y, monitoring, logging, tracing, alerting and higher level discussions
2021-06-09T09:04:46.003Z

ken looks awesome! I really like the API and the docs. Thanks for sharing ๐Ÿ™‚ I was looking at https://github.com/conormcd/clj-honeycomb and https://github.com/tendant/clj-telemetry. But having a generic solution with ken is much nicer! Building an integration with OpenTelemetry wouldn't be too much effort either if someone likes to use that as backend. Looking forward to giving ken a try for some project soon!

greglook 2021-06-09T16:10:41.003300Z

Awesome - yeah, we wanted something decoupled from specific sinks, because we also pipe ken events other places, for example our structured JSON logs. Plus, when doing local development itโ€™s super useful to subscribe a pretty-printer and get a dump into your console, or a simple local file appender for later investigation.

nivekuil 2021-06-09T16:15:55.003500Z

have you seen mulog? looks similar to ken at a glance

greglook 2021-06-09T16:27:00.003700Z

Yeah, it was announced a bit after weโ€™d built and started using ken internally - definitely a lot of similar ideas

James Carr 2021-06-09T20:23:26.004Z

Really cool. Like @hi895 mentioned, otel integration would be ๐Ÿ‘‘

James Carr 2021-06-09T20:24:13.004800Z

Speaking of that, curious about how people add tracing to pedestal's middleware

James Carr 2021-06-09T20:25:27.005800Z

right now, exceptions caught in pedestal don't get displayed for us in APM. I suspect it is because we need the equivalent of

try {
    runSomething();
} catch (Exception e) {
    Otel.captureException(e);
}

James Carr 2021-06-09T20:25:57.006200Z

wherever pedestal catches exceptions.

emccue 2021-06-09T22:10:49.006600Z

@james.r.carr you want to add an interceptor to your interceptor chain

1
emccue 2021-06-09T22:10:56.006900Z

that does nothing on enter

emccue 2021-06-09T22:11:01.007100Z

but on exit looks for an :error

emccue 2021-06-09T22:11:26.007600Z

thrown exceptions aren't propagated directly to other interceptors , so that is your way to do