Plugins 〉Loki-Operational


Developer

Grafana

Sign up to receive occasional product news and updates:



Application
grafana

Loki-Operational

Documentation →

Loki Operational UI

Grafana Grafana dependency License

Loki Operational UI is a Grafana app plugin that provides an admin-only operational console for Grafana Loki clusters: cluster/node status, ring inspection and actions, storage exploration, tenant tooling, and a “Goldfish” query comparison workflow.

Overview

This plugin is intended for Loki operators who want a single place inside Grafana to:

  • Inspect cluster members and their services/health
  • Browse and act on rings (including “forget instance” and partition ring state changes)
  • Explore data objects and view file metadata via a built-in explorer
  • Manage and review delete requests
  • Analyze tenant label distribution (cardinality / stream coverage)
  • Compare “Goldfish” sampled query results side-by-side

Requirements

  • Grafana: (>= 10.4.0)
  • Permissions: the plugin UI is restricted to Org Admins (non-admin users see an Unauthorized error)
  • Datasource: at least one Loki datasource configured with proxy access (the plugin lets you pick the datasource in the UI)
  • Loki / operational endpoints: the plugin calls operational APIs via Grafana’s datasource proxy under a /ui/ prefix (for example: /ui/api/v1/cluster/nodes, /ui/api/v1/goldfish/queries, /ui/api/v1/tenants/<tenant>/analyze-labels)

Getting started

  1. Install the plugin in Grafana and enable it.
  2. Configure (or provision) at least one Loki datasource.
  3. Navigate to the app: More apps → Loki Operational UI.
  4. Select the Loki datasource you want to operate against (top right datasource picker).

What it does (by area)

  • Cluster → Nodes
    • Lists cluster members and their services, status, version/build metadata, and quick filtering/sorting.
  • Rings
    • Discovers available rings from the cluster’s advertised services and shows the relevant ring UI.
    • Supports ring inspection plus operational actions (for example, forgetting selected instances where supported).
  • Storage → Data Objects
    • File-style explorer for data objects, including download links and metadata inspection.
  • Tenants → Deletes
    • Lists delete requests and provides a “new delete request” workflow.
  • Tenants → Analyze Labels
    • Runs label distribution analysis for a tenant over a selectable time range.
  • Goldfish
    • Browses sampled queries with filters (tenant/user/outcome/time range) and compares results between Cell A and Cell B.

Documentation

  • Grafana Loki documentation: https://grafana.com/docs/loki/latest/
  • Grafana plugin development docs: https://grafana.com/developers/plugin-tools/

Contributing

  • File bugs and feature requests with clear reproduction steps, expected behavior, and screenshots where possible.
  • PRs are welcome; keep changes focused and include tests where practical.

License

Apache-2.0

Install on Grafana Cloud

Plugins can be installed directly from within your Grafana instance or automated using the Cloud API or Terraform.

Learn more about plugin installation

For more information, visit the docs on plugin installation.

Changelog

2.0.0

Chores
  • deps:
    • update dependency postcss to v8.5.10 [security] (#62) (f565628d)
    • update dependency lodash to v4.18.1 [security] (#54) (4733c389)
  • ci:
    • lint ignores were moved to eslint.config (f836e19b)
    • lint command, jest-setup (cc1323b2)
    • dismiss grafana portal (2f889a3e)
    • remove .env from docker ci (b879d27f)
    • e2e test to ensure app loads (c4f96459)
    • fixes tests and webpack path in package.json (8f3ce7f6)
  • update .config/.cprc.json to version 7.1.7. (bab727d6)
  • run create-plugin migration - 007-remove-testing-library-types (a3d5abe6)
  • run create-plugin migration - 006-webpack-nested-fix (651f01a2)
  • run create-plugin migration - 004-eslint9-flat-config (82039adc)
  • run create-plugin@5.27.1 update (819bebec)
Continuous Integration
  • ci/cd: enable playwright tests (07e3f5c1)
  • bump plugin-ci-workflows to v7.2.0 (36901e3c)
Bug Fixes
  • externalize react/jsx-runtime for Grafana 13 compatibility (b8eb5cd9)
Other Changes
  • grafana/loki-operational-ui into feat/react-19-migration (4c000243)

1.0.8

Chores
  • deps:
    • update dependency webpack to v5.104.1 [security] (#40) (7a2f6584)
    • update dependency @types/node to v20.19.30 (#20) (90fd3a38)
    • update dependency semver to v7.7.3 (#26) (f1603b46)
    • update dependency @grafana/tsconfig to v2.0.1 (#19) (caa6ead2)
    • update dependency @types/react to v18.3.27 (#21) (43f1fba2)
    • update dependency @types/testing-library__jest-dom to v5.14.9 (#22) (b6aa2aa5)
    • update dependency autoprefixer to v10.4.23 (#23) (f8e87ea3)
    • update dependency eslint-plugin-react-refresh to v0.4.26 (#24) (232497e3)
    • update dependency sass-loader to v13.3.3 (#25) (2f84b0b7)
    • update dependency style-loader to v3.3.4 (#27) (c4975dd2)
    • pin dependency glob to 10.5.0 (#18) (34bc5675)
    • update dependency lodash to v4.17.23 [security] (#28) (d5dee7df)
    • update dependency @radix-ui/react-slot to v1.2.4 (089574d5)
    • update dependency glob to v10.5.0 [security] (356d9fdc)
    • pin dependencies (ebee101e)
  • docs: add plugin catalogue docs (#39) (05961133)
  • dep: update grafana deps (861cf26c)
New Features
  • pass comparison status in query (#16) (fb6a4e2c)
Bug Fixes
  • deps: pin dependencies (101b4237)

1.0.7

Bug Fixes
  • use new analyze-labels endpoint (baef0231)

1.0.6

New Features
  • add stats bar and backend outcome filtering (9ebe9cd6)
Bug Fixes
  • a few more small fixes (4180719a)
  • remove unused properties (f51dc983)
Refactors
  • add abort controller pattern (cf68efa2)
Tests
  • fix tests and improve coverage (76e4f030)

1.0.5

Chores
  • PR feedback, add abort controller (6a228c8f)
New Features
  • goldfish: implement diff view for stored results (c943843a)
Tests
  • add more coverage and mock monaco (a7862c70)

1.0.4

Chores
  • add TODO (16a31ba6)
  • add more test cases (d2a0b03f)
Bug Fixes
  • url handling should be relative to grafana base url (7cf00593)
Tests
  • fix basename tests (6ba8cc48)

1.0.3

Chores
  • use an alert instead of card (845c94b6)
Bug Fixes
  • mock runtime config to fix test (d1e47294)
  • datasource uid refreshes the page (d67993ca)

1.0.2

Chores
  • ci: turn off playwright (3137a4b1)
  • fix the leading slash issue in absolutePath (94811f5e)
  • lint and fix, remove errors from tests (a5658ae5)
  • remove radix-ui/react-label, and cleanup from Loki API changes (c3e96af9)
  • logo:
    • remove publish-to-catalog-as-pending (8b5a9b48)
    • use svg (75536e99)
  • tests:
    • fix tests (39a06e80)
    • fix typecheck (94fe6119)
    • fix tests (8fb0ccdf)
  • cd:
    • publish privately (c2c56e5f)
    • publish publicly (529420dd)
    • use false (002fdf2e)
    • use string (6055cc0f)
    • use true (46aeb468)
    • use none (77ee70b3)
    • use false (d242c7d2)
    • use none (068055bc)
    • contents write (e34ac71e)
    • remove attestation (3493c6ad)
New Features
  • use the selected datasource uid in all api calls (6f11c637)
Other Changes
  • grafana/loki-operational-ui (98834203)
  • grafana/loki-operational-ui (f1d421aa)

1.0.1

1.0.0

Initial release.