Hello and welcome to the OpenTelemetry Workshop! Here you will learn how to:
- Automatically instrumenting an application written in Java, Python, Node, or Go.
- Send span data to an APM tool like Jaeger.
- Processing data including CRUD metadata operations via the OpenTelemetry Collector.
- Collecting host metrics and sending the data to a metrics tool like Prometheus.
- Ensure your telemetry data adheres to open-standards and remains vendor-agnostic.
- Docker with
docker-compose
Optionally, it would be good to review OpenTelemetry concepts.
cd docker
docker-compose up --build
- Java is listening outside docker on
8080
. - Python is listening outside docker on
5000
. - Node is listening outside docker on
3000
. - Go is listening outside docker on
7070
.
Exercise the API:
curl -i localhost:3000/hello
curl -i localhost:8080/hello/proxy/python/node/java
Other included components:
- Once instrumented with OpenTelemetry, view traces in Jaeger: http://localhost:16686.
- An OpenTelemetry Collector is available and can receive data via:
- Jaeger inside docker on
14250
and14268
- OTLP inside docker on
4317
and4318
- Zipkin inside/outside docker on
9411
- Jaeger inside docker on
- A Prometheus server which receives OpenTelemetry Collector metrics is available at http://localhost:9090.
- Lab 101: Instrument an application. Complete one or more of the following:
- Lab 102: Reconfigure applications to leverage the OpenTelemetry Collector. Complete one or more of the following:
- Lab 103: Change context propagation format. Complete one (only one) of the following (requires you to instrument at least two applications):
- Lab 201: Processing trace data with the OpenTelemetry Collector
- Lab 202: Collecting and processing metric data with the OpenTelemetry Collector
- Lab 203: Collecting and processing log data with the OpenTelemetry Collector