Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dgroomes/open-telemetry-playground

📚 Learning and exploring OpenTelemetry via the official Java agent and an Influx stack
https://github.com/dgroomes/open-telemetry-playground

open-telemetry open-telemetry-java

Last synced: 15 days ago
JSON representation

📚 Learning and exploring OpenTelemetry via the official Java agent and an Influx stack

Awesome Lists containing this project

README

        

# open-telemetry-playground

📚 Learning and exploring OpenTelemetry via the official Java libraries.

> High-quality, ubiquitous, and portable telemetry to enable effective observability
>
> -- https://opentelemetry.io/

## Overview

**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.

## Standalone subprojects

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:

### `agent/`

An example program-under-observation instrumented with the OpenTelemetry Java agent.

See the README in [agent/](agent/).

### `manual-instrumentation/`

An example program-under-observation instrumented with OpenTelemetry using *manual instrumentation*.

See the README in [manual-instrumentation/](manual-instrumentation/).

## Wish List

General clean-ups, TODOs and things I wish to implement for this project:

* [x] DONE Extract the original project into an `agent` subproject.
* [x] DONE Create a `manual-instrumentation` subproject. This will contrast with the `agent` subproject. Particularly, I want
a more explicit set of transitive dependencies. I want to use OpenTelemetry's [`JdkHttpSender`](https://github.com/open-telemetry/opentelemetry-java/blob/f1deb8ec78cd446bc6310b1528a5d71e1d42989e/exporters/sender/jdk/src/main/java/io/opentelemetry/exporter/sender/jdk/internal/JdkHttpSender.java)
instead of the OkHttp one because I want to bring in fewer dependencies like OkHttp (which itself brings in Kotlin).
* [x] 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.
* [x] DONE Straighten out the versioning and dependencies between the OpenTelemetry Java SDK vs the OpenTelemetry Java Instrumentation.