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 84f94cdc24
Logs: Show active state of "filter for value" buttons in Logs Details (#70328)
* Datasource test: fix describe nesting

* Parsing: export handleQuotes function

* Modify query: add functions to detect the presence of a label and remove it

* Loki: add support to toggle filters if already present

* Datasource test: fix describe nesting

* Loki: add support to toggle filter out if present

* Remove label: handle escaped values

* Datasource: add test case for escaped label values

* Loki: remove = filter when applying !=

* Remove selector: add support for Selector node being far from Matcher

* Modify query: add unit tests

* Elasticsearch: create modifyQuery for elastic

* Elastic modify query: implement functions

* Elasticsearch: implement modifyQuery functions in datasource

* Elasticsearch: update datasource test

* Loki modify query: check for streamSelectorPositions length

* Elasticsearch query has filter: escape filter value in regex

* Remove unused type

* Modify query: add functions to detect the presence of a label and remove it

* Remove label: handle escaped values

* Logs: create props to check for label filters in the query

* Log Details Row: use label state props to show visual feedback

* Make isCallbacks async

* Explore: add placeholder for checking for filter in query

* Datasource: define new API method

* Inspect query: add base implementation

* Remove isFilterOutLabelActive as it will not be needed

* Check for "isActive" on every render

Otherwise the active state will be out of sync

* Elasticsearch: implement inspectQuery in the datasource

* Logs: update test

* Log details: update test

* Datasources: update tests

* Inspect query: rename to analize query to prevent confusion

* Datasource types: mark method as alpha

* Explore: add comment to log-specific functions

* Remove duplicated code from bad rebase

* Remove label filter: check node type

* getMatchersWithFilter: rename argument

* Fix bad rebase

* Create DataSourceWithQueryManipulationSupport interface

* Implement type guard for DataSourceWithQueryManipulationSupport

* DataSourceWithQueryManipulationSupport: move to logs module

* hasQueryManipulationSupport: change implementation

`modifyQuery` comes from the prototype.

* DataSourceWithQueryManipulationSupport: expand code comments

* AnalyzeQueryOptions: move to logs module

* DataSourceWithQueryManipulationSupport: add support for more return types

* Fix merge error

* Update packages/grafana-data/src/types/logs.ts

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>

* DatasourceAPI: deprecate modifyQuery

* Explore: refactor isFilterLabelActive

* DataSourceWithQueryModificationSupport: rename interface

* Split interfaces into Analyze and Modify

* Query analysis: better name for interface

* Fix guard

* Create feature flag for active state

* Use new feature flag in Explore

* DataSourceToggleableQueryFiltersSupport: create a specific interface for this feature

* Rename feature flag

* De-deprecate modifyQuery

* DataSourceToggleableQueryFiltersSupport: Rethink types and methods

* Explore: adjust modifyQuery and isFilterLabelActive to new methods

* Loki: implement new interface and revert modifyQuery

* DataSourceToggleableQueryFiltersSupport: better name for arguments

* Elasticsearch: implement new interface and revert modifyQuery

* Loki: better name for arguments

* Explore: document current limitation on isFilterLabelActive

* Explore: place toggleable filters under feature flag

* Loki: add tests for the new methods

* Loki: add legacy modifyQuery tests

* Elasticsearch: add tests for the new methods

* Elasticsearch: add legacy modifyQuery tests

* Toggle filter action: improve type values

* Logs types: update interface description

* DataSourceWithToggleableQueryFiltersSupport: update interface name

* Update feature flag description

* Explore: add todo comment for isFilterLabelActive

---------

Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
2023-07-24 11:22:47 +03:00
.bingo Chore: Update golangci-lint to v1.53.3 (#71771) 2023-07-18 10:03:35 +02:00
.changelog-archive Docs: Add missing entries to changelog for 9.4.9 (#70741) 2023-06-27 14:32:35 +03:00
.github Chore: Use GITHUB_TOKEN in issue-labeled instead of grot token (#72127) 2023-07-21 17:52:02 +02:00
.husky Chore: do not run husky hooks on backend-only changes (#48439) 2022-04-29 14:01:02 +01:00
.vim Chore: Upgrade yarn and editor sdks (#42847) 2021-12-08 14:40:24 +01:00
.vscode Add debug option for Golang tests in vscode (#61983) 2023-01-24 14:44:44 +01:00
.yarn Chore: Update prettier yarn sdk (#71915) 2023-07-19 16:15:31 +03:00
conf Config: Add [aws][external_id] to ini files (#72026) 2023-07-20 10:37:41 -04:00
contribute Chore: Add auto-milestone workflow for pull-requests (#71177) 2023-07-17 09:55:35 +02:00
cue.mod Introduce "scuemata" system for CUE-based specification of Grafana objects (#32527) 2021-04-08 01:11:11 -07:00
devenv Devenv: add exemplar to self-instrumentation (#72069) 2023-07-21 18:02:20 +02:00
docs Logs: Show active state of "filter for value" buttons in Logs Details (#70328) 2023-07-24 11:22:47 +03:00
e2e Chore: Upgrade prettier to v3 (#71764) 2023-07-17 15:58:22 +01:00
emails Show the alertname for each alert in plain text email (#70183) 2023-06-16 10:06:43 -04:00
grafana-mixin grafana-mixin: Fix expression for GrafanaRequestsFailing alert (#63382) 2023-05-04 14:35:36 +02:00
kinds Schemas: minor updates from the k8s branch (#71688) 2023-07-21 19:17:11 +03:00
local Packaging: Dockerfile copy local folder (#64766) 2023-03-14 14:44:11 -05:00
packages Logs: Show active state of "filter for value" buttons in Logs Details (#70328) 2023-07-24 11:22:47 +03:00
packaging Build: Update plugin installation in custom Dockerfile (#68310) 2023-05-11 16:03:02 -04:00
pkg Logs: Show active state of "filter for value" buttons in Logs Details (#70328) 2023-07-24 11:22:47 +03:00
plugins-bundled Release: Bump version to 10.1.0-pre (#67613) 2023-05-02 09:48:59 +03:00
public Logs: Show active state of "filter for value" buttons in Logs Details (#70328) 2023-07-24 11:22:47 +03:00
scripts CI: Run only Grafana builds on RGM for grafana/grafana (#72144) 2023-07-21 15:50:06 -05:00
tools
.betterer.results NestedFolders: Rename FolderPicker to OldFolderPicker (#72098) 2023-07-21 13:24:43 +00:00
.betterer.ts Update dependency glob to v10 (#71554) 2023-07-13 17:07:10 +03: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
.dockerignore copy .github folder into golang build container since we rely on codeowners (#62122) 2023-01-25 10:31:16 -05:00
.drone.star [WIP] CI: Removes enterprise specific pipelines and steps (#70815) 2023-07-14 14:18:09 +03:00
.drone.yml CI: Run only Grafana builds on RGM for grafana/grafana (#72144) 2023-07-21 15:50:06 -05: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 Chore: Avoid Grafana core imports for the test data source (#71956) 2023-07-20 09:34:19 +02:00
.gitattributes CRLF (#28822) 2020-11-05 17:20:40 +01:00
.gitignore CI: Ignore .pr-body.txt file (#70798) 2023-06-28 12:12:25 +03:00
.golangci.toml Chore: Add linter rule to avoid imports from Grafana core in test datasource (#71779) 2023-07-18 15:57:31 +02:00
.linguirc I18n: Change locale format to IETF language tag (#52596) 2022-07-22 10:50:00 -04:00
.nvmrc Chore: Move to node 18 again (#62079) 2023-01-26 10:19:39 +00:00
.pa11yci-pr.conf.js Login: Show additional information when prompting to change password (#69537) 2023-06-06 11:24:46 +01:00
.pa11yci.conf.js A11y: Add Dashboard Settings to Pa11y CI and Refactor local a11y report (#54476) 2022-09-12 15:14:45 +02:00
.prettierignore Swagger: Fix circular reference (#62673) 2023-02-02 13:18:04 +02:00
.prettierrc.js Toolkit: Remove deprecated plugin:build (#67485) 2023-04-28 14:33:16 +02:00
.yarnrc.yml Update Yarn to v3.6.0 (#69437) 2023-06-05 10:43:09 +01:00
babel.config.json Revert: Babel removal and runtime update (#63641) 2023-02-23 09:22:35 -05:00
build.go Chore: move build command to importable package (#38726) 2021-09-03 11:24:21 -05:00
CHANGELOG.md Changelog: Updated changelog for 9.5.6 (#71342) 2023-07-11 12:48:05 +02:00
CODE_OF_CONDUCT.md Fixing typos (#70487) 2023-06-22 09:43:38 +01:00
CONTRIBUTING.md Docs: Correct contributing.md i18n message (#66103) 2023-04-06 18:42:40 +02:00
crowdin.yml I18n: Update crowdin config and codeowners (#57264) 2022-10-20 14:59:02 +01:00
Dockerfile Chore: Upgrade Go to 1.20.6 (#71440) 2023-07-12 15:32:40 +02:00
embed.go extract kindsys to external library (#64562) 2023-03-15 12:04:28 -04:00
go.mod Redshift: Support caching async aws queries (#71682) 2023-07-21 11:34:07 -04:00
go.sum Redshift: Support caching async aws queries (#71682) 2023-07-21 11:34:07 -04: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 ISSUE_TRIAGE.md: update (#60299) 2023-01-19 18:21:36 +01:00
jest.config.js Update dependency sinon to v15.2.0 (#71431) 2023-07-12 16:20:46 +03:00
latest.json Chore: update latest.json to 10.0.1 (#70550) 2023-06-22 16:44:43 -03:00
lerna.json Improve empty state when no ds picker were found (#67422) 2023-05-04 13:17:03 +03:00
LICENSE Re-license Grafana to AGPLv3 (#33184) 2021-04-20 19:03:30 +02:00
LICENSING.md Explore: Refactor trace view and move to core (#61938) 2023-01-27 14:13:17 +00:00
MAINTAINERS.md Add Docs maintainers (#51287) 2022-06-22 13:10:30 -07:00
Makefile Chore: Upgrade Go to 1.20.6 (#71440) 2023-07-12 15:32:40 +02: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 Loki: Add the ability to prettify logql queries (#64337) 2023-07-21 13:03:56 +01:00
README.md Docs: Add tested with BrowserStack to README (#70512) 2023-06-22 14:13:50 +02: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 Bump scenes to 0.17.2 (#70893) 2023-07-05 07:24:48 -07:00
UPGRADING_DEPENDENCIES.md Bump publish docs node version (#46475) 2022-03-11 21:28:12 +01:00
WORKFLOW.md Prettier: Fix all markdown files and add markdown files to CI verify step (#39776) 2021-09-29 14:34:40 +02:00
yarn.lock Loki: Add the ability to prettify logql queries (#64337) 2023-07-21 13:03:56 +01:00

Grafana

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.