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
Joan López de la Franca Beltran ef631582ba
Users: Improve conflict error handling (#26958)
* API: Improve error handling (#26934)

* New ErrUserAlreadyExists error has been introduced

* Create user endpoint returns 412 Precondition Failed on ErrUserAlreadyExists errors

* Make ErrUserAlreadyExists error message clearer

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>

* Use errors.Is instead of equality comparator on AdminCreateUser handler

* Improve sqlstore/user test definition

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Improve sqlstore/user tests for ErrUserAlreadyExists cases

* Remove no needed string fmt and err declaration on sqlstore/user tests

* Code improvements for sqlstore/user tests

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Use err.Error() instead of sentinel error value on AdminCreateUser

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Add ErrUserAlreadyExists handling for signup & org invite use cases

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-13 14:38:54 +02:00
.circleci CI: Upgrade build image (#26904) 2020-08-10 19:13:59 +02:00
.github Issue Template: @grafana/ui component request (#25981) 2020-07-09 18:00:28 +03:00
conf Generic OAuth: customize login and id_token attributes (#26577) 2020-08-03 17:33:27 +03:00
contribute Update documentation-style-guide.md (#26706) 2020-07-30 11:31:49 -07:00
devenv Templating: Fixed recursive url update issue for textbox variable (#26981) 2020-08-13 14:38:27 +02:00
docs Docs: Adding reference for the default database (#26950) 2020-08-12 12:35:24 -07:00
e2e Templating: Fixed recursive url update issue for textbox variable (#26981) 2020-08-13 14:38:27 +02:00
emails Chore: MEGA - Make Eslint Great Again 💅 (#26094) 2020-08-11 17:52:44 +02:00
packages Templating: Fixed recursive url update issue for textbox variable (#26981) 2020-08-13 14:38:27 +02:00
packaging Docker: Don't upgrade packages when installing (#24132) (#26055) 2020-07-28 17:07:23 +02:00
pkg Users: Improve conflict error handling (#26958) 2020-08-13 14:38:54 +02:00
plugins-bundled Chore: bumped version to next minor. (#25971) 2020-07-01 13:26:36 +02:00
public Templating: Fixed recursive url update issue for textbox variable (#26981) 2020-08-13 14:38:27 +02:00
scripts Chore: MEGA - Make Eslint Great Again 💅 (#26094) 2020-08-11 17:52:44 +02:00
tools Image Rendering: Remove PhantomJS support (#23460) 2020-04-15 22:17:41 +02:00
.babelrc Performance/Webpack: Introduces more aggressive code-splitting and other perf improvements (#18544) 2019-09-03 09:29:02 +01:00
.bra.toml Chore: Upgrade to Go 1.14 (#23371) 2020-04-08 14:13:05 +02:00
.browserslistrc Fix: Autoprefixer is now working (#16351) 2019-04-02 18:15:30 +02:00
.dockerignore remove duplicated /tmp entry in .dockerignore 2018-08-09 09:10:53 +02:00
.drone.star Drone: Enable master branch testing (#26367) 2020-07-17 13:52:09 +02:00
.drone.yml CI: Upgrade build image (#26904) 2020-08-10 19:13:59 +02:00
.editorconfig Chore: Enable PR testing in Drone (#26189) 2020-07-10 16:09:21 +02:00
.eslintrc Chore: MEGA - Make Eslint Great Again 💅 (#26094) 2020-08-11 17:52:44 +02:00
.gitignore Chore: MEGA - Make Eslint Great Again 💅 (#26094) 2020-08-11 17:52:44 +02:00
.prettierignore Updated prettierignore 2019-03-08 13:56:21 +01:00
.prettierrc.js Prettier: Add prettier config that imports prettier from toolkit (#23729) 2020-04-21 17:23:49 +02:00
api-extractor.json Docs: added code comments for everything in the @grafana/runtime package. (#23456) 2020-04-15 10:46:51 +02:00
build.go Build: Let building of Go code work even if $GOPATH isn't set (#25805) 2020-06-25 08:38:17 +02:00
CHANGELOG.md Docs: Update changelog for 7.1.3 release (#26830) 2020-08-06 15:11:51 +02:00
CODE_OF_CONDUCT.md Change conduct contact email address (#26619) 2020-07-27 14:41:27 +02:00
CONTRIBUTING.md Updated URL for developing plugins (#25521) 2020-06-11 10:43:20 +02:00
Dockerfile CI: Upgrade Go and Node versions in CI build image (#26888) 2020-08-10 10:45:35 +02:00
Dockerfile.ubuntu CI: Upgrade Go and Node versions in CI build image (#26888) 2020-08-10 10:45:35 +02:00
go.mod Chore: Drop xerrors dependency (#26718) 2020-07-31 09:45:20 +02:00
go.sum Chore: Drop xerrors dependency (#26718) 2020-07-31 09:45:20 +02:00
GOVERNANCE.md Chore: Fix spelling (#25905) 2020-06-30 00:13:25 -07:00
Gruntfile.js Chore: MEGA - Make Eslint Great Again 💅 (#26094) 2020-08-11 17:52:44 +02:00
ISSUE_TRIAGE.md Chore: fix spelling of GitHub (#26182) 2020-07-22 08:12:50 -07:00
jest.config.js Panel Inspect: use monaco for json display (#25251) 2020-06-29 10:58:47 -07:00
latest.json Update latest.json (#26833) 2020-08-06 17:33:50 +02:00
lerna.json Chore: bumped version to next minor. (#25971) 2020-07-01 13:26:36 +02:00
LICENSE Small license correction 2019-03-21 16:36:24 +01:00
MAINTAINERS.md Give Grafana a public governance (#24802) 2020-05-18 19:26:35 +02:00
Makefile CI: Upgrade golangci-lint and base image (#26892) 2020-08-10 18:38:53 +02:00
NOTICE.md Update NOTICE.md 2018-08-09 10:51:04 +02:00
package.json Chore: MEGA - Make Eslint Great Again 💅 (#26094) 2020-08-11 17:52:44 +02:00
PLUGIN_DEV.md Update PLUGIN_DEV.md (#19387) 2019-09-26 12:40:47 +02:00
README.md Docs: Remove GrafanaCONline info from readme (#25655) 2020-06-17 12:57:40 +02:00
ROADMAP.md Update ROADMAP.md (#19384) 2019-09-25 07:18:35 +02:00
SECURITY.md Docs: Fix broken link (#25664) 2020-06-18 14:08:26 +02:00
SUPPORT.md Update SUPPORT.md (#19383) 2019-09-25 07:17:01 +02:00
tsconfig.json Chore: Fix all Typescript strict null errors (#26204) 2020-07-10 12:46:59 +02:00
UPGRADING_DEPENDENCIES.md Backend: Remove Go vendor folder (#23796) 2020-04-23 13:23:51 -04:00
WORKFLOW.md Add WORKFLOW.md (#25461) 2020-06-16 20:47:08 +02:00
yarn.lock Chore: MEGA - Make Eslint Great Again 💅 (#26094) 2020-08-11 17:52:44 +02:00

Grafana

The open-source platform for monitoring and observability.

License Circle CI 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:

  • Visualize: Fast and flexible client side graphs with a multitude of options. Panel plugins for many different way 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

License

Grafana is distributed under the Apache 2.0 License.