Plugins: Refactoring: Implement plugin instrumentation as a middleware (#76011)

* Plugins: Refactor instrumentation as plugin client middleware

* Simplify repeated code

* Fix compilation error

* Add comments

* Moved status and endpoint consts to utils.go

* Fix wrong endpoint name in CheckHealth InstrumentationMiddleware

* Add tests

* Fix wrong endpoint value in instrumentPluginRequestSize

* removed todo

* PR review feedback: use MustRegister

* PR review feedback: move tracing middleware before instrumentation middleware

* PR review feedback: removed decommissioned check

* PR review feedback: extract prometheus metrics into separate variables
This commit is contained in:
Giuseppe Guerra
2023-10-09 14:12:57 +02:00
committed by GitHub
parent 57b99728ad
commit cfcfbe4aaa
8 changed files with 426 additions and 205 deletions
@@ -4,6 +4,17 @@ import (
"github.com/grafana/grafana-plugin-sdk-go/backend"
)
const (
statusOK = "ok"
statusError = "error"
statusCancelled = "cancelled"
endpointCallResource = "callResource"
endpointCheckHealth = "checkHealth"
endpointCollectMetrics = "collectMetrics"
endpointQueryData = "queryData"
)
type callResourceResponseSenderFunc func(res *backend.CallResourceResponse) error
func (fn callResourceResponseSenderFunc) Send(res *backend.CallResourceResponse) error {