Skip to content

feat: a unified Grafana + Prometheus entry for Local, Docker Compose, and k8s. #345

@JaredforReal

Description

@JaredforReal

Is your feature request related to a problem? Please describe.
Problem:

  1. We don't have Observability (Grafana+Prom) for Local installation.
  2. Configs for Docker Compose are highly sparse: config/prometheus.yaml, config/grafana/, deploy/llm-router-dashboard.json, docker-compose.yml.
  3. Complicated and high-barrier setting up procedure.

What we have:
We have a unified architecture: same port 9190 from Prometheus, same dashboard json from deploy/llm-router-dashboard.json

Describe the solution you'd like

  1. Pack Docker Compose related files to deploy/docker/, and create a make file in /tools/make for a unified and quick start, just like chore: move all dockerfile into tools #274 .
  2. Refactor Observability files:
semantic-router/
├── config/
│   ├── observability/
│   │   ├── base/                      # basic config template
│   │   │   ├── prometheus.yaml
│   │   │   └── grafana-datasource.yaml
│   │   ├── local/                     # Local overlay
│   │   ├── docker/                    # Docker overlay
│   │   └── kubernetes/                # K8s overlay
│   ├── llm-router-dashboard.json      # unified grafana dashboard layout
│   └── config.yaml                    # Router configs ...
│
├── deploy/
│   ├── docker/
│   └── kubernetes/
│       └── observability/   # k8s advanced manifests and config: PVC...
│
├── scripts/  # optional
│   ├── generate-observability-config.sh 
│   └── start-observability.sh        
│
└── Makefile # optional
    ├── run-observability-local
    ├── run-observability-docker
    └── run-observability-k8s

Additional context
A preparation for #325

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions