Modern telemetry libraries allow easily configuring auto instrumentation, to automatically gather observability data about frameworks and libraries. There are two main approaches to architecting those auto-instrumentation libraries. As middlewares/wrappers, or as monkey-patches. I believe middlewares are much better, here’s why.