Closed jacobmarble closed 1 month ago
Please assign this issue to me.
- MetricsReader() metricsstore.Reader
this would be a breaking change - see how other services mentioned in Capabilities are implemented with separate interfaces
Ah. Like this, then:
+ type MetricsReaderPlugin interface {
+ MetricsReader() metricsstore.Reader
+ }
...
type Capabilities struct {
ArchiveSpanReader bool
ArchiveSpanWriter bool
StreamingSpanWriter bool
+ MetricsReader bool
}
@yurishkuro please review this implementation: #4414
Requirement
As a Jaeger operator, I want to enable the Jaeger UI "Monitoring" tab for my SREs, DevOps, Engineers.
Problem
Service Performance Monitoring is a feature of Jaeger that is often overlooked.
My team can't use it because our metrics backend is InfluxDB. (InfluxDB is also our tracing backend.) The only Jaeger metrics plugin requires Prometheus.
Proposal
I offer to write a new
metricsstore
plugin, which backends to a remote (not sidecar) third-party gRPC service.At the same time, I offer to write a third-party remote gRPC backend for the proposed plugin. This backend would support InfluxDB, and would live here: https://github.com/influxdata/influxdb-observability/tree/main/jaeger-influxdb
Open questions
Several questions have been raised and discussed.
Where should the new plugin live? I propose that
plugin/storage/grpc/shared/interface.go
change like this (I hope the rest is obvious):