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
sh0rez 534ece064b
pkg/web: closure-style middlewares (#51238)
* pkg/web: closure-style middlewares

Switches the middleware execution model from web.Handlers in a slice to
web.Middleware.
Middlewares are temporarily kept in a slice to preserve ordering, but
prior to execution they are applied, forming a giant call-stack, giving
granular control over the execution flow.

* pkg/middleware: adapt to web.Middleware

* pkg/middleware/recovery: use c.Req over req

c.Req gets updated by future handlers, while req stays static.

The current recovery implementation needs this newer information

* pkg/web: correct middleware ordering

* pkg/webtest: adapt middleware

* pkg/web/hack: set w and r onto web.Context

By adopting std middlewares, it may happen they invoke next(w,r) without
putting their modified w,r into the web.Context, leading old-style
handlers to operate on outdated fields.

pkg/web now takes care of this

* pkg/middleware: selectively use future context

* pkg/web: accept closure-style on Use()

* webtest: Middleware testing

adds a utility function to web/webtest to obtain a http.ResponseWriter,
http.Request and http.Handler the same as a middleware that runs would receive

* *: cleanup

* pkg/web: don't wrap Middleware from Router

* pkg/web: require chain to write response

* *: remove temp files

* webtest: don't require chain write

* *: cleanup
2022-08-09 14:58:50 +02:00
.bingo API: Universal swagger generation (#51033) 2022-06-27 10:54:31 +03:00
.changelog-archive Changelog: Move to a folder structure for change logs (#50361) 2022-06-08 15:59:47 -05:00
.github Dashboard: Spelling corrections in end-user visible dialogs (#53340) 2022-08-09 10:19:30 +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 Chore: Fix Debug Jest test command for vscode (#45420) 2022-02-17 14:18:09 +01:00
.yarn Update Monthly patch updates (#52885) 2022-07-27 16:02:48 +01:00
conf Revert "Explore: Add Mixed Datasource (#51605)" (#52889) 2022-07-27 10:17:31 -05:00
contribute update e2e docs to remove aria-label mentions (#52999) 2022-07-29 16:42:53 +01:00
cue.mod Introduce "scuemata" system for CUE-based specification of Grafana objects (#32527) 2021-04-08 01:11:11 -07:00
devenv Fix groups and useres indentation (#53414) 2022-08-09 08:05:15 +02:00
docs Dashboard: Spelling corrections in end-user visible dialogs (#53340) 2022-08-09 10:19:30 +02:00
e2e Dashboard: Spelling corrections in end-user visible dialogs (#53340) 2022-08-09 10:19:30 +02:00
emails Alerting: Preserve new-lines from custom email templates in rendered email (#52253) 2022-07-19 11:05:50 -05:00
grafana-mixin grafana-mixin: Fix GrafanaRequestsFailing alert (#43116) 2021-12-20 15:12:37 +01:00
packages Add controls support + remove UseState from TimeRangePicker.story.tsx (#53376) 2022-08-09 11:20:03 +01:00
packaging fix dockerfile for oracle alpine image (#52667) 2022-07-25 10:12:22 -04:00
pkg pkg/web: closure-style middlewares (#51238) 2022-08-09 14:58:50 +02:00
plugins-bundled update versions (#53167) 2022-08-02 11:55:46 -04:00
public Histogram: Send proper dataframe to PlotLegend (#53284) 2022-08-09 15:39:42 +03:00
scripts CI: move grabpl build-docker from grabpl to grafana (#53077) 2022-08-09 09:43:28 +03:00
tools Image Rendering: Remove PhantomJS support (#23460) 2020-04-15 22:17:41 +02:00
.betterer.results Chore: convert DashboardGrid test to RTL (#53405) 2022-08-08 17:43:35 +02:00
.betterer.ts Chore: Make betterer tests more stable (#51703) 2022-07-04 12:13:20 +01:00
.bra.toml bra: Ignore wildcard generated go files (#51399) 2022-06-24 20:55:49 +02:00
.browserslistrc Babel: Target more modern browsers, updates browserlistrc (#32573) 2021-04-01 10:32:00 +02:00
.dockerignore Add support for local Makefile to docker (#41296) 2021-11-04 11:13:10 -03:00
.drone.star CI: Refactor/Reorder *.star files (#52384) 2022-07-20 09:43:19 -04:00
.drone.yml CI: move grabpl build-docker from grabpl to grafana (#53077) 2022-08-09 09:43:28 +03:00
.editorconfig Chore: Enable PR testing in Drone (#26189) 2020-07-10 16:09:21 +02:00
.eslintignore Chore: Align on 'internationalization' for feature name (#52585) 2022-07-21 06:31:08 -04:00
.eslintrc Typed variables pt4: Remove generics from getVariable (#53017) 2022-08-05 13:44:52 +01:00
.gitattributes CRLF (#28822) 2020-11-05 17:20:40 +01:00
.gitignore Build: Introduce ESM and Treeshaking to NPM package builds (#51517) 2022-08-03 15:47:09 +02:00
.linguirc I18n: Change locale format to IETF language tag (#52596) 2022-07-22 10:50:00 -04:00
.nvmrc Update Yarn to v3.2.0 (#45714) 2022-03-09 10:10:51 +01:00
.pa11yci-pr.conf.js Chore: use new pa11y-ci version (#52953) 2022-07-28 12:49:41 -04:00
.pa11yci.conf.js Chore: use new pa11y-ci version (#52953) 2022-07-28 12:49:41 -04:00
.prettierignore Implementing OpenApi 3 specs (converted from Swagger 2) (#53243) 2022-08-04 13:51:12 -03:00
.prettierrc.js Prettier: Add prettier config that imports prettier from toolkit (#23729) 2020-04-21 17:23:49 +02:00
.yarnrc.yml Update Monthly patch updates (#52885) 2022-07-27 16:02:48 +01:00
api-extractor.json Docs: added code comments for everything in the @grafana/runtime package. (#23456) 2020-04-15 10:46:51 +02:00
babel.config.json Chore: Reorder babel plugins into correct order (#45691) 2022-02-21 17:07:42 +00:00
build.go Chore: move build command to importable package (#38726) 2021-09-03 11:24:21 -05:00
CHANGELOG.md ReleaseNotes: Updated changelog and release notes for 8.5.10 (#53395) 2022-08-08 15:16:29 +02:00
CODE_OF_CONDUCT.md Docs: Refactor inconsistent unordered lists (#27826) 2020-10-02 11:02:11 -07:00
CONTRIBUTING.md Fixed broken links in documentation (#44044) 2022-01-14 10:24:24 -05:00
crowdin.yml Add crowdin config (#53096) 2022-08-02 05:15:37 -04:00
Dockerfile docker: The cue directory is gone. Catch-up (#52606) 2022-07-29 10:47:27 -05:00
Dockerfile.ubuntu docker: The cue directory is gone. Catch-up (#52606) 2022-07-29 10:47:27 -05:00
embed.go coremodel: Fix hardcoded text and overly broad embedding (#52802) 2022-07-26 09:14:07 -04:00
go.mod coremodels: Include nested optional fields in output (#53355) 2022-08-08 21:48:21 +00:00
go.sum coremodels: Include nested optional fields in output (#53355) 2022-08-08 21:48:21 +00:00
GOVERNANCE.md Chore: Introducing a Grafana HALL_OF_FAME.md (#45878) 2022-05-18 20:13:11 +00: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 Updated broken links (#43849) 2022-02-15 13:42:21 +00:00
jest.config.js Chore: Upgrade to jest 28 (#49679) 2022-05-30 14:14:34 +01:00
latest.json update latest.json testing version (#53157) 2022-08-02 15:35:04 +00:00
lerna.json update versions (#53167) 2022-08-02 11:55:46 -04:00
LICENSE Re-license Grafana to AGPLv3 (#33184) 2021-04-20 19:03:30 +02:00
LICENSING.md license: Make coremodels all Apache v2 (#49731) 2022-06-01 11:00:25 -04:00
MAINTAINERS.md Add Docs maintainers (#51287) 2022-06-22 13:10:30 -07:00
Makefile Implementing OpenApi 3 specs (converted from Swagger 2) (#53243) 2022-08-04 13:51:12 -03: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 Chore: Update version of @grafana/eslint-config (#53403) 2022-08-08 15:19:15 +01:00
PLUGIN_DEV.md Chore: Updated the link to the plugin developer guide docs - it used to point to an old version (#40710) 2021-10-25 12:11:44 +04:00
README.md Update README.md (#45946) 2022-03-02 15:52:45 +01: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 Update SECURITY.md (#42149) 2021-11-24 14:06:18 +01:00
stylelint.config.js Update dependency stylelint to v14.6.0 (#46626) 2022-03-23 13:40:54 +00: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 Chore: Enable useUnknownInCatchVariables for stricter type checking in catch blocks (#50591) 2022-06-15 08:59:29 +01: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 Chore: Update version of @grafana/eslint-config (#53403) 2022-08-08 15:19:15 +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

License

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