
Begin your hands-on journey to observability with OpenTelemetry, exploring what it is, how it works, and practical production tips through a demo application.
Understand observability as inferring internal state from external output, using logs, metrics, and traces, and see how OpenTelemetry exports this telemetry to enable cloud native app insights.
Understand open telemetry, a CNCF project that is vendor agnostic, defines a data collection specification and language SDKs, and uses a collector to ingest and export observability data to backends.
Observe how OpenTelemetry uses metrics, logs, and traces to monitor cloud-native, distributed apps, with traces revealing end-to-end paths between components for faster incident resolution.
Explore a distributed trace in Yeager UI, reading the tree view for what happened and why, then use the timeline to see span durations and parent-child relationships for performance insights.
Meet the demo app with auth and to-do services built in Node.js using TypeScript and Express, backed by Redis orchestrated by Docker Compose. Prepare to implement OpenTelemetry in this repository.
Install OpenTelemetry in your demo app, initialize the SDK with a service name and OTLP exporter, run Jaeger locally via Docker, and enable instrumentation across services.
OpenTelemetry builds distributed traces across services by sharing trace IDs, span IDs, and parent IDs, with context automatically injected into http headers for cross‑process correlation and Jaeger visualization.
Learn to add metrics with OpenTelemetry by configuring the SDK and Prometheus exporter, expose a metrics endpoint, and instrument HTTP calls to capture latency, routes, and status.
Correlate logs with traces by capturing exceptions in the active span and enriching logs with trace id and span id, enabling jump from logs to traces in Jaeger with OpenTelemetry.
Create manual spans with the OpenTelemetry API to instrument custom logic, starting and ending a root span set default items with four Redis child spans.
Add custom attributes to spans in OpenTelemetry using tags, capture user IDs and other app-specific data, and verify traces via active spans and search in Jaeger.
Explore advanced configurations of the OpenTelemetry SDK to deepen observability in cloud native apps, building on the basic implementation covered earlier.
Configure the OpenTelemetry SDK by exploring instrumentations in the registry, selecting and enabling or disabling them, and tuning per-instrumentation settings to tailor spans and metrics.
Turn on OpenTelemetry logs to diagnose issues, using the OTEL_LOG_LEVEL environment variable to emit debug, warning, or error messages that reveal spans and traces in Jaeger.
Learn how to describe the environment and metadata for all spans using predefined and custom resources in OpenTelemetry, including cloud environment, region, pod id, deployment number, and team owner.
Learn how sampling traces in OpenTelemetry controls data volume and costs, with head sampling, downstream propagation, and parent-based versus trace-id ratio samplers.
Explore how opentelemetry propagates context via http headers, using W3C trace context and baggage to pass data like enterprise user plan across downstream services for distributed tracing.
Configure the OpenTelemetry SDK via environment variables to enable quick changes without redeploys, control debug levels and exporters, and tailor context propagation, resources, and samplers.
Explore how spans are created, processed, and exported in OpenTelemetry, and tune batch span processing for performance using defaults like max export batch size, queue size, and schedule delay.
Discover how the opentelemetry collector acts as a scalable backend that ingests, processes, and exports traces, metrics, and logs through customizable receivers, processors, and exporters.
Learn to integrate the OpenTelemetry collector with the SDK, sending traces and metrics to the collector, and have Prometheus scrape the collector while Jaeger receives traces.
Explore how opentelemetry collector processors sit between receive and export, enabling batch processing, memory limiting, and resource enrichment of traces and metrics.
Use the tail sampling processor to keep high-latency or error traces with a 10-second decision window and http status code 500 policy; consider a load balancer exporter for consistent routing.
Debug the collector by using two logging options: service telemetry logs with adjustable verbosity and exporter logging to diagnose issues with traces, spans, the SDK, the receiver, and data flow.
Choose between running your own OpenTelemetry collector or sending data to a vendor, enabling flexible routing of logs, traces, and metrics.
Welcome to "Observability in Cloud Native Apps using OpenTelemetry"! In this comprehensive course, designed specifically for software engineers, DevOps, and SREs, you will embark on a journey to master the art of observability in modern cloud-native applications using industry-leading tools such as OpenTelemetry, Jaeger, and Prometheus.
Observability is a critical aspect of managing and maintaining the performance, reliability, and overall health of complex cloud-native applications. In this hands-on course, you will gain the knowledge and practical skills necessary to enhance your applications' observability, enabling you to diagnose, troubleshoot, and optimize their performance with confidence.
Course Highlights:
Understanding Observability Fundamentals: Delve into the core concepts of observability, exploring the importance of metrics, traces, and logs in gaining insights into the behavior of cloud-native applications.
Deep dive into OpenTelemetry: Learn how to instrument your applications using OpenTelemetry, a powerful and flexible open-source framework that provides standardized APIs for capturing traces, metrics, and logs. Discover how to integrate OpenTelemetry into your application's codebase seamlessly.
Hands-On Project: Put your knowledge into practice with a hands-on demo project that simulates real-world scenarios. Create and analyze traces with Jaeger, set up metric collection with Prometheus, and integrate OpenTelemetry.
Best Practices and Use Cases: Gain insights into industry best practices for observability, including advanced techniques for detecting anomalies, diagnosing issues, and ensuring seamless application scaling.
By the end of this course, you will have not only a solid understanding of observability concepts but also the practical skills to implement observability practices effectively using OpenTelemetry, Jaeger, and Prometheus. Whether you are a seasoned software engineer, a DevOps enthusiast, or an SRE striving for excellence, this course will empower you to elevate your cloud-native applications to new heights of reliability, performance, and scalability.