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.
Go to file
Matias Chomicki aa670280fc
Logs: add infinite scrolling to Explore (#76348)
* Explore: propose action, thunk, and decorators for load more

* LogsContainer: add loadMore method

* Query: remove unused var

* Loading more: use navigation to simulate scrolling

* Explore: figure out data combination

* Fix imports

* Explore: deduplicate results when using query splitting

* LogsNavigation: add scroll behavior

* Remove old code

* Scroll: adjust delta value

* Load more: remove refIds from signature

We can resolve them inside Explore state

* Load more: rename to loadMoreLogs

* Infinite scrolling: use scrollElement to listen to scrolling events

* Explore logs: add fixed height to scrollable logs container

* Logs: make logs container the scrolling element

* Logs: remove dynamic logs container size

It works very well with 1 query, but breaks with more than 1 query or when Logs is not the last rendered panel

* Logs navigation: revert changes

* Infinite scroll: create component

* Infinite scroll: refactor and clean up effect

* Infinite scroll: support oldest first scrolling direction

* Infinite scroll: support loading oldest logs in ascending and descending order

* Infinite scroll: use scroll to top from logs navigation

* Logs: make logs container smaller

* Logs: make container smaller

* State: integrate explore's loading states

* Infinite scroll: add loading to effect dependency array

* Infinite scroll: display message when scroll limit is reached

* Infinite scroll: add support to scroll in both directions

* Infinite scroll: capture wheel events for top scroll

* scrollableLogsContainer: deprecate in favor of logsInfiniteScrolling

* Infinite scroll: implement timerange limits

* Infinite scroll: pass timezone

* Fix unused variables and imports

* Infinite scroll: implement timerange limits for absolute time

* Infinite scroll: fix timerange limits for absolute and relative times

* Infinite scroll: reset out-of-bounds message

* Logs: make container taller

* Line limit: use "displayed" instead of "returned" for infinite scrolling

* Infinite scrolling: disable behavior when there is no scroll

* Remove console log

* Infinite scroll: hide limit reached message when using relative time

* Logs: migrate styles to object notation

* Prettier formatting

* LogsModel: fix import order

* Update betterer.results

* Logs: remove exploreScrollableLogsContainer test

* Infinite scroll: display loader

* Infinite scroll: improve wheel handling

* Explore: unify correlations code

* Explore: move new function to helpers

* Remove comment

* Fix imports

* Formatting

* Query: add missing awaits in unit test

* Logs model: add unit test

* Combine frames: move code to feature/logs

* Explore: move getCorrelations call back to query

It was causing a weird test failure

* Fix imports

* Infinite scroll: parametrize scrolling threshold

* Logs: fix overflow css

* Infinite scroll: add basic unit test

* Infinite scroll: add unit test for absolute time ranges

* Formatting

* Explore query: add custom interaction for scrolling

* Query: move correlations before update time

* Fix import in test

* Update comment

* Remove comment

* Remove comment

* Infinite scroll: report interactions from component

* Fix import order

* Rename action

* Infinite scroll: update limit reached message

* Explore logs: remove type assertion

* Update betterer
2024-01-12 13:22:03 +02:00
.bingo Chore: Fix bingo variables for Windows (#73830) 2023-10-27 15:28:41 +02:00
.changelog-archive Docs: Remove old plugin docs, fix URLs to go to new dev portal (#75325) 2023-09-29 07:43:48 +01:00
.github Chore: Update stale config to run on issues as well (#80024) 2024-01-11 10:57:54 +00:00
.husky Chore: Remove colours from old husky cleanup pre-commit hook (#73395) 2023-08-18 13:10:18 +00:00
.vim Chore: Upgrade yarn and editor sdks (#42847) 2021-12-08 14:40:24 +01:00
.vscode K8s/Testdata: Expose testdata in standalone apiserver (#80248) 2024-01-10 17:45:23 +02:00
.yarn Chore: Update to typescript 5 (#76511) 2023-11-07 13:20:20 +00:00
conf Auth: configure SSO settings reload interval from the ini file (#80290) 2024-01-12 10:24:16 +02:00
contribute Docs: Update to US English per Writers Toolkit, plus clean up some grammar (#76298) 2024-01-05 16:40:11 +00:00
cue.mod Introduce "scuemata" system for CUE-based specification of Grafana objects (#32527) 2021-04-08 01:11:11 -07:00
devenv Auth: Update Authentik DB in DevEnv to fix expired SSL Certs (#80427) 2024-01-12 11:36:17 +01:00
docs updated Grafana Open Source documentation (#80357) 2024-01-11 10:08:00 -08:00
e2e UI: New share button and toolbar reorganize (#77563) 2024-01-08 10:42:24 -03:00
emails Alerting: Do not show grouping when grouplabels are empty in email template (#74090) 2023-08-30 13:02:23 +02:00
grafana-mixin DashboardSchema: Remove old unused legacy props style and timepicker.enable (#73879) 2023-08-28 12:18:17 +02:00
hack K8s: Expose testdata connection as an api-server (dev mode only) (#79726) 2024-01-09 12:26:24 -08:00
kinds GeneralSettings: Enable support for nowDelay (#79703) 2024-01-11 17:53:06 +01:00
local Packaging: Dockerfile copy local folder (#64766) 2023-03-14 14:44:11 -05:00
packages Update dependency @types/jest to v29.5.11 2024-01-12 11:08:22 +00:00
packaging Chore: Update ubuntu image to 22.04 (#70719) 2023-09-28 08:48:41 -05:00
pkg Auth: Implement the reload functionality from OAuth social connectors (#79795) 2024-01-12 10:25:51 +02:00
plugins-bundled Release: Bump version to 10.4.0-pre (#80412) 2024-01-12 10:21:50 +01:00
public Logs: add infinite scrolling to Explore (#76348) 2024-01-12 13:22:03 +02:00
scripts CI: Make --grafana-repo configurable via GRAFANA_REPO (#80378) 2024-01-11 17:53:02 +02:00
tools Image Rendering: Remove PhantomJS support (#23460) 2020-04-15 22:17:41 +02:00
.betterer.results Logs: add infinite scrolling to Explore (#76348) 2024-01-12 13:22:03 +02:00
.betterer.ts Betterer: Add our own regexp matcher (#79448) 2023-12-15 12:12:56 +02:00
.bra.toml Chore: Remove redundant codegen step from .bra.tom (#62764) 2023-02-02 14:53:54 +01:00
.browserslistrc Babel: Target more modern browsers, updates browserlistrc (#32573) 2021-04-01 10:32:00 +02:00
.codespellignore docs: what's new, add traces and k6 integration (#75401) 2023-10-04 12:04:48 -04:00
.dockerignore copy .github folder into golang build container since we rely on codeowners (#62122) 2023-01-25 10:31:16 -05:00
.drone.star Chore: Upgrade Go to 1.21.5 (#79329) 2023-12-15 10:36:49 +01:00
.drone.yml CI: Make --grafana-repo configurable via GRAFANA_REPO (#80378) 2024-01-11 17:53:02 +02:00
.editorconfig Chore: Enable PR testing in Drone (#26189) 2020-07-10 16:09:21 +02:00
.eslintignore Chore: fix .eslintignore to only ignore folder paths at the root (#72032) 2023-07-21 09:17:42 +01:00
.eslintrc Plugins: Externalise Azure Monitor data source (#79545) 2024-01-03 19:20:22 +00:00
.gitattributes CRLF (#28822) 2020-11-05 17:20:40 +01:00
.gitignore K8s: fix standalone command and add hack scripts (#79052) 2023-12-05 14:31:49 -08:00
.golangci.toml Plugins: Externalise Azure Monitor data source (#79545) 2024-01-03 19:20:22 +00:00
.levignore.js Adds levitate levignore configuration file to prevent breaking change notifications from expected typescript symbols (#74371) 2023-09-05 15:00:13 +02:00
.nvmrc Chore: Update to node 20 (#76097) 2023-10-26 09:34:50 +02:00
.pa11yci-pr.conf.js Chore: Remove core-js polyfills (#78715) 2023-11-29 11:12:23 -06:00
.pa11yci.conf.js Login: Improve accessibility of Login form (#78652) 2023-11-28 10:22:20 +00:00
.prettierignore Chore: Split OSS and Enterprise OAPI Spec Generation (#75133) 2023-09-25 15:34:57 -04:00
.prettierrc.js Toolkit: Remove deprecated plugin:build (#67485) 2023-04-28 14:33:16 +02:00
.yarnrc.yml Chore: Update to typescript 5 (#76511) 2023-11-07 13:20:20 +00:00
babel.config.json Chore: Remove core-js polyfills (#78715) 2023-11-29 11:12:23 -06:00
build.go Chore: move build command to importable package (#38726) 2021-09-03 11:24:21 -05:00
CHANGELOG.md Doc: fix remove link to enterprise issue for datasource permission breaking change changelog for 10.2.3 (#80030) 2024-01-04 17:37:03 +01:00
CODE_OF_CONDUCT.md Fixing typos (#70487) 2023-06-22 09:43:38 +01:00
CONTRIBUTING.md Docs: Fix link to developing plugins (#75816) 2023-10-03 09:57:53 -05:00
crowdin.yml Remove mandatory backport checks (#78678) 2023-11-28 14:03:32 +00:00
cypress.config.js Chore: Remove compareScreenshot + blink-diff dependency from core (#77920) 2023-11-09 13:18:12 +00:00
Dockerfile Chore: Upgrade Go to 1.21.5 (#79329) 2023-12-15 10:36:49 +01:00
embed.go extract kindsys to external library (#64562) 2023-03-15 12:04:28 -04:00
go.mod Grafana app platform: an aggregator cmd and package (#79948) 2024-01-08 22:33:42 +02:00
go.sum Grafana app platform: an aggregator cmd and package (#79948) 2024-01-08 22:33:42 +02:00
GOVERNANCE.md Governance: Update workplace (#63997) 2023-04-03 13:54:54 +02:00
HALL_OF_FAME.md Chore: Introducing a Grafana HALL_OF_FAME.md (#45878) 2022-05-18 20:13:11 +00:00
ISSUE_TRIAGE.md Docs: Update triage guide re feature requests (#73974) 2023-08-31 11:30:39 +02:00
jest.config.js Data trails: Sort related metrics and hide empty panels (#79397) 2023-12-20 13:14:57 +00:00
latest.json Chore: update latest.json to 10.2.3 (#79685) 2023-12-19 16:56:34 +00:00
lefthook.rc Chore: Replace Husky/Lint-staged with Lefthook (#66608) 2023-08-17 09:56:52 +00:00
lefthook.yml Chore: Replace Husky/Lint-staged with Lefthook (#66608) 2023-08-17 09:56:52 +00:00
lerna.json Release: Bump version to 10.4.0-pre (#80412) 2024-01-12 10:21:50 +01:00
LICENSE Re-license Grafana to AGPLv3 (#33184) 2021-04-20 19:03:30 +02:00
LICENSING.md Plugins: Remove deprecated grafana-toolkit (#73489) 2023-09-05 09:56:04 +02:00
MAINTAINERS.md Update codeowners (#73159) 2023-09-28 11:31:26 -07:00
Makefile Chore: Upgrade Go to 1.21.5 (#79329) 2023-12-15 10:36:49 +01:00
metadata.md Docs: Document plugin authentication in metadata schema (#32703) 2021-04-08 18:13:18 +02:00
NOTICE.md Prettier: Fix all markdown files and add markdown files to CI verify step (#39776) 2021-09-29 14:34:40 +02:00
package.json Update dependency @types/jest to v29.5.11 2024-01-12 11:08:22 +00:00
README.md Docs: Invert logo color for dark theme in README (#76012) 2023-11-07 09:54:12 +00:00
ROADMAP.md Prettier: Fix all markdown files and add markdown files to CI verify step (#39776) 2021-09-29 14:34:40 +02:00
SECURITY.md Docs: Update SECURITY.md (#67985) 2023-06-21 07:34:42 +01:00
stylelint.config.js Update dependency stylelint-config-sass-guidelines to v10 (#71632) 2023-07-19 16:05:06 +01:00
SUPPORT.md Prettier: Fix all markdown files and add markdown files to CI verify step (#39776) 2021-09-29 14:34:40 +02:00
tsconfig.json Build testdata frontend standalone (#75833) 2023-10-16 17:31:43 +02:00
UPGRADING_DEPENDENCIES.md Bump publish docs node version (#46475) 2022-03-11 21:28:12 +01:00
WORKFLOW.md Docs: Update contrib documentation around backports (#73558) 2023-08-30 08:14:15 +02:00
yarn.lock Update dependency @types/jest to v29.5.11 2024-01-12 11:08:22 +00:00

Grafana Logo (Light) Grafana Logo (Dark)

The open-source platform for monitoring and observability

License Drone 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:

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.