Commit Graph

67 Commits

Author SHA1 Message Date
Alexander Emelin 345f0b658d Live: crud for remote write backends (#40147) 2021-11-05 12:13:40 +03:00
idafurjes 9340430723 Chore: Add alert ctx (#41161)
* Add context for alert

* Remove context.TODO

* Remove xorm

* Remove context.TODO

* Fix UsageStatsQuerier interface
2021-11-03 14:10:39 +01:00
idafurjes 47f6bb3583 Chore: Add context to org (#40685)
* Add context to org

* Rebase

* Fix rebase
2021-11-03 11:31:56 +01:00
Will Browne b80fbe03f0 Plugins: Refactor Plugin Management (#40477)
* add core plugin flow

* add instrumentation

* move func

* remove cruft

* support external backend plugins

* refactor + clean up

* remove comments

* refactor loader

* simplify core plugin path arg

* cleanup loggers

* move signature validator to plugins package

* fix sig packaging

* cleanup plugin model

* remove unnecessary plugin field

* add start+stop for pm

* fix failures

* add decommissioned state

* export fields just to get things flowing

* fix comments

* set static routes

* make image loading idempotent

* merge with backend plugin manager

* re-use funcs

* reorder imports + remove unnecessary interface

* add some TODOs + remove unused func

* remove unused instrumentation func

* simplify client usage

* remove import alias

* re-use backendplugin.Plugin interface

* re order funcs

* improve var name

* fix log statements

* refactor data model

* add logic for dupe check during loading

* cleanup state setting

* refactor loader

* cleanup manager interface

* add rendering flow

* refactor loading + init

* add renderer support

* fix renderer plugin

* reformat imports

* track errors

* fix plugin signature inheritance

* name param in interface

* update func comment

* fix func arg name

* introduce class concept

* remove func

* fix external plugin check

* apply changes from pm-experiment

* fix core plugins

* fix imports

* rename interface

* comment API interface

* add support for testdata plugin

* enable alerting + use correct core plugin contracts

* slim manager API

* fix param name

* fix filter

* support static routes

* fix rendering

* tidy rendering

* get tests compiling

* fix install+uninstall

* start finder test

* add finder test coverage

* start loader tests

* add test for core plugins

* load core + bundled test

* add test for nested plugin loading

* add test files

* clean interface + fix registering some core plugins

* refactoring

* reformat and create sub packages

* simplify core plugin init

* fix ctx cancel scenario

* migrate initializer

* remove Init() funcs

* add test starter

* new logger

* flesh out initializer tests

* refactoring

* remove unused svc

* refactor rendering flow

* fixup loader tests

* add enabled helper func

* fix logger name

* fix data fetchers

* fix case where plugin dir doesn't exist

* improve coverage + move dupe checking to loader

* remove noisy debug logs

* register core plugins automagically

* add support for renderer in catalog

* make private func + fix req validation

* use interface

* re-add check for renderer in catalog

* tidy up from moving to auto reg core plugins

* core plugin registrar

* guards

* copy over core plugins for test infra

* all tests green

* renames

* propagate new interfaces

* kill old manager

* get compiling

* tidy up

* update naming

* refactor manager test + cleanup

* add more cases to finder test

* migrate validator to field

* more coverage

* refactor dupe checking

* add test for plugin class

* add coverage for initializer

* split out rendering

* move

* fixup tests

* fix uss test

* fix frontend settings

* fix grafanads test

* add check when checking sig errors

* fix enabled map

* fixup

* allow manual setup of CM

* rename to cloud-monitoring

* remove TODO

* add installer interface for testing

* loader interface returns

* tests passing

* refactor + add more coverage

* support 'stackdriver'

* fix frontend settings loading

* improve naming based on package name

* small tidy

* refactor test

* fix renderer start

* make cloud-monitoring plugin ID clearer

* add plugin update test

* add integration tests

* don't break all if sig can't be calculated

* add root URL check test

* add more signature verification tests

* update DTO name

* update enabled plugins comment

* update comments

* fix linter

* revert fe naming change

* fix errors endpoint

* reset error code field name

* re-order test to help verify

* assert -> require

* pm check

* add missing entry + re-order

* re-check

* dump icon log

* verify manager contents first

* reformat

* apply PR feedback

* apply style changes

* fix one vs all loading err

* improve log output

* only start when no signature error

* move log

* rework plugin update check

* fix test

* fix multi loading from cfg.PluginSettings

* improve log output #2

* add error abstraction to capture errors without registering a plugin

* add debug log

* add unsigned warning

* e2e test attempt

* fix logger

* set home path

* prevent panic

* alternate

* ugh.. fix home path

* return renderer even if not started

* make renderer plugin managed

* add fallback renderer icon, update renderer badge + prevent changes when renderer is installed

* fix icon loading

* rollback renderer changes

* use correct field

* remove unneccessary block

* remove newline

* remove unused func

* fix bundled plugins base + module fields

* remove unused field since refactor

* add authorizer abstraction

* loader only returns plugins expected to run

* fix multi log output
2021-11-01 10:53:33 +01:00
Serge Zaitsev 57fcfd578d Chore: replace macaron with web package (#40136)
* replace macaron with web package

* add web.go
2021-10-11 14:30:59 +02:00
Alexander Emelin 5358c45a3a Live: array for Processor, Outputter and Subscriber in channel rule top level (#39677) 2021-10-06 20:43:25 +03:00
Alexander Emelin 29f3e175b6 Live: test pipeline convert endpoint (#39480) 2021-09-30 19:28:06 +02:00
Alexander Emelin a696fc8b2b Live: pipeline rule crud (file-based, still for MVP) (#39238) 2021-09-30 19:29:32 +03:00
Alexander Emelin 0db6ba9d70 Live: pipeline subscription authorization based on user role (#39587) 2021-09-23 19:33:12 -07:00
Tania B b9acdce837 Chore: Fix grafana live stats reset when sending usage stats (#39558) 2021-09-23 12:55:00 +03:00
Joan López de la Franca Beltran c75737c808 Usage Stats: Decouple from GrafanaLive (#39512)
* Usage Stats: Decouple from GrafanaLive
2021-09-22 16:28:40 +02:00
Alexander Emelin 0bf70b14fd Live: api to show available pipeline entities (#39469)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-09-21 11:57:58 -07:00
Todd Treece 1781c8ec7d Chore: Add go-redis v8 dependency (#39442)
* adds redis v8 client dependency

* remove go-redis v5 dependency
2021-09-20 22:21:59 +02:00
Alexander Emelin e1f1773036 Live: pipeline subscriber interface (#39299) 2021-09-17 16:40:32 +03:00
Alexander Emelin 15e278e9e1 Live: search for pipeline files in data folder (#39198)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-09-14 22:27:51 +02:00
Serge Zaitsev 063160aae2 Chore: pass url parameters through context.Context (#38826)
* pass url parameters through context.Context

* fix url param names without colon prefix

* change context params to vars

* replace url vars in tests using new api

* rename vars to params

* add some comments

* rename seturlvars to seturlparams
2021-09-14 18:34:56 +02:00
Alexander Emelin 3ee861f57e Live: declarative processing pipeline, input -> frames -> output, toggle protected POC (#37644) 2021-09-09 19:19:29 +03:00
Alexander Emelin 342b1426e5 live: update centrifuge to v0.18.2 (#38925) 2021-09-07 21:05:24 +03:00
Torkel Ödegaard 51776e6bd3 UsageStats: Add connected users and client (#38811) 2021-09-07 18:50:28 +02:00
Ryan McKinley e461c722bf Live: prepend orgId when publishing from HTTP (#38775) 2021-09-01 17:54:34 +02:00
Serge Zaitsev c3ab2fdeb7 Macaron: remove custom Request type (#37874)
* remove macaron.Request, use http.Request instead

* remove com dependency from bindings module

* fix another c.Req.Request
2021-09-01 11:18:30 +02:00
Alexander Emelin a95a40d87d Live: allow connections with request host matching origin host (#38538) 2021-08-27 13:26:28 +03:00
Arve Knudsen 78596a6756 Migrate to Wire for dependency injection (#32289)
Fixes #30144

Co-authored-by: dsotirakis <sotirakis.dim@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Ida Furjesova <ida.furjesova@grafana.com>
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: spinillos <selenepinillos@gmail.com>
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
2021-08-25 15:11:22 +02:00
Alexander Emelin 32b74e75a3 live: various code cleanups (#37165) 2021-07-23 19:47:08 +03:00
Alexander Emelin 37caebc934 live: handle origin without port set (#36834) 2021-07-17 13:38:33 +03:00
Alexander Emelin 483418dbb0 live: add allowed_origins option (#36318) 2021-07-01 09:30:09 +03:00
Alexander Emelin 98893c0420 Live: experimental HA with Redis (#34851) 2021-06-24 11:07:09 +03:00
Alexander Emelin 5bbf45592e Live: rely on app url for origin check (#35983) 2021-06-23 19:51:03 +03:00
Alexander Emelin 6d750c000e Live: max_connections option with strict default (#34634)
this should help Live to be enabled by default but still
do not affect setups with lots of simultenious users. To
properly handle many WS connections Grafana administrators
should tune infrastructure a bit - for example increase a
number of open files for a process. Will be in more details
in documentation.
2021-05-27 22:03:18 +03:00
Ryan McKinley 67028af99e Live: check schema equality between push messages (#34548) 2021-05-27 12:55:42 +03:00
Alexander Emelin 4221f2d147 Live: grafana_live namespace for centrifuge prom metrics (#34712) 2021-05-26 10:12:24 -07:00
Alexander Emelin 063e1b5ff5 Live: use latest changes in Go SDK to deal with streaming frames (#34668) 2021-05-25 10:29:02 -07:00
Alexander Emelin f0ef5e7dcb Live: channel ID validation (#34215) 2021-05-19 20:47:53 +03:00
Alexander Emelin e799257637 Live: stream resubmit on ds change, fix old ds settings in RunStream (#34130) 2021-05-18 21:39:56 +03:00
Alexander Emelin 2459a0ceb5 live: remove demultiplexor (#34012) 2021-05-12 18:47:03 +03:00
Alexander Emelin 95a356a840 Live: using organisation IDs throughout stack (#33714) 2021-05-11 22:03:04 +03:00
Alexander Emelin c610eff5cd live: move connection endpoint to api scope, fixes #33861 (#33863) 2021-05-10 19:56:02 +03:00
Alexander Emelin bfd5d3b16a Live: streamId in path for ws push endpoint (#33786) 2021-05-06 12:28:14 -07:00
Ryan McKinley 33e4f8d7ac Live: remove feature toggle and enable by default (#33654) 2021-05-04 08:44:55 -07:00
Alexander Emelin fa866f1154 Live: client connection concurrency (#33642) 2021-05-03 20:29:23 +03:00
Alexander Emelin 0c2bcbf2bc Live: persisting last message in cache for broadcast scope (#32938) 2021-04-30 11:06:33 -07:00
Alexander Emelin 50795bc760 live: better comment, code style, show disconnect reason (#33430) 2021-04-27 17:01:12 +02:00
Alexander Emelin e6f9f65fdf Live: use ReqSignedIn middleware for ws routes (#33381) 2021-04-27 16:19:36 +02:00
Alexander Emelin 7501a2deb6 Live: pure websocket push endpoint (#33339) 2021-04-26 13:17:49 +03:00
Ryan McKinley 693915de35 Live: Simplify live interface (#33196) 2021-04-23 23:21:38 +02:00
Ryan McKinley 1dd9e9b184 Live: support a dashboard gitops channel (#33291) 2021-04-23 21:55:31 +02:00
Alexander Emelin d807fbc9e9 Live: Telegraf input modifiers (#32982) 2021-04-19 18:48:43 +03:00
Alexander Emelin 7d5a46ffda Live: RunStream improvements – backoff, better layout, tests (#33029) 2021-04-17 01:17:08 +03:00
Ryan McKinley b96e45299d Live: support streaming results out-of-the-box (#32821) 2021-04-09 21:17:22 +02:00
Alexander Emelin d9602a5e60 live: cleanups and tests (#32827) 2021-04-09 21:06:25 +03:00