clj-otel

steffan 2023-04-10T14:14:20.971759Z

📣 I am very pleased to announce clj-otel release 0.2.0. 📈 This milestone release adds Metric API support to complement the existing support for the Traces API. Full details of changes can be seen in the https://cljdoc.org/d/com.github.steffan-westcott/clj-otel-api/0.2.0/doc/changelog. ⚠️ For those of you upgrading from a previous version of clj-otel, please note there are a number of breaking changes, marked [BREAK] in the changelog. The most notable changes affect the middleware/interceptors and how they are applied. The documentation https://cljdoc.org/d/com.github.steffan-westcott/clj-otel-api/0.2.0/doc/guides#_work_with_http_client_and_server_spans and https://cljdoc.org/d/com.github.steffan-westcott/clj-otel-api/0.2.0/doc/examples have been updated accordingly. Please read the changelog, guides and examples carefully before upgrading clj-otel. https://github.com/steffan-westcott/clj-otel

❤️ 5
Ítallo Rian 2023-04-10T14:54:58.388829Z

Awesome update! Your contribution to the community is impeccable.

💯 1
🙇🏼‍♂️ 1
steffan 2023-04-10T14:26:49.445999Z

clj-otel 0.2.0 introduces wrap-route , a new Ring middleware that adds route data to the HTTP server spans of requests that match a route. This is designed to work with routers that inject route data into the request map, such as Reitit.

❤️ 4
Ítallo Rian 2023-04-10T14:56:58.171289Z

@steffan, I was venturing into the lib and would like to know if it is possible, following the latest updates, to get a full traceback of the information...

steffan 2023-04-10T16:21:41.710899Z

I am unsure what you mean by "full traceback of the information". Are you referring to stack traces? What information are you referring to?

Ítallo Rian 2023-04-10T16:26:15.717029Z

it would be to have the most detailed traces, in the same stack trace style, but not just for errors, but for all requests. I'll send a print of an example of how it is

Ítallo Rian 2023-04-10T16:26:36.503199Z

Ítallo Rian 2023-04-10T16:29:36.973729Z

like a dumpstack of the entire transaction

steffan 2023-04-10T16:41:33.095219Z

If you want information on every function evaluated during program execution, you should consider using a tool that offers (continuous) profiling or function-level instrumentation. Application profiling is working at a lower level than observability, generally speaking. A very good tool for instrumenting Clojure applications is https://github.com/jpmonettas/flow-storm-debugger.

steffan 2023-04-10T17:14:06.605569Z

More general Java application profilers are https://www.yourkit.com/, https://www.ej-technologies.com/products/jprofiler/overview.html and https://visualvm.github.io/. Some telemetry backends also have continuous profiling of Java applications e.g. https://www.datadoghq.com/dg/apm/profiler/java-continuous-profiler

Ítallo Rian 2023-04-10T17:39:01.697109Z

ok ok, I'll take a look at these items... it's just that I wanted to do this all integrated with opentelemetry, just like your lib

adamfeldman 2023-04-11T17:26:49.908229Z

It looks like OpenTelemetry is working on a proposal to add continuous profiling: https://github.com/open-telemetry/oteps/issues/139 2 other, OSS continuous profiling tools: https://grafana.com/blog/2023/03/15/pyroscope-grafana-phlare-join-for-oss-continuous-profiling

steffan 2023-04-11T18:51:27.779039Z

@adam622 Thank you for the links to continuous profiling initiatives 😄 If this makes its way into the OpenTelemetry standard, then I really hope vendors with existing JVM continuous profiling solutions move to support Otel with the same enthusiasm that they embraced the Traces API. Exciting times! 🔭

🙂 1