grafana/grafana
Glossary
Project-specific terms, acronyms, and codenames you will encounter in the codebase. General software terms (REST, gRPC, Redux, …) are not listed here.
Product concepts
- Dashboard — a JSON document holding a layout of panels, template variables, and time range. Stored in
dashboardtable, schema inkinds/dashboard/and the newapps/dashboard/. - Panel — a single visualization on a dashboard. Each panel has a
typematching a panel plugin (timeseries,stat,table, etc.). - Folder — container for dashboards. Permissions are typically set on folders, not individual dashboards. Implemented in
pkg/services/folder/. - Datasource — configured connection to a data backend (Prometheus, Loki, MySQL, …). Built-ins are in
public/app/plugins/datasource/(frontend) andpkg/tsdb/(backend). - DataFrame — Grafana's columnar data interchange format. Defined in
packages/grafana-data/(TS) andpkg/dataframe(Go via the Grafana plugin SDK). - Explore — the ad-hoc query view (as opposed to a saved dashboard). Code under
public/app/features/explore/. - Alert rule — a query + condition + evaluation interval. Stored and evaluated by
pkg/services/ngalert/. - Contact point — a destination for alert notifications (email, Slack, PagerDuty, …) — known historically as a "notifier". Code lives under
pkg/services/ngalert/notifier/. - Notification policy — routing tree that decides which contact point an alert goes to. Stored in the Alertmanager config managed by ngalert.
- Public dashboard — a dashboard exposed without authentication via a token. Implemented in
pkg/services/publicdashboards/. - Library panel / library element — a panel definition shared across dashboards. See
pkg/services/libraryelements/andpkg/services/librarypanels/. - Scenes — the new dashboarding framework, implemented as the
@grafana/scenesexternal package and consumed bypublic/app/features/dashboard-scene/. Long-term replacement for the legacy Angular-rooted dashboard model. - Trails / Drilldown — the metrics drilldown UX. See
public/app/features/trails/.
Architectural terms
- OSS / Enterprise / Pro — Go build tags that gate features. The repo only contains OSS code; enterprise and pro fill in via build tags and a separate (private) source tree.
- App SDK / app-platform — the new Kubernetes-style API runtime. Apps live under
apps/and serve<group>/<version>/<resource>style endpoints alongside the legacy REST API. - Unified storage — the storage layer behind app-platform resources, implemented in
pkg/storage/andpkg/services/apiserver/. - Wire — Google's compile-time dependency injection generator. Service graph is declared in
pkg/server/wire.goand generated towire_gen.go. - CUE / kinds — type definitions written in CUE under
kinds/and generated to Go + TS bymake gen-cue. The Grafana way of having a single source of truth for cross-language schemas. - Feature toggle — a runtime flag, listed in
pkg/services/featuremgmt/registry.go. Some are stable, some experimental, some preview-only. - Live channel — a Centrifuge pub/sub topic served over WebSocket from
pkg/services/live/. Frontend subscribes via theLiveDataSource. - Plugin SDK — the
grafana-plugin-sdk-golibrary that backend datasource plugins implement against. Plugins talk to the host over gRPC. - Sandbox — the iframe-based sandbox that executes untrusted plugin frontend code. Code under
public/app/features/plugins/sandbox/.
Auth and access control
- Org — the original multi-tenancy unit in Grafana. A user has a role per org. See
pkg/services/org/. - RBAC — fine-grained role-based access control built on top of orgs. Implemented in
pkg/services/accesscontrol/— actions (dashboards:read), scopes (dashboards:uid:abc), and built-in plus custom roles. - Service account — a non-user identity used by automation. Tokens issued via
pkg/services/serviceaccounts/. - AuthN / AuthZ — authentication is in
pkg/services/authn/(identity resolution from request to a*user.SignedInUser); authorization is inaccesscontrol. - Anonymous — a special unauthenticated identity controlled by
auth.anonymousconfig and thepkg/services/anonymous/service.
Frontend specifics
- Scenes — see above (product concept).
- RTK Query — Redux Toolkit's data fetching layer, used for most server-state code in
public/app/features/. - Slice — a Redux Toolkit slice. New Redux code uses slices, not the legacy
connect-style reducers. - Emotion /
useStyles2— the CSS-in-JS pattern.useStyles2(styles)returns aClassRecordfrom a function that takes the current theme. - Theme — see
@grafana/datathemes. Light/dark/extended themes for visual rendering.
Build and CI
- Lefthook — pre-commit hook runner, configured in
lefthook.yml. - Drone / GitHub Actions — CI orchestrators. Most jobs are GitHub Actions in
.github/workflows/. - Bra / Air — Go file watcher used for
make runhot reload, configured by.air.toml. - Nx — JS task runner used for affected-only builds across workspaces. Configured by
nx.jsonand per-packageproject.json.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.
Previous
Getting started
Next
By the numbers