This repository contains a collection of applications instrumented with OpenTelemetry. The goal is to provide examples of how to use OpenTelemetry in different programming languages and frameworks.
The applications are instrumented with OpenTelemetry SDKs and are configured to send telemetry data to a OpenTelemetry Collector.
The OpenTelemetry Collector is configured to send the telemetry data to:
- Jaeger and Tempo backend for tracing
- Prometheus for metrics
- Loki for logs
Grafana is used to visualize the telemetry data.
- docker directory contains docker-compose and service configuration files.
- leaning-otel-java directory contains a Java application instrumented with OpenTelemetry Spring Starter.
- LearningOtelDotnet directory contains a .NET application instrumented with OpenTelemetry .NET SDK.
- learning-otel-php directory contains a PHP + Laravel application instrumented with OpenTelemetry PHP SDK.
- learning-otel-typescript directory contains a Node + NestJS + TypeScript application instrumented with OpenTelemetry JavaScript SDK.
- OpenTelemetry - OpenTelemetry is a set of APIs, libraries, agents, and instrumentation to provide observability for applications.
- Jaeger - Jaeger is an open-source, end-to-end distributed tracing system.
- Tempo - Tempo is a high-scale, cost-effective, and easy-to-use distributed tracing backend.
- Prometheus - Prometheus is an open-source systems monitoring and alerting toolkit.
- Loki - Loki is a log aggregation system designed to work with Grafana.
- Grafana - Grafana is an open-source platform for monitoring and observability.