mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-02 19:17:10 +00:00
fix(trace): cpu_percent is omitted when no CPU was sampled
The replay UI already declared it optional, so a web run's steps recording a zero per step were the only thing claiming a reading.
This commit is contained in:
1 parent
1fb910e0a2
commit
28402bda7b
4 files changed
+14
-7
No files matched your search
@@ -104,9 +104,11 @@ type ExtractorChange struct {
|
||||
}
|
||||
|
||||
type Metrics struct {
|
||||
CPUPercent float64 `json:"cpu_percent"`
|
||||
HeapBytes int64 `json:"heap_bytes,omitempty"`
|
||||
TotalMemoryBytes int64 `json:"total_memory_bytes,omitempty"`
|
||||
// CPUPercent is omitted when the driver samples no CPU, so a web run's
|
||||
// steps do not each record a zero the sampler never took.
|
||||
CPUPercent *float64 `json:"cpu_percent,omitempty"`
|
||||
HeapBytes int64 `json:"heap_bytes,omitempty"`
|
||||
TotalMemoryBytes int64 `json:"total_memory_bytes,omitempty"`
|
||||
}
|
||||
|
||||
// The three producers an action can come from. The spec's setup drives the app
|
||||
|
||||
@@ -228,6 +228,7 @@ func TestWriteStep_DiagnosticsRoundTrip(t *testing.T) {
|
||||
directory := t.TempDir()
|
||||
writer, _ := NewWriter(directory)
|
||||
defer writer.Close()
|
||||
cpuPercent := 12.5
|
||||
|
||||
step := Step{
|
||||
Index: 4,
|
||||
@@ -244,7 +245,7 @@ func TestWriteStep_DiagnosticsRoundTrip(t *testing.T) {
|
||||
ExtractorChanges: map[string]ExtractorChange{
|
||||
"balance": {Prev: json.RawMessage(`10`), Curr: json.RawMessage(`-5`)},
|
||||
},
|
||||
Metrics: &Metrics{CPUPercent: 12.5, HeapBytes: 4096},
|
||||
Metrics: &Metrics{CPUPercent: &cpuPercent, HeapBytes: 4096},
|
||||
Exceptions: []Exception{{Class: "NullPointerException", Message: "boom"}},
|
||||
}
|
||||
if err := writer.WriteStep(step); err != nil {
|
||||
@@ -271,7 +272,8 @@ func TestWriteStep_DiagnosticsRoundTrip(t *testing.T) {
|
||||
if c := got.ExtractorChanges["balance"]; string(c.Prev) != `10` || string(c.Curr) != `-5` {
|
||||
t.Errorf("extractor change round-trip wrong: %+v", c)
|
||||
}
|
||||
if got.Metrics == nil || got.Metrics.CPUPercent != 12.5 || got.Metrics.HeapBytes != 4096 {
|
||||
if got.Metrics == nil || got.Metrics.CPUPercent == nil ||
|
||||
*got.Metrics.CPUPercent != 12.5 || got.Metrics.HeapBytes != 4096 {
|
||||
t.Errorf("metrics round-trip wrong: %+v", got.Metrics)
|
||||
}
|
||||
if len(got.Exceptions) != 1 || got.Exceptions[0].Class != "NullPointerException" {
|
||||
|
||||
Reference in new issue
Block a user