K6 >> Alloy >> Mimir >> Grafana - no data

Hi

I am trying to see if I can get the following flow: k6 >> Alloy >> Mimir >> Grafana

Problem:
I can see, in Alloy “live debugging”, that k6 is pushing data in
otelcol.receiver.otlp.default” and
otelcol.processor.attributes.default” but unable to see data in “otelcol.exporter.otlphttp.default” as it says
“Error: Failed to connect, status code: 500, reason: the component “otelcol.exporter.otlphttp” does not support live debugging”.

I am stuck with no data in grafana, can you help - thanks in advance.

Reflections: k6 uses grps and I have exporter in “otlphttp”, I tryed changing to “otlpgrpc”.

docker-compose.yaml

services:
  alloy:
    image: grafana/alloy:latest
    ports:
      - "12345:12345" # Alloy UI
      - "4317:4317" # gRPC receiver
      - "4318:4318" # HTTP receiver
    volumes:
      - ./alloy/config.alloy:/etc/alloy/config.alloy
      - alloy_data:/var/lib/alloy/data
    command: [
      "run", 
      "--server.http.listen-addr=0.0.0.0:12345", 
      "--storage.path=/var/lib/alloy/data",
      "--stability.level=experimental",
      "/etc/alloy/config.alloy"
    ]
    depends_on:
      - mimir
    networks:
      - my-observability-net

  mimir:
    image: grafana/mimir:latest
    ports:
      - "9009:9009"
    volumes:
      - ./mimir/mimir.yaml:/etc/mimir/mimir.yaml
    networks:
      - my-observability-net

  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"
    depends_on:
      - mimir # Grafana depends on Mimir to access metrics
    volumes:
      - ./grafana/provisioning:/etc/grafana/provisioning
    networks:
      - my-observability-net

volumes:
  alloy_data:

networks:
  my-observability-net:

config.alloy

otelcol.receiver.otlp "default" {
    grpc{}
    output {
        metrics = [otelcol.processor.attributes.default.input]
    }
}

otelcol.processor.attributes "default" {
    output {
        metrics = [otelcol.exporter.otlphttp.default.input]
    }
}

otelcol.exporter.otlphttp "default" {
    client {
        endpoint = "http://mimir:9009/api/v1/push"
    }
}

livedebugging {
    enabled = true
}

mimir.yaml

# Do not use this configuration in production.
# It is for demonstration purposes only.
multitenancy_enabled: false

blocks_storage:
  backend: filesystem
  bucket_store:
    sync_dir: /tmp/mimir/tsdb-sync
  filesystem:
    dir: /tmp/mimir/data/tsdb
  tsdb:
    dir: /tmp/mimir/tsdb

compactor:
  data_dir: /tmp/mimir/compactor
  sharding_ring:
    kvstore:
      store: memberlist

distributor:
  ring:
    instance_addr: 127.0.0.1
    kvstore:
      store: memberlist

ingester:
  ring:
    instance_addr: 127.0.0.1
    kvstore:
      store: memberlist
    replication_factor: 1

ruler_storage:
  backend: filesystem
  filesystem:
    dir: /tmp/mimir/rules

server:
  http_listen_port: 9009
  log_level: error

store_gateway:
  sharding_ring:
    replication_factor: 1

k6

K6_OTEL_GRPC_EXPORTER_INSECURE=true K6_OTEL_METRIC_PREFIX=k6_ \
k6 run --out experimental-opentelemetry ./demo.js