Skip to content

Commit 7fb9f13

Browse files
pratik705devxmikeruu
authored
Update directory structure of observability and add Loki, Otel (#42)
feat: Add complete OpenTelemetry Observability Stack and Operator This series of changes introduces a comprehensive observability solution based on the OpenTelemetry ecosystem, focusing on production-ready, security-hardened deployments. Key changes include: * **Feature Addition:** Deploy the full OpenTelemetry Kube Stack (v0.11.1) and the OpenTelemetry Operator (v0.98.0) for auto-instrumentation and complete telemetry collection (traces, metrics, logs). * **Hardening:** Implement security best practices for all new components, including non-root execution, read-only filesystems, resource limits, high availability (HA), and cert-manager integration. * **Documentation:** Update service documentation to reflect the migration to the unified 'opentelemetry-kube-stack' and enhance feature descriptions. * **Refactoring/Fixes:** Refactor the observability setup to prevent accidental namespace deletion, fix minor configuration issues (NS labels, default values), and update the telemetry pipeline configuration (removing the metrics pipeline). * **Other:** Add base manifests for Loki deployment and update the resource type for ID RSA management. Resolves: OpenTelemetry operator deployment for auto-instrumentation --------- Co-authored-by: Pratik Bandarkar <[email protected]> Co-authored-by: Victor Palma <[email protected]> Co-authored-by: Miguel Parada <[email protected]>
1 parent 3221c81 commit 7fb9f13

File tree

21 files changed

+6293
-1
lines changed

21 files changed

+6293
-1
lines changed

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ applications/
2929
| **kube-prometheus-stack** | Core Service | `observability` | Complete monitoring and alerting stack |
3030
| **metallb** | Core Service | `metallb-system` | Bare metal load balancer |
3131
| **olm** | Core Service | `olm` | Operator Lifecycle Manager |
32+
| **opentelemetry-kube-stack** | Core Service | `observability` | Complete OpenTelemetry observability stack |
3233
| **sealed-secrets** | Core Service | `sealed-secrets` | Encrypted secrets management |
3334
| **velero** | Core Service | `velero` | Cluster backup and disaster recovery |
3435
| **alert-proxy** | Managed Service | `rackspace` | Rackspace alert aggregation |
@@ -103,6 +104,18 @@ applications/
103104
- Dependency resolution
104105
- Automatic updates
105106

107+
#### **opentelemetry-kube-stack**
108+
- **Purpose**: Complete OpenTelemetry observability stack for Kubernetes
109+
- **Source**: OpenTelemetry Kube Stack Helm repository (`https://charts.opentelemetry.io`)
110+
- **Namespace**: `observability`
111+
- **Features**:
112+
- OpenTelemetry Operator for auto-instrumentation and collector management
113+
- Pre-configured OpenTelemetry Collector for metrics, traces, and logs
114+
- Automatic service discovery and monitoring
115+
- Multi-language auto-instrumentation support (Java, Node.js, Python, .NET, Go)
116+
- Integration with Prometheus and Jaeger for complete observability
117+
- Custom resource definitions for OpenTelemetry configuration
118+
106119
#### **sealed-secrets**
107120
- **Purpose**: Encrypted secrets management
108121
- **Namespace**: `sealed-secrets`
File renamed without changes.

applications/base/services/kube-prometheus-stack/kustomization.yaml renamed to applications/base/services/observability/kube-prometheus-stack/kustomization.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
apiVersion: kustomize.config.k8s.io/v1beta1
33
kind: Kustomization
44
resources:
5-
- "namespace.yaml"
65
- "source.yaml"
76
- "helmrelease.yaml"
87
secretGenerator:
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Loki – Base Configuration
2+
3+
This directory contains the **base manifests** for deploying [Grafana Loki](https://grafana.com/oss/loki/), a horizontally-scalable, highly-available log aggregation system designed for cloud-native environments.
4+
It is designed to be **consumed by cluster repositories** as a remote base, allowing each cluster to apply **custom overrides** as needed.
5+
6+
**About Grafana Loki:**
7+
8+
- Provides a **cost-effective log aggregation solution** optimized for storing and querying logs from Kubernetes clusters and applications.
9+
- Deployed in **Simple Scalable mode** with separate read and write paths for high availability and horizontal scaling.
10+
- Integrates natively with **OpenTelemetry** for log collection using OTLP protocol, eliminating the need for additional log shippers.
11+
- Indexes only metadata (labels) rather than full-text, resulting in **significantly lower storage costs** compared to traditional solutions.
12+
- Queries logs using **LogQL**, a query language similar to PromQL, enabling powerful filtering and aggregation.
13+
- Supports **multi-tenancy**, **retention policies**, and **compaction** for efficient long-term log storage.
14+
- Automatically integrates with **Grafana** for unified visualization of logs alongside metrics and traces.
15+
- Commonly used for troubleshooting application issues, audit logging, security analysis, and operational insights.

0 commit comments

Comments
 (0)