๐ Learning and exploring OpenTelemetry via the official Java libraries.
High-quality, ubiquitous, and portable telemetry to enable effective observability
NOTE: This project was developed on macOS. It is designed for my own personal use.
OpenTelemetry has become a big deal in the observability space. It's an incubating project in the CNCF. It has a lot of integrations and adoption. This repository is me learning OpenTelemetry.
This repository illustrates different concepts, patterns and examples via standalone subprojects. Each subproject is completely independent of the others and do not depend on the root project. This standalone subproject constraint forces the subprojects to be complete and maximizes the reader's chances of successfully running, understanding, and re-using the code.
The subprojects include:
An example program-under-observation instrumented with the OpenTelemetry Java agent.
See the README in agent/.
An example program-under-observation instrumented with OpenTelemetry using manual instrumentation.
See the README in manual-instrumentation/.
General clean-ups, TODOs and things I wish to implement for this project:
- DONE Extract the original project into an
agent
subproject. - DONE Create a
manual-instrumentation
subproject. This will contrast with theagent
subproject. Particularly, I want a more explicit set of transitive dependencies. I want to use OpenTelemetry'sJdkHttpSender
instead of the OkHttp one because I want to bring in fewer dependencies like OkHttp (which itself brings in Kotlin). - DONE Upgrade to OpenTelemetry Java Instrumentation 2.x
- Can we use Influx 2.x? I know I had trouble with it before, but it should have a 1.x compatible API. Note that Influx 3.x is the new thing, but it is considered beta, so I won't use it yet. Does Influx 2.x support ILP via HTTP and does it support Influx query language? I really can't remember why it wouldn't work for me, and the 1.x literally hasn't been updated since 2021, so I want to be done with it.
- DONE Straighten out the versioning and dependencies between the OpenTelemetry Java SDK vs the OpenTelemetry Java Instrumentation.