From 07ff12f3dc3eb3822f65fa897a3bb605b1ab5926 Mon Sep 17 00:00:00 2001 From: Vincent Stuyck Date: Sat, 1 Aug 2026 10:33:42 +0000 Subject: [PATCH] remote grafana stack --- config/grafana-datasources.yaml | 49 ------------------------- config/loki.yaml | 35 ------------------ config/mimir.yaml | 54 ---------------------------- config/tempo.yaml | 39 -------------------- docker-compose.yaml | 63 +-------------------------------- 5 files changed, 1 insertion(+), 239 deletions(-) delete mode 100644 config/grafana-datasources.yaml delete mode 100644 config/loki.yaml delete mode 100644 config/mimir.yaml delete mode 100644 config/tempo.yaml diff --git a/config/grafana-datasources.yaml b/config/grafana-datasources.yaml deleted file mode 100644 index bdf84b5..0000000 --- a/config/grafana-datasources.yaml +++ /dev/null @@ -1,49 +0,0 @@ -# config/grafana-datasources.yaml -# Auto-provisioned data sources for Grafana - -apiVersion: 1 - -datasources: - # Tempo for traces - - name: Tempo - uid: tempo - type: tempo - access: proxy - url: http://tempo:3200 - isDefault: false - jsonData: - tracesToLogsV2: - datasourceUid: loki - filterByTraceID: true - tracesToMetrics: - datasourceUid: mimir - nodeGraph: - enabled: true - serviceMap: - datasourceUid: mimir - - # Mimir for metrics - - name: Mimir - uid: mimir - type: prometheus - access: proxy - url: http://mimir:9009/prometheus - isDefault: true - jsonData: - exemplarTraceIdDestinations: - - name: traceID - datasourceUid: tempo - - # Loki for logs - - name: Loki - uid: loki - type: loki - access: proxy - url: http://loki:3100 - isDefault: false - jsonData: - derivedFields: - - name: TraceID - datasourceUid: tempo - matcherRegex: "traceID=(\\w+)" - url: "$${__value.raw}" diff --git a/config/loki.yaml b/config/loki.yaml deleted file mode 100644 index 957e759..0000000 --- a/config/loki.yaml +++ /dev/null @@ -1,35 +0,0 @@ -# config/loki.yaml -# Grafana Loki configuration for local development - -auth_enabled: false - -server: - http_listen_port: 3100 - -# Common configuration shared across components -common: - path_prefix: /loki - storage: - filesystem: - chunks_directory: /loki/chunks - rules_directory: /loki/rules - replication_factor: 1 - ring: - kvstore: - store: inmemory - -# Schema configuration defines how data is stored -schema_config: - configs: - - from: 2020-10-24 - store: tsdb - object_store: filesystem - schema: v13 - index: - prefix: index_ - period: 24h - -# Limits for local development -limits_config: - allow_structured_metadata: true - volume_enabled: true diff --git a/config/mimir.yaml b/config/mimir.yaml deleted file mode 100644 index 7c7e65c..0000000 --- a/config/mimir.yaml +++ /dev/null @@ -1,54 +0,0 @@ -# config/mimir.yaml -# Grafana Mimir configuration for local development - -# Run all components in a single process -target: all - -# Server settings -server: - http_listen_port: 9009 - grpc_listen_port: 9095 - -# Single-tenant mode for simplicity -multitenancy_enabled: false - -# Block storage configuration -blocks_storage: - backend: filesystem - filesystem: - dir: /data/blocks - tsdb: - dir: /data/tsdb - bucket_store: - sync_dir: /data/sync - -# Compactor settings -compactor: - data_dir: /data/compactor - sharding_ring: - kvstore: - store: memberlist - -# Distributor accepts remote write from the Collector -distributor: - ring: - kvstore: - store: memberlist - -# Ingester configuration -ingester: - ring: - kvstore: - store: memberlist - replication_factor: 1 - -# Store gateway for querying blocks -store_gateway: - sharding_ring: - replication_factor: 1 - -# Ruler for alerting rules -ruler_storage: - backend: filesystem - filesystem: - dir: /data/rules diff --git a/config/tempo.yaml b/config/tempo.yaml deleted file mode 100644 index 7e55685..0000000 --- a/config/tempo.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# config/tempo.yaml -# Grafana Tempo configuration for local development - -# Server configuration -server: - http_listen_port: 3200 - -# Distributor receives traces from the Collector -distributor: - receivers: - otlp: - protocols: - grpc: - endpoint: 0.0.0.0:4317 - -# Storage configuration using local filesystem -storage: - trace: - backend: local - local: - path: /var/tempo/blocks - wal: - path: /var/tempo/wal - -# Metrics generator creates span metrics for RED dashboards -metrics_generator: - registry: - external_labels: - source: tempo - storage: - path: /var/tempo/generator/wal - remote_write: - - url: http://mimir:9009/api/v1/push - -# Enable metrics-generator processors for the default tenant -overrides: - defaults: - metrics_generator: - processors: [span-metrics, service-graphs] diff --git a/docker-compose.yaml b/docker-compose.yaml index 30e3b2a..84220a7 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,9 +1,5 @@ volumes: - tempo-data: - mimir-data: - loki-data: - grafana-data: services: @@ -17,64 +13,7 @@ services: - 4318:4318 # http volumes: - ./config/otel-collector.yaml:/etc/otelcol-contrib/config.yaml - - ./ssl/ca.crt:/etc/otelcol-contrib/ca.crt - - ./ssl/server.crt:/etc/otelcol-contrib/otel.crt - - ./ssl/server.key:/etc/otelcol-contrib/otel.key - depends_on: - - tempo - - mimir - - loki - - # Grafana Tempo - distributed tracing backend - tempo: - image: grafana/tempo:latest - container_name: tempo - restart: unless-stopped - volumes: - - ./config/tempo.yaml:/etc/tempo/config.yaml - - tempo-data:/var/tempo - command: ["-config.file=/etc/tempo/config.yaml"] - ports: - - "3200:3200" # Tempo API - - # Grafana Mimir - long-term metrics storage - mimir: - image: grafana/mimir:latest - container_name: mimir - restart: unless-stopped - volumes: - - ./config/mimir.yaml:/etc/mimir/config.yaml - - mimir-data:/data - command: ["-config.file=/etc/mimir/config.yaml"] - ports: - - "9009:9009" # Mimir API - - # Grafana Loki - log aggregation - loki: - image: grafana/loki:latest - container_name: loki - restart: unless-stopped - volumes: - - ./config/loki.yaml:/etc/loki/config.yaml - - loki-data:/loki - command: ["-config.file=/etc/loki/config.yaml"] - ports: - - "3100:3100" # Loki API - - # Grafana - visualization and dashboards - grafana: - image: grafana/grafana:latest - container_name: grafana - restart: unless-stopped - environment: - - GF_AUTH_ANONYMOUS_ENABLED=true - - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin - - GF_AUTH_DISABLE_LOGIN_FORM=true - volumes: - - ./config/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml - - grafana-data:/var/lib/grafana - ports: - - "3000:3000" # Grafana UI + - ./ssl:/etc/otelcol-contrib/ssl depends_on: - tempo - mimir