Perses is an open-source dashboard tool for observability data and a [CNCF](https://www.cncf.io/) sandbox project. It provides a unified interface for visualizing metrics, traces, logs, and profiling data - bringing together all four observability pillars in one place.
- **Website**: [perses.dev](https://perses.dev)
- **GitHub**: [github.com/perses/perses](https://github.com/perses/perses)
- **Live Demo**: [demo.perses.dev](https://demo.perses.dev)
- **License**: Apache 2.0
## Supported Data Sources
Perses currently supports:
- **[[Prometheus]]** for metrics
- **Tempo** for traces
- **[[Grafana Loki|Loki]]** for logs
- **Pyroscope** for profiling
## Key Features
### Open Dashboard Specification
Perses is also an initiative to define a standardized, open specification for dashboards, fostering interoperability across observability tools. This is one of its most distinctive aspects compared to alternatives like [[Grafana]].
### Dashboard-as-Code
Dashboards can be written as code using SDKs (Go and CUE). This enables reusable components, shared libraries, and managing large numbers of dashboards at scale.
### GitOps-Friendly
Perses provides everything needed for a Dashboard-as-Code workflow:
- **percli** - a native CLI for interacting with the API and CI/CD pipelines
- Static validation of dashboard definitions with custom lint rules
- SDKs in Go and CUE for programmatic dashboard creation
### Kubernetes-Native
Dashboard definitions can be deployed and managed as Kubernetes Custom Resource Definitions (CRDs) via the [Perses Operator](https://github.com/perses/perses-operator). This includes automatic datasource discovery from pods and services.
### Embeddable Components
Perses provides npm packages that allow developers to embed individual panels or entire dashboards into their own UIs, without running the full Perses application.
### Plugin Architecture
A plugin-based architecture enables users to extend Perses's native capabilities. Core plugins are maintained in a separate [plugins repository](https://github.com/perses/plugins).
### Authentication and Authorization
Supports native user management or integration with external OIDC/OAuth identity providers, with a Kubernetes-inspired RBAC system.
## Grafana Migration
Perses supports migrating existing [[Grafana]] dashboards, either through the web UI (JSON import) or via `percli` for batch migrations. The migration translates Grafana definitions to Perses equivalents on a best-effort basis.
## Technology Stack
- **Backend**: Go
- **Frontend**: React (TypeScript)
- **Dashboard Schema**: CUE language for validation and code generation
## Installation
Perses can be installed via:
- **Docker**: `docker run --name perses -d -p 127.0.0.1:8080:8080 persesdev/perses`
- **Homebrew** (macOS/Linux): `brew install perses/tap/perses`
- **Precompiled binaries** from [GitHub Releases](https://github.com/perses/perses/releases)
- **From source** (requires Go 1.23+, Node.js 22+)