Unified Storage: Improve observability for indexing latency (#99700)
* adds extra debug logs and a new metric for poller query latency to help us better understand watch and index latency for write events * adds trace span to the index for handling index write events
This commit is contained in:
@@ -394,10 +394,19 @@ func (s *searchSupport) init(ctx context.Context) error {
|
||||
|
||||
// Async event
|
||||
func (s *searchSupport) handleEvent(ctx context.Context, evt *WrittenEvent) {
|
||||
ctx, span := s.tracer.Start(ctx, tracingPrexfixSearch+"HandleEvent")
|
||||
if !slices.Contains([]WatchEvent_Type{WatchEvent_ADDED, WatchEvent_MODIFIED, WatchEvent_DELETED}, evt.Type) {
|
||||
s.log.Info("ignoring watch event", "type", evt.Type)
|
||||
return
|
||||
}
|
||||
defer span.End()
|
||||
span.SetAttributes(
|
||||
attribute.String("event_type", evt.Type.String()),
|
||||
attribute.String("namespace", evt.Key.Namespace),
|
||||
attribute.String("group", evt.Key.Group),
|
||||
attribute.String("resource", evt.Key.Resource),
|
||||
attribute.String("name", evt.Key.Name),
|
||||
)
|
||||
|
||||
nsr := NamespacedResource{
|
||||
Namespace: evt.Key.Namespace,
|
||||
@@ -447,7 +456,9 @@ func (s *searchSupport) handleEvent(ctx context.Context, evt *WrittenEvent) {
|
||||
|
||||
// record latency from when event was created to when it was indexed
|
||||
latencySeconds := float64(time.Now().UnixMicro()-evt.ResourceVersion) / 1e6
|
||||
span.AddEvent("index latency", trace.WithAttributes(attribute.Float64("latency_seconds", latencySeconds)))
|
||||
if latencySeconds > 5 {
|
||||
s.log.Debug("high index latency object details", "resource", evt.Key.Resource, "latency_seconds", latencySeconds, "name", evt.Object.GetName(), "namespace", evt.Object.GetNamespace(), "uid", evt.Object.GetUID())
|
||||
s.log.Warn("high index latency", "latency", latencySeconds)
|
||||
}
|
||||
if IndexMetrics != nil {
|
||||
|
||||
Reference in New Issue
Block a user