MCPcopy
hub / github.com/iam-veeramalla/observability-zero-to-hero

github.com/iam-veeramalla/observability-zero-to-hero @main sqlite

repository ↗ · DeepWiki ↗
12 symbols 44 edges 6 files 6 documented · 50%
README

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

Core symbols most depended-on inside this repo

initProvider
called by 1
day-7/microservice-b/main.go
initProvider
called by 1
day-7/microservice-a/main.go
logging
called by 1
day-4/application/service-a/index.js
simulateAsyncTask
called by 1
day-4/application/service-a/index.js
hello
called by 0
day-7/microservice-b/main.go
callA
called by 0
day-7/microservice-b/main.go
getMeCoffee
called by 0
day-7/microservice-b/main.go
main
called by 0
day-7/microservice-b/main.go

Shape

Function 12

Languages

Go83%
TypeScript17%

Modules by API surface

day-7/microservice-b/main.go5 symbols
day-7/microservice-a/main.go5 symbols
day-4/application/service-a/index.js2 symbols

Dependencies from manifests, versioned

github.com/bytedance/sonicv1.12.2 · 1×
github.com/bytedance/sonic/loaderv0.2.0 · 1×
github.com/cloudwego/base64xv0.1.4 · 1×
github.com/cloudwego/iasmv0.2.0 · 1×
github.com/felixge/httpsnoopv1.0.4 · 1×
github.com/gabriel-vasile/mimetypev1.4.5 · 1×
github.com/gin-contrib/ssev0.1.0 · 1×
github.com/go-logr/logrv1.4.2 · 1×
github.com/go-logr/stdrv1.2.2 · 1×
github.com/go-playground/localesv0.14.1 · 1×

For agents

$ claude mcp add observability-zero-to-hero \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact