Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

fiddeb/observabilitystack

Open more actions menu

Repository files navigation

ObservabilityStack

Version License

A development and learning observability platform built on OpenTelemetry, Grafana, Loki, Prometheus, and Tempo. Perfect for local labs, learning, and proof-of-concepts. Deployed via ArgoCD for GitOps management with local filesystem storage and multi-tenant support.

⚠️ Not for Production: This setup is designed for development, learning, and lab environments. For production deployments, additional security, scaling, and operational considerations are required.

Features

  • OpenTelemetry Collector - Unified telemetry data collection with intelligent routing
  • Grafana - Pre-configured dashboards with multi-tenant data sources
  • Loki - Scalable log aggregation with multi-tenant support and optimized resource usage
  • Tempo - High-scale distributed tracing with local filesystem storage
  • Prometheus - Metrics collection with remote write support
  • ArgoCD - GitOps deployment and management
  • Multi-Tenant Architecture - Separate data isolation with 'foo' and 'bazz' tenants for logs
  • Resource Optimized - Runs efficiently on local development machines
  • Lab-Friendly - Easy setup for development, learning, and testing
  • Educational - Great for understanding observability and multi-tenancy concepts

Quick Start

Option 1: Direct Clone (Read-Only)

# Clone and install (read-only setup)
git clone https://github.com/fiddeb/observabilitystack.git
cd observabilitystack
./scripts/install_argo.sh

Option 2: Fork for Customization (Recommended)

Perfect for learning and experimentation:

# 1. Fork this repository on GitHub (click Fork button)
# 2. Clone your fork (replace YOUR_USERNAME)
git clone https://github.com/YOUR_USERNAME/observabilitystack.git
cd observabilitystack

# 3. Setup ArgoCD to use your repository
./scripts/setup_argocd.sh

# 4. Install everything
./scripts/install_argo.sh

Why fork? Customize configurations, experiment safely, and contribute back via pull requests.

That's it! Your observability stack is now running with:

Data Flow:

  • Logs → OpenTelemetry Collector → Loki → Local Storage → Grafana
  • Metrics → OpenTelemetry Collector → Prometheus → Local Storage → Grafana
  • Traces → OpenTelemetry Collector → Tempo → Local Storage → Grafana

Test the Pipeline

Verify everything works end-to-end:

# Run automated tests
kubectl apply -f manifests/telemetry-test-jobs.yaml

# Check results in Grafana
"Metrics: Navigate to Prometheus → gen{}"
"Logs: Navigate to Loki → {job=\"telemetrygen-logs\"}"  
"Traces: Navigate to Tempo → {service.name=\"telemetrygen\"}"

Project Structure

observabilitystack/
├── argocd/                    # ArgoCD application definitions
│   └── observability-stack.yaml
├── docs/                      # Documentation
│   ├── ARCHITECTURE.md        # Design & concepts (umbrella chart pattern)
│   ├── INSTALLATION.md
│   ├── USAGE_GUIDE.md
│   └── ...
├── helm/stackcharts/          # Helm umbrella chart
│   ├── Chart.yaml             # Chart dependencies
│   ├── values/                # Split configuration (one file per component)
│   │   ├── base.yaml              # Component enable/disable flags
│   │   ├── loki.yaml              # Loki configuration
│   │   ├── tempo.yaml             # Tempo configuration
│   │   ├── prometheus.yaml        # Prometheus configuration
│   │   ├── grafana.yaml           # Grafana configuration
│   │   ├── minio.yaml             # Minio configuration (disabled)
│   │   └── opentelemetry-collector.yaml  # OTel configuration
│   └── charts/                # Downloaded dependency charts (.tgz)
├── manifests/                 # Kubernetes manifests
│   ├── argocd-ingress.yaml    # ArgoCD web access
│   └── telemetry-test-jobs.yaml # Test workloads
├── scripts/                   # Automation scripts
│   ├── install_argo.sh        # Complete installation
│   ├── force_argo_sync.sh     # ArgoCD sync management
│   ├── merge_feature.sh       # Git workflow
│   └── test_multi_values.sh   # Validate configuration
└── app/                       # Example applications
    └── src/demo/

Configuration

The stack uses a multi-values approach for better organization:

  • helm/stackcharts/values/base.yaml - Control which components are installed
  • Component-specific files - One file per component (loki.yaml, grafana.yaml, etc.)

Example: Disable Tempo to save resources

# Edit helm/stackcharts/values/base.yaml
tempo:
  enabled: false

See Architecture Guide for detailed configuration patterns.

Documentation

Architecture & Concepts

  • Architecture Guide - Umbrella chart pattern, multi-values configuration, and customization

Getting Started

Operations

Automation

Quick Commands

# Health check and sync
./scripts/force_argo_sync.sh

# Get ArgoCD admin password
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d && echo

Troubleshooting

Quick fixes:

# Not working? Run the health check
./scripts/force_argo_sync.sh

# Still issues? Use port forwarding
kubectl port-forward service/grafana 3000:80 -n observability-lab &
kubectl port-forward svc/argocd-server -n argocd 8080:443 &

Need help? Check Troubleshooting Guide for emergency procedures and debugging commands.

Contributing

We welcome contributions! See our Git Workflow for development practices.

# Create feature branch  
git checkout -b feat/my-awesome-feature

# Make changes and test
./scripts/force_argo_sync.sh

# Merge safely
./scripts/merge_feature.sh feat/my-awesome-feature

or create pull request :)

License

This project is licensed under the MIT License. See the LICENSE file for details.


About

observability stack with OpenTelemetry Grafana Loki Prometheus and Tempo

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.