Repo for learning observability
  • Go 57.9%
  • JavaScript 28.9%
  • Shell 12%
  • Dockerfile 1.2%
Find a file
Abhishek Veeramalla 8ec1c810d9
Merge pull request #66 from sandipkumardey/main
fix: set default Grafana admin password and document secret recovery
2026-06-26 00:26:55 -07:00
day-1 Typo: day-1/readme.md : EFK 2024-08-15 21:38:52 +05:30
day-2 Update day-2 README with Grafana credentials troubleshooting steps 2026-06-24 22:55:28 +05:30
day-3 Update ingress_kube_prom_stack.yaml 2024-10-17 18:51:54 +05:30
day-4 added metrics_instrumentation analysis 2026-06-25 18:54:37 +05:30
day-5 Update helm repo for fluentbit 2024-10-17 14:15:01 +05:30
day-6 ++ day-6 Jaeger & other related changes 2024-09-01 20:14:22 +05:30
day-7 ++Day-7: OpenTelemetry 2024-10-01 01:58:23 +05:30
opensearch-stack Create prerequisites.md 2025-04-14 16:10:23 +05:30
.gitignore ++ day-6 Jaeger & other related changes 2024-09-01 20:14:22 +05:30
README.md Improve docs for monitoring 2024-10-03 00:12:51 +05:30

📚 7-Day Observability Tutorial Series

Welcome to the 7-Day Observability Tutorial Series! This repository contains the code and detailed explanations for setting up and understanding observability in Kubernetes using Prometheus, Grafana, Elasticsearch Fluentbit, Kibana, Jaeger, groundcover(eBPF), opentelemetry e.t.c.,.

📅 Overview of Each Day

Day 1: Introduction to Observability

  • Concepts Covered:
    • Introduction to Observability, Monitoring, Logging, and Tracing.
    • The difference between Monitoring and Observability.
    • Tools available for Monitoring and Observability.
    • Comparison between monitoring and observing in Bare-Metal Servers vs. Kubernetes.
  • Key Learning:
    • Understand the fundamental concepts of observability.
    • Learn why monitoring and observability are crucial in modern IT environments.

Day 2: Prometheus - Setting Up Monitoring

  • Concepts Covered:
    • Introduction to Prometheus and its architecture.
    • Setup and configuration of Prometheus in an EKS cluster.
    • Installation of kube-prometheus-stack with Helm and integrating it with Grafana.
    • Basic queries and setup for monitoring with Prometheus and Grafana.
  • Key Learning:
    • Get hands-on experience with Prometheus and Grafana.
    • Learn to install and configure Prometheus on Kubernetes.

Day 3: Metrics and PromQL in Prometheus

  • Concepts Covered:
    • Introduction to PromQL and basic querying techniques.
    • Aggregation and functions in PromQL to analyze metrics data.
  • Key Learning:
    • Master the Prometheus Query Language (PromQL) for querying and analyzing metrics.

Day 4: Instrumentation and Custom Metrics

  • Concepts Covered:
    • Instrumentation for adding monitoring capabilities to applications.
    • Understanding different types of metrics in Prometheus: Counter, Gauge, Histogram, and Summary.
    • Writing custom metrics in a Node.js application using the prom-client library.
    • Dockerizing the application and deploying it on Kubernetes.
    • Setting up Alertmanager for alerting based on custom metrics.
  • Key Learning:
    • Learn how to instrument applications to expose custom metrics.
    • Configure alerts in Alertmanager to monitor application performance.
    • Understand how to work with different types of metrics in Prometheus.

Day 5: Logging with EFK Stack

  • Concepts Covered:
    • Introduction to logging in distributed systems and Kubernetes.
    • Setting up the EFK stack (Elasticsearch, Fluentbit, Kibana) on Kubernetes.
    • Detailed setup and configuration for collecting and visualizing logs.
    • Cleaning up the Kubernetes cluster and resources.
  • Key Learning:
    • Understand the importance of logging and how to set up

Day 6: Distributed Tracing with Jaeger

  • Concepts Covered:
    • Introduction to Jaeger and its architecture for distributed tracing.
    • Setting up Jaeger in a Kubernetes cluster using Helm.
    • Instrumenting services using OpenTelemetry to enable tracing.
    • Viewing and analyzing traces in the Jaeger UI.
    • Cleaning up the environment after setting up Jaeger.
  • Key Learning:
    • Gain insights into distributed tracing and how it helps in debugging and performance optimization.
    • Learn how to set up and configure Jaeger for tracing in a microservices architecture.

Day 7: OpenTelemetry – Setting Up Unified Observability

  • Concepts Covered:
    • Introduction to OpenTelemetry, a unified framework for observability.
    • Understanding how OpenTelemetry integrates tracing, metrics, and logging.
    • Comparison of OpenTelemetry with prior observability tools like Jaeger, Prometheus
    • Supported programming languages and multi-language support in OpenTelemetry.
    • Step-by-step setup of OpenTelemetry in Kubernetes.
  • Key Learning:
    • Learn how OpenTelemetry simplifies the process of collecting and exporting telemetry data.
    • Understand the benefits of a unified observability approach using OpenTelemetry.
    • Gain hands-on experience with setting up OpenTelemetry Collector, Prometheus, Jaeger, and Elasticsearch to monitor a Golang microservice application.