fix(go.d/mongodb): set 30s default timeout for top-queries function (#21860)
Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
Lennart Kobosil committed
Mar 2, 2026 at 12:37 UTC
583b006aedfd79f3d0f3fde3d4717b4906281cd0
2 files changed
+4
-4
src/go/plugin/go.d/collector/mongodb/collector.go
+2
-1
@@ -39,7 +39,8 @@ func New() *Collector {
39
},
40
Functions: FunctionsConfig{
41
TopQueries: TopQueriesConfig{
42
- Limit: 500,
42
+ Timeout: confopt.Duration(10 * time.Second),
43
+ Limit: 500,
44
},
45
},
46
},
src/go/plugin/go.d/collector/mongodb/func_top_queries.go
+2
-3
@@ -466,7 +466,7 @@ func (f *funcTopQueries) detectProfileFields(ctx context.Context, databases []st
466
467
// Sample documents from system.profile to detect available fields
468
for _, dbName := range databases {
469
- queryCtx, cancel := context.WithTimeout(ctx, client.timeout)
469
+ queryCtx, cancel := context.WithTimeout(ctx, f.router.collector.topQueriesTimeout())
470
471
collection := client.client.Database(dbName).Collection("system.profile")
472
opts := options.FindOne().SetSort(bson.D{{Key: "$natural", Value: -1}})
@@ -508,8 +508,7 @@ func (f *funcTopQueries) querySystemProfile(ctx context.Context, dbName, sortCol
508
return nil, false, fmt.Errorf("client not initialized")
509
}
510
511
- // Set timeout for the query
512
- queryCtx, cancel := context.WithTimeout(ctx, client.timeout)
511
+ queryCtx, cancel := context.WithTimeout(ctx, f.router.collector.topQueriesTimeout())
512
defer cancel()
513
514
// Check if profiling is enabled for this database