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
Leonor Oliveira a03652494c
Dual Writer simplification (#93852)
* All objects should have an UID

* Now with a different error message

* Simplify create on DW 2: use the same object to write to both storages

* Run only one test

* Add check for status code

* Add name if it's not present in mode2

* Populate UID in legacy

* Remove logs and commented code

* Change dualwriter1

* Remove commented code

* Fix list test

* remove get on update from dualwriter 2

* Get object before updating. Better var renaming

* Finish rebasing

* Comment test

* Uncomment tests

* Update legacy first. Add preconditions

* Remove preconditions

* Fix update test

* copy RV from unified to legacy objects

* revert changes to playlist xorm store

* Improve logging. Add go routines for mode3

* Add tests for async funcs in mode3

* Lint

* Lint

* Lint. Start to fix tests

* Fix watcher tests

* Fix store tests

* Fiinish fixing watcher tests

* Fix server tests

* add name check

* Update pkg/apiserver/rest/dualwriter_mode1.go

Co-authored-by: Bruno Abrantes <bruno.abrantes@grafana.com>

* All objects should have an UID

* Now with a different error message

* Simplify create on DW 2: use the same object to write to both storages

* Run only one test

* Add check for status code

* Add name if it's not present in mode2

* Populate UID in legacy

* Remove logs and commented code

* Change dualwriter1

* Remove commented code

* Fix list test

* remove get on update from dualwriter 2

* Get object before updating. Better var renaming

* Finish rebasing

* Comment test

* Uncomment tests

* Fix update test

* revert changes to playlist xorm store

* Improve logging. Add go routines for mode3

* Lint

* Fix watcher tests

* Fiinish fixing watcher tests

* Add mode 5 with etcd test case. Add early check to fail on populated RV in payload

* we can't set RV to the found object when updating

* Lint

* Don't fail on update playlists

* Name should not be different when updating and it should be not empty on creating

* Fix tests

* Update pkg/apiserver/rest/dualwriter_mode2.go

Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>

* Lint

* Fix mode 5 tests

* Lint

* Add generateName condition on every mode. Fix tests

* Lint

* Add condition on where name or generate name have to be set

* Fix test

* Lint

* Fix folders test

* We dont need to send name for mode1

* Fail if UID is not present

* Remove change from not running test

* Remove unused line

* Lint

* Update pkg/storage/unified/apistore/store.go

Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>

* Improve error message

* Fix broken watcher test

* Fail on name mismatch on update

* Remove log

* Make sure UIDs match on create in both stores

* Lint

* Write first to unified storage

* Remove uid setting

* Remove RV only in mode2

* Fix test. Remove log line

* test

* No need to asser on RV in mode3

* Remove RV check due to race condition

* Update dualwriter.go

Co-authored-by: Georges Chaudy <chaudyg@gmail.com>

* Update pkg/storage/unified/client.go

* remove unused parameter

* log an error for object is missing UID instead of returning an error

* remove obj.SetResourceVersion("")

* log an error for object is missing UID instead of returning an error

* FInalise merge

* Move RV check to where it was

* Remove name check

* Remove server check for backwards compatibility

* Remove unused fn

* Move test checks for another PR

* Dont commit go work sum changes

* Only log error if RV is present for now.

---------

Co-authored-by: Todd Treece <todd.treece@grafana.com>
Co-authored-by: Bruno Abrantes <bruno.abrantes@grafana.com>
Co-authored-by: Todd Treece <360020+toddtreece@users.noreply.github.com>
Co-authored-by: Georges Chaudy <chaudyg@gmail.com>
2024-10-23 10:29:41 +02:00
.bingo Chore: Bump Go to 1.23.0 (#92105) 2024-08-21 11:40:42 -04:00
.changelog-archive Update links to default Grafana branch (#83025) 2024-02-29 17:08:45 +02:00
.github Expressions: add core services project on expressions label (#94991) 2024-10-22 13:05:45 -04: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 Chore: vscode devenv cleanup (#94290) 2024-10-14 16:37:04 +03:00
.yarn add new yarn version 2024-10-21 13:04:13 +03:00
apps Chore: Update SDK to v0.255.0 (#94894) 2024-10-18 10:42:32 +02:00
conf Frontend Monitoring: Add config option to enable all default instrumentations (#94862) 2024-10-18 15:35:39 +02:00
contribute Docs: Fix broken links in contribute/**/*.md (#92182) 2024-09-12 15:51:30 +03:00
cue.mod Introduce "scuemata" system for CUE-based specification of Grafana objects (#32527) 2021-04-08 01:11:11 -07:00
devenv Alerting: Support tls config for webhook receiver (#93513) 2024-10-22 12:44:32 +02:00
docs format datasources list with columns (#95048) 2024-10-23 08:18:22 +00:00
e2e ElasticSearch: Add playwright smoke test (#95092) 2024-10-21 13:13:40 -07:00
emails Refactor: Email verification (#84393) 2024-03-14 13:25:28 +01:00
grafana-mixin DashboardSchema: Remove old unused legacy props style and timepicker.enable (#73879) 2023-08-28 12:18:17 +02:00
hack Chore: Update k8s.io dependencies to v0.31.1 (#93696) 2024-10-03 15:50:15 -04:00
kinds Dashboard Scene: Fix snapshots not displaying variables values (#88967) 2024-08-20 17:05:12 +02:00
local Packaging: Dockerfile copy local folder (#64766) 2023-03-14 14:44:11 -05:00
packages Actions: Improve drag and drop experience (#94263) 2024-10-23 09:24:06 +02:00
packaging Docker: Fix renderer plugin in custom Dockerfile (#88223) 2024-05-30 10:27:26 +02:00
pkg Dual Writer simplification (#93852) 2024-10-23 10:29:41 +02:00
plugins-bundled Chore: Delete Input Datasource (#83163) 2024-03-18 09:48:19 +01:00
public Actions: Improve drag and drop experience (#94263) 2024-10-23 09:24:06 +02:00
scripts Chore: Increase fork ts webpack memory to 5GB (#94810) 2024-10-21 09:42:35 +02:00
tools Image Rendering: Remove PhantomJS support (#23460) 2020-04-15 22:17:41 +02:00
.betterer.results RolePickerDrawer: Replace RolePicker modal for drawer (#94801) 2024-10-22 16:21:10 +02:00
.betterer.results.json Table Panel: Move inspector into drawer component (#88196) 2024-05-30 03:33:05 +07:00
.betterer.ts Chore: Type improvements (#93267) 2024-09-13 09:50:55 +01:00
.bra.toml Chore: Avoid update-workspace when watching go files (#94716) 2024-10-15 15:40:51 +02: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 CI: Add new RRC pipeline (#90731) 2024-07-30 14:01:10 +01:00
.drone.yml CI: Additional changes for +security versions (#94854) 2024-10-17 22:13:42 +03:00
.editorconfig Chore: Enable PR testing in Drone (#26189) 2020-07-10 16:09:21 +02:00
.eslintignore E2E: Add support for building test plugins (#91873) 2024-08-23 09:00:03 +02:00
.eslintrc Alerting: Add eslint testing-library plugin dependency and create separate ESLint config (#91052) 2024-07-30 15:16:54 +03:00
.gitattributes CRLF (#28822) 2020-11-05 17:20:40 +01:00
.gitignore Chore: Remove MSW worker from source control and rely on installation instead (#93268) 2024-09-12 16:03:50 +03:00
.golangci.toml Revert read replica POC (#93551) 2024-09-25 15:21:39 -08: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
.nxignore Alerting/Chore: Mock API (MSW) in browser (#89223) 2024-09-04 10:22:03 +01:00
.pa11yci-pr.conf.js Pa11y: Decrease error thresholds for PRs (#85178) 2024-03-27 12:29:54 +01:00
.pa11yci.conf.js Login: Improve accessibility of Login form (#78652) 2023-11-28 10:22:20 +00:00
.prettierignore Alerting/Chore: Mock API (MSW) in browser (#89223) 2024-09-04 10:22:03 +01:00
.prettierrc.js Toolkit: Remove deprecated plugin:build (#67485) 2023-04-28 14:33:16 +02:00
.trivyignore CI: Add Trivy GitHub Action (#88987) 2024-06-10 16:53:48 -04:00
.yarnrc.yml Update Yarn to v4.5.1 2024-10-21 13:04:13 +03:00
build.go Chore: move build command to importable package (#38726) 2021-09-03 11:24:21 -05:00
CHANGELOG.md Release: update changelog for 11.3.0 (#95197) 2024-10-22 12:39:16 -07: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 I18n: Fix path for Crowdin upload (#81733) 2024-02-05 13:33:37 +01:00
cypress.config.js E2E: Add SMTP tester (#88392) 2024-06-18 14:32:19 +02:00
Dockerfile Playlists: Migrate to App SDK codegen (#93246) 2024-09-13 16:27:40 -04:00
embed.go Core: Remove thema and kindsys dependencies (#84499) 2024-03-21 11:11:29 +01:00
go.mod Plugins: Update to latest go plugin SDK (0.256.0) (#95065) 2024-10-22 15:44:53 +01:00
go.sum Plugins: Update to latest go plugin SDK (0.256.0) (#95065) 2024-10-22 15:44:53 +01:00
go.work Alerting: Fix panics when attempting to create an Alertmanager after failing (#94023) 2024-09-30 13:50:35 -03:00
go.work.sum Expressions: add core services project on expressions label (#94991) 2024-10-22 13:05:45 -04:00
GOVERNANCE.md Сorrection of spelling errors (#83565) 2024-03-01 11:00:15 +01:00
HALL_OF_FAME.md Docs: Update HALL_OF_FAME.md (#79775) 2024-02-26 15:04:58 +01:00
jest.config.js NodeGraph: Add msagl and the layered layout code (#88375) 2024-05-28 17:04:03 +02:00
latest.json Release: Deprecate latest.json and replace with api call to grafana.com (#80537) 2024-01-16 11:19:32 +00:00
lefthook.rc Chore: Replace Husky/Lint-staged with Lefthook (#66608) 2023-08-17 09:56:52 +00:00
lefthook.yml Chore: Remove i18n psuedo precommit hook (#86840) 2024-04-24 13:08:19 +02:00
lerna.json Release: Bump version to 11.4.0-pre (#94569) 2024-10-11 11:31:04 +01:00
LICENSE Re-license Grafana to AGPLv3 (#33184) 2021-04-20 19:03:30 +02:00
LICENSING.md Grafana packages: Remove E2E workspace (#86416) 2024-04-25 07:12:43 +02:00
MAINTAINERS.md Update codeowners (#73159) 2023-09-28 11:31:26 -07:00
Makefile Zanzana: bootstrap authz server (#95036) 2024-10-21 14:58:57 +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
nx.json Build: Nx improvements (#88341) 2024-10-15 14:25:45 +02:00
package.json Update scenes to v5.20.3 2024-10-22 12:03:41 +00:00
playwright.config.ts ElasticSearch: Add playwright smoke test (#95092) 2024-10-21 13:13:40 -07:00
project.json Build: Nx improvements (#88341) 2024-10-15 14:25:45 +02:00
README.md docs: Readme (#94657) 2024-10-15 09:38:09 +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 to v16 (#83252) 2024-02-23 11:56:38 +02: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 Swagger: Add a custom swagger/api page (#91785) 2024-08-14 09:03:00 +03:00
WORKFLOW.md Minor correction done in WORKFLOW.md (#80505) 2024-04-12 17:56:10 +02:00
yarn.lock Update dependency @grafana/faro-web-tracing to v1.11.0 (#95170) 2024-10-22 16:16:45 +01: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.