Skip to content

Commit cbdcdf9

Browse files
download-metrics (#185)
1 parent add985a commit cbdcdf9

File tree

3 files changed

+28
-20
lines changed

3 files changed

+28
-20
lines changed

p2p/kademlia/dht.go

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -934,16 +934,7 @@ func (s *DHT) iterateBatchGetValues(ctx context.Context, nodes map[string]*Node,
934934

935935
if len(requestKeys) == 0 {
936936
// No keys to request from this node (e.g., all keys already satisfied elsewhere).
937-
// Treat as a successful, no-op call for metrics when there is no error.
938-
p2pmetrics.RecordRetrieve(p2pmetrics.TaskIDFromContext(ctx), p2pmetrics.Call{
939-
IP: node.IP,
940-
Address: node.String(),
941-
Keys: 0,
942-
Success: true,
943-
Error: "",
944-
DurationMS: time.Since(callStart).Milliseconds(),
945-
Noop: true,
946-
})
937+
// Do not emit no-op retrieve metrics; skip silently.
947938
return
948939
}
949940

@@ -1811,21 +1802,12 @@ func (s *DHT) batchStoreNetwork(ctx context.Context, values [][]byte, nodes map[
18111802
"size_before_compress": utils.BytesIntToMB(totalBytes),
18121803
})
18131804

1814-
// Skip empty payloads: avoid sending empty store RPCs, but record a noop metric for visibility.
1805+
// Skip empty payloads: avoid sending empty store RPCs and do not record no-op metrics.
18151806
if len(toStore) == 0 {
18161807
logtrace.Info(ctx, "Skipping store RPC with empty payload", logtrace.Fields{
18171808
logtrace.FieldModule: "dht",
18181809
"node": receiver.String(),
18191810
})
1820-
p2pmetrics.RecordStore(p2pmetrics.TaskIDFromContext(ctx), p2pmetrics.Call{
1821-
IP: receiver.IP,
1822-
Address: receiver.String(),
1823-
Keys: 0,
1824-
Success: true,
1825-
Error: "",
1826-
DurationMS: time.Since(callStart).Milliseconds(),
1827-
Noop: true,
1828-
})
18291811
return
18301812
}
18311813

sdk/adapters/supernodeservice/adapter.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,25 @@ func (a *cascadeAdapter) CascadeSupernodeDownload(
487487
if v, ok := retrieve["calls_by_ip"]; ok {
488488
edata[event.KeyRetrieveCallsByIP] = v
489489
}
490+
// Optional additional retrieve fields
491+
if v, ok := retrieve["keys"].(float64); ok {
492+
edata[event.KeyRetrieveKeys] = int64(v)
493+
}
494+
if v, ok := retrieve["required"].(float64); ok {
495+
edata[event.KeyRetrieveRequired] = int64(v)
496+
}
497+
if v, ok := retrieve["found_net"].(float64); ok {
498+
edata[event.KeyRetrieveFoundNet] = int64(v)
499+
}
500+
if v, ok := retrieve["target_required_percent"].(float64); ok {
501+
edata[event.KeyTargetRequiredPercent] = v
502+
}
503+
if v, ok := retrieve["target_required_count"].(float64); ok {
504+
edata[event.KeyTargetRequiredCount] = int64(v)
505+
}
506+
if v, ok := retrieve["total_symbols"].(float64); ok {
507+
edata[event.KeyTotalSymbols] = int64(v)
508+
}
490509
}
491510
}
492511
}

sdk/event/keys.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,11 @@ const (
4545
KeyRetrieveMS EventDataKey = "retrieve_ms"
4646
KeyDecodeMS EventDataKey = "decode_ms"
4747
KeyRetrieveCallsByIP EventDataKey = "retrieve_calls_by_ip"
48+
// Additional retrieve summary fields
49+
KeyRetrieveKeys EventDataKey = "retrieve_keys"
50+
KeyRetrieveRequired EventDataKey = "retrieve_required"
51+
KeyRetrieveFoundNet EventDataKey = "retrieve_found_net"
52+
KeyTargetRequiredPercent EventDataKey = "target_required_percent"
53+
KeyTargetRequiredCount EventDataKey = "target_required_count"
54+
KeyTotalSymbols EventDataKey = "total_symbols"
4855
)

0 commit comments

Comments
 (0)