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+)