MCPcopy
hub / github.com/perses/perses

github.com/perses/perses @v0.53.1 sqlite

repository ↗ · DeepWiki ↗ · release v0.53.1 ↗
4,492 symbols 13,262 edges 751 files 419 documented · 9%
README

Perses Perses

build go react Go Report Card OpenSSF Best Practices OpenSSF Scorecard

Overview

Perses is first and foremost a dashboard tool that you can use to display a variety of observability data. It currently supports Prometheus metrics, Tempo traces, Loki for logs, Pyroscope for profiling, bringing together all four observability pillars in one place. As the project continues to evolve, it will expand support for additional tools to give users even more flexibility and insight.

Perses is a Cloud Native Computing Foundation sandbox project.

img.png

Beyond its core usage, Perses aims to achieve several broader goals:

  • Open specification for dashboards. Perses is also an initiative to define a standardized dashboard specification, fostering interoperability across observability tools.
  • Integrability. Perses provides various npm packages that allow developers to embed panels and dashboards into their own UIs, benefiting from the work done in Perses. For instance, these packages could be used in the future to enhance data visualization in the Prometheus UI.
  • Extensibility. Perses supports multiple kinds of plugins, enabling users to extend the tool’s native capabilities to suit specific needs.
  • GitOps-friendly. SDKs, CI/CD libraries, static validation, native CLI.. Perses provides everything you need for a great Dashboard-as-Code experience.
  • Kubernetes-native mode. Dashboard definitions will be deployable into and readable from individual application namespaces using Custom Resource Definitions (CRDs). For more information on that topic you can take a look at the Perses Operator.

Want to learn more? Check the documentation website.

Try it

We are providing an online demo available at https://demo.perses.dev, where you can check existing dashboards or create your own resources.

Status

  1. Perses as an application can now be used.
  2. The data model reached a stable point, and we are providing multiple panel types that should cover most of the monitoring & tracing use cases.
  3. Authentication and authorization are available.
  4. On the GitOps aspect:
  5. We provide a CLI that helps interacting with the API. A short doc is available here
  6. Two SDKs (in Golang and in Cuelang) are available for coding dashboards. See Dashboard-as-Code guide. These SDKs will likely evolve based on the feedback we receive. However, changes are expected to focus on adding utility functions rather than introducing breaking changes.
  7. A plugin architecture:
  8. Enables the externalization of both plugin loading and implementation.
  9. The core plugins are maintained in perses/plugins repository.

What's next

Current Roadmap is available here

Install

There are various ways of installing Perses.

Precompiled binaries

Precompiled binaries for released versions are available in the GitHub release. Using the latest release binary is the recommended way of installing Perses.

Docker images

Docker images are available on Docker Hub.

You can launch a Perses container for trying it out with:

docker run --name perses -d -p 127.0.0.1:8080:8080 persesdev/perses

Homebrew

We have a Homebrew tap so macOS and Linux users can install with:

brew install perses/tap/perses for the server and web UI brew install perses/tap/percli for the CLI tool

Building from source

To build Perses from source code, You need:

Start by cloning the repository:

git clone https://github.com/perses/perses.git
cd perses

Then you can use make build that would build the web assets and then Perses itself (and also the Perses CLI that can be used to interact directly with the Perses API in case you prefer to browser the API using a terminal).

make build
./bin/perses --config=your_config.yml

Contributing and development

General instructions about how you can contribute to Perses are available in the document CONTRIBUTING.md.

UI development

If you are primarily interested in contributing to the UI application and libraries, please refer to the UI Readme. It includes quick start instructions for how to build, run, and test the React UI. It also includes details about the architecture and guidelines for development.

License

The code is licensed under an Apache 2.0 license.

Extension points exported contracts — how you extend this code

Toolbox (Interface)
Toolbox is an interface that defines the different methods that can be used in the different endpoint of the API. This i [67 …
internal/api/toolbox/toolbox.go
GlobalRoleInterface (Interface)
(no doc) [67 implementers]
pkg/client/api/v1/globalrole.go
Entity (Interface)
(no doc) [20 implementers]
pkg/model/api/entity.go
Option (Interface)
(no doc) [20 implementers]
internal/cli/cmd/cmd.go
Metadata (Interface)
(no doc) [4 implementers]
ui/core/src/model/resource.ts
License (Interface)
(no doc) [1 implementers]
scripts/pkg/license/license.go
Option (FuncType)
(no doc)
go-sdk/link/link.go
Option (FuncType)
(no doc)
go-sdk/http/proxy.go

Core symbols most depended-on inside this repo

Error
called by 111
internal/api/interface/error.go
Do
called by 93
pkg/client/perseshttp/request.go
Resource
called by 90
pkg/client/perseshttp/request.go
POST
called by 85
internal/api/route/route.go
GET
called by 81
internal/api/route/route.go
Object
called by 79
pkg/client/perseshttp/request.go
Get
called by 78
internal/api/interface/service.go
buildURL
called by 78
ui/app/src/model/url-builder.ts

Shape

Method 2,171
Function 1,422
Struct 446
Interface 339
TypeAlias 72
Class 26
FuncType 14
Enum 2

Languages

Go78%
TypeScript22%

Modules by API surface

internal/api/dependency/service_manager.go49 symbols
pkg/client/api/v1/client.go41 symbols
internal/api/plugin/schema/schema.go37 symbols
internal/api/dependency/persistence_manager.go37 symbols
pkg/model/api/v1/metadata.go36 symbols
ui/e2e/src/pages/DashboardPage.ts34 symbols
internal/api/impl/proxy/proxy.go33 symbols
internal/api/impl/auth/oauth.go30 symbols
ui/app/src/model/config-client.ts29 symbols
internal/api/e2e/framework/data.go28 symbols
pkg/model/api/v1/rolebinding.go27 symbols
internal/api/plugin/migrate/migrate.go27 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

cel.dev/exprv0.25.1 · 1×
cuelabs.dev/go/oci/ociregistryv0.0.0-2025072208495 · 1×
cuelang.org/gov0.15.4 · 1×
dario.cat/mergov1.0.2 · 1×
filippo.io/edwards25519v1.1.0 · 1×
github.com/AlekSi/pointerv1.2.0 · 1×
github.com/Masterminds/goutilsv1.1.1 · 1×
github.com/Masterminds/semver/v3v3.4.0 · 1×
github.com/Microsoft/go-winiov0.6.2 · 1×
github.com/NYTimes/gziphandlerv1.1.1 · 1×
github.com/PaesslerAG/gvalv1.2.4 · 1×

For agents

$ claude mcp add perses \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact