mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 21:27:42 +00:00
fix: enable OpenTelemetry metrics for river queue and improve session projection handling (#10391)
Integrate OpenTelemetry metrics for better visibility into river queue job processing and queue sizes. Additionally, modify session projection handling to prevent failures during high load scenarios, ensuring smoother login processes for users. This addresses issues related to session projections and enhances overall system observability. --------- Co-authored-by: Abhinav Sethi <abhinav.sethi03@gmail.com> Co-authored-by: Zach Hirschtritt <zachary.hirschtritt@klaviyo.com>
This commit is contained in:
@@ -7,9 +7,12 @@ import (
|
||||
"github.com/riverqueue/river"
|
||||
"github.com/riverqueue/river/riverdriver"
|
||||
"github.com/riverqueue/river/riverdriver/riverpgxv5"
|
||||
"github.com/riverqueue/river/rivertype"
|
||||
"github.com/riverqueue/rivercontrib/otelriver"
|
||||
"github.com/zitadel/logging"
|
||||
|
||||
"github.com/zitadel/zitadel/internal/database"
|
||||
"github.com/zitadel/zitadel/internal/telemetry/metrics"
|
||||
)
|
||||
|
||||
// Queue abstracts the underlying queuing library
|
||||
@@ -30,12 +33,16 @@ func NewQueue(config *Config) (_ *Queue, err error) {
|
||||
if config.Client.Type() == "cockroach" {
|
||||
return nil, nil
|
||||
}
|
||||
middleware := []rivertype.Middleware{otelriver.NewMiddleware(&otelriver.MiddlewareConfig{
|
||||
MeterProvider: metrics.GetMetricsProvider(),
|
||||
})}
|
||||
return &Queue{
|
||||
driver: riverpgxv5.New(config.Client.Pool),
|
||||
config: &river.Config{
|
||||
Workers: river.NewWorkers(),
|
||||
Queues: make(map[string]river.QueueConfig),
|
||||
JobTimeout: -1,
|
||||
Middleware: middleware,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user