> ## Documentation Index
> Fetch the complete documentation index at: https://docs.skyhook.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Observability Bundle

> Complete observability stack with metrics, logs, and traces for Kubernetes clusters

## What is the Observability Bundle?

The Observability Bundle is a curated collection of industry-standard tools that provide comprehensive monitoring, logging, and tracing for your Kubernetes clusters. Skyhook manages the installation and configuration of these tools through GitOps workflows, giving you a complete observability solution with minimal setup effort.

<Frame>
  <img src="https://mintcdn.com/koalaops/o3JdJLgV_La_eH81/images/observability-bundle-status-card.png?fit=max&auto=format&n=o3JdJLgV_La_eH81&q=85&s=762692ee6ad861fbdf98087b4cb47009" alt="Observability Bundle status showing installed components" width="2656" height="680" data-path="images/observability-bundle-status-card.png" />
</Frame>

The bundle implements the three pillars of observability:

* **Metrics**: Numerical measurements of system performance over time (CPU usage, request rates, error rates)
* **Logs**: Text records of discrete events that occurred in your system
* **Traces**: Records of requests as they flow through distributed services

## Bundle Components

The Observability Bundle includes 9 integrated components that work together to provide complete visibility into your Kubernetes infrastructure and applications.

### Visualization and Dashboards

<Card title="Grafana" icon="chart-line">
  Central dashboard for visualizing metrics, logs, and traces. Grafana connects to all other components in the bundle to provide unified observability dashboards.

  * Multi-datasource support (Prometheus, Loki, Tempo, Mimir)
  * Pre-built dashboards for Kubernetes monitoring
  * Custom dashboard creation
  * Alerting and notifications
</Card>

### Distributed Tracing

<Card title="Grafana Tempo" icon="route">
  High-volume distributed tracing backend for storing and querying traces from your applications.

  * Cost-effective trace storage (object storage backend)
  * Integrates with Grafana for trace visualization
  * Compatible with OpenTelemetry, Jaeger, and Zipkin
  * Search traces by service, duration, tags
</Card>

<Card title="OpenTelemetry Collector" icon="satellite-dish">
  Vendor-neutral telemetry collection agent that receives, processes, and exports traces, metrics, and logs.

  * Deployment mode: Collector (aggregation)
  * Receives telemetry from applications
  * Routes data to Tempo, Loki, and other backends
  * Protocol support: OTLP, Jaeger, Zipkin
</Card>

<Card title="OpenTelemetry Collector (DaemonSet)" icon="server">
  Node-level OpenTelemetry collector running as a DaemonSet (one pod per node).

  * Deployment mode: DaemonSet (per-node)
  * Collects node and pod-level telemetry
  * Lower network overhead for local collection
  * Forwards to central collector or backends
</Card>

### Log Aggregation

<Card title="Grafana Loki" icon="file-lines">
  Log aggregation system designed for efficiency and ease of use, inspired by Prometheus.

  * Cost-effective log storage (indexes metadata, not content)
  * LogQL query language (similar to PromQL)
  * Integrates seamlessly with Grafana
  * Label-based log filtering and search
</Card>

### Metrics Collection and Storage

<Card title="Prometheus" icon="chart-bar">
  Industry-standard metrics collection and time-series database for Kubernetes.

  * Automatic service discovery in Kubernetes
  * PromQL query language
  * Pull-based metrics collection
  * Short-term metrics storage (15-30 days typical)
</Card>

<Card title="Grafana Mimir" icon="database">
  Long-term metrics storage backend compatible with Prometheus.

  * Horizontally scalable metrics storage
  * Long-term retention (months to years)
  * Prometheus remote write compatible
  * Multi-tenancy support
</Card>

<Card title="Kube State Metrics" icon="kubernetes">
  Generates metrics about Kubernetes object states (deployments, pods, nodes, etc.).

  * Cluster-level resource metrics
  * Object state and health information
  * Deployment status, pod status, node conditions
  * Scraped by Prometheus
</Card>

<Card title="Prometheus Node Exporter" icon="microchip">
  Exports hardware and OS-level metrics from Kubernetes nodes.

  * CPU, memory, disk, network metrics
  * Runs as DaemonSet (one per node)
  * System-level performance data
  * Node health monitoring
</Card>

## How Components Work Together

The observability bundle components integrate to provide end-to-end visibility:

```
Application
    ├─> OpenTelemetry SDK (instrumented code)
    │       ├─> Traces ────────────> OTel Collector ────────> Grafana Tempo
    │       ├─> Logs ──────────────> OTel Collector ────────> Grafana Loki
    │       └─> Metrics ───────────> OTel Collector ────────> Prometheus/Mimir
    │
Kubernetes Cluster
    ├─> Prometheus ──────────────> Scrapes metrics from:
    │                                   ├─> Kube State Metrics (cluster objects)
    │                                   ├─> Node Exporter (node resources)
    │                                   └─> Application /metrics endpoints
    │       └─> Remote Write ────────> Grafana Mimir (long-term storage)
    │
    └─> Grafana ─────────────────> Visualizes data from:
                                        ├─> Prometheus (real-time metrics)
                                        ├─> Mimir (historical metrics)
                                        ├─> Loki (logs)
                                        └─> Tempo (traces)
```

## Installation

The Observability Bundle is installed and managed through Skyhook's GitOps integration using ArgoCD.

### Prerequisites

* ArgoCD installed and configured (see [GitOps Setup](/infrastructure/gitops/overview))
* At least one Kubernetes cluster connected to Skyhook
* Management cluster identified (where observability backends will run)

### Installing the Bundle

1. Navigate to **Addons** in the Skyhook dashboard
2. Click on **Observability Bundle**
3. Click **Configure** to set up the bundle

<Frame>
  <img src="https://mintcdn.com/koalaops/o3JdJLgV_La_eH81/images/addons-overview-page.png?fit=max&auto=format&n=o3JdJLgV_La_eH81&q=85&s=b4597a727254eff6c80735e473adcdeb" alt="Addons page showing Observability Bundle" width="4096" height="2124" data-path="images/addons-overview-page.png" />
</Frame>

The configuration wizard guides you through:

* Selecting management and workload clusters
* Configuring storage settings
* Setting up ingress for Grafana and OpenTelemetry
* Managing secrets (Grafana credentials, authentication tokens)

### Architecture Patterns

**Management Cluster**: Runs the observability backends

* Grafana (visualization)
* Tempo (trace storage)
* Loki (log storage)
* Mimir (metrics storage)
* Prometheus (metrics collection)

**Workload Clusters**: Run data collection agents

* OpenTelemetry Collector (send traces/logs to management cluster)
* Prometheus (scrape local metrics, remote write to management cluster)
* Kube State Metrics (expose cluster metrics)
* Node Exporter (expose node metrics)

This centralized architecture allows you to monitor all your clusters from a single Grafana instance.

## Component Documentation

For detailed setup and usage of individual components:

* [Metrics](/observability/metrics) - Prometheus, Mimir, Kube State Metrics, Node Exporter
* [Logs](/observability/logs) - Grafana Loki log aggregation
* [Tracing](/observability/tracing) - Grafana Tempo and OpenTelemetry distributed tracing

## Benefits

<CardGroup cols={2}>
  <Card title="Unified Observability" icon="eye">
    Single pane of glass for metrics, logs, and traces across all your clusters
  </Card>

  <Card title="GitOps Managed" icon="code-branch">
    Infrastructure as code with version control, audit trails, and easy rollbacks
  </Card>

  <Card title="Industry Standard Tools" icon="star">
    Best-of-breed open source tools used by thousands of organizations
  </Card>

  <Card title="Cost Effective" icon="dollar-sign">
    Efficient storage and retention strategies minimize infrastructure costs
  </Card>

  <Card title="Multi-Cluster" icon="layer-group">
    Monitor all your Kubernetes clusters from a centralized observability stack
  </Card>

  <Card title="Vendor Neutral" icon="handshake">
    OpenTelemetry-based collection works with any instrumented application
  </Card>
</CardGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Install the Bundle" icon="download" href="/infrastructure/gitops/overview">
    Set up GitOps and install the Observability Bundle
  </Card>

  <Card title="Configure Metrics" icon="chart-bar" href="/observability/metrics">
    Set up Prometheus and Mimir for metrics collection
  </Card>

  <Card title="Enable Log Aggregation" icon="file-lines" href="/observability/logs">
    Configure Loki for centralized log management
  </Card>

  <Card title="Set Up Distributed Tracing" icon="route" href="/observability/tracing">
    Implement tracing with Tempo and OpenTelemetry
  </Card>
</CardGroup>
