Oleg ZaytsevandMatias Chomicki 015219e49f Logs Panel: Integrate client-side search with Popover Menu (#114653)
* Explore: Add custom text highlighting to logs panel

Add ability to select text in log lines and highlight all occurrences
with persistent colors. Highlights are stored in URL state and cycle
through the theme's visualization palette.

- Add CustomHighlight type to ExploreLogsPanelState
- Implement LogListHighlightContext for state management
- Generate custom highlight grammar using Prism.js tokens
- Add "Highlight occurrences" option to popover menu
- Add "Reset highlights" control when highlights exist
- Fix pruneObject to preserve colorIndex: 0 in URL state

* Fix CI failures: formatting and i18n extraction

- Run prettier on LogLine.tsx
- Run i18n-extract to update translation strings

* Fix lint errors

- Use theme.shape.radius.default instead of literal '2px' in LogLine.tsx
- Remove unnecessary type assertion in grammar.ts

* Fix TypeScript error in grammar.ts

Use Record<string, GrammarValue> type for dynamic grammar object to allow string indexing without type assertions.

* Replace hardcoded HIGHLIGHT_COLOR_COUNT with actual theme palette length

Use useTheme2() hook to dynamically get the palette length instead of
hardcoding it to 50. This ensures the color cycling works correctly
regardless of the actual theme palette size.

* Backtrack to a stable point and revert changes

* Implement using search

* New translations

* LogListSearch: refactor search state

* PopoverMenu: add divider

* LogLine: remove padding and update border radius

* LogListSearch: add missing tooltips

* Refactor keybindings

* More cleanup

* LogListSearch: don't autoscroll with filterLogs

---------

Co-authored-by: Matias Chomicki <matyax@gmail.com>
2025-12-17 10:43:50 +01:00
…
2025-09-30 09:49:23 -04:00
2025-10-29 17:17:07 +01:00
2025-03-04 11:00:35 +00:00
…
…
2025-08-20 10:08:03 +00:00

Grafana Logo (Light) Grafana Logo (Dark)

The open-source platform for monitoring and observability

License Go Report Card

Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data-driven culture:

  • Visualizations: Fast and flexible client side graphs with a multitude of options. Panel plugins offer many different ways to visualize metrics and logs.
  • Dynamic Dashboards: Create dynamic & reusable dashboards with template variables that appear as dropdowns at the top of the dashboard.
  • Explore Metrics: Explore your data through ad-hoc queries and dynamic drilldown. Split view and compare different time ranges, queries and data sources side by side.
  • Explore Logs: Experience the magic of switching from metrics to logs with preserved label filters. Quickly search through all your logs or streaming them live.
  • Alerting: Visually define alert rules for your most important metrics. Grafana will continuously evaluate and send notifications to systems like Slack, PagerDuty, VictorOps, OpsGenie.
  • Mixed Data Sources: Mix different data sources in the same graph! You can specify a data source on a per-query basis. This works for even custom datasources.

Get started

Unsure if Grafana is for you? Watch Grafana in action on play.grafana.org!

Documentation

The Grafana documentation is available at grafana.com/docs.

Contributing

If you're interested in contributing to the Grafana project:

Share your contributor experience in our feedback survey to help us improve.

Get involved

This project is tested with BrowserStack.

License

Grafana is distributed under AGPL-3.0-only. For Apache-2.0 exceptions, see LICENSING.md.

S
Description
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Readme AGPL-3.0
2.7 GiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 52.9%
Go 44.3%
CUE 0.7%
Rich Text Format 0.5%
HTML 0.4%
Other 1%