-
Notifications
You must be signed in to change notification settings - Fork 0
/
structure.go
85 lines (78 loc) · 2.31 KB
/
structure.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package main
import (
"html/template"
"time"
)
//// Hazana output structures
type LoadtestReport struct {
StartedAt time.Time `json:"startedAt"`
FinishedAt time.Time `json:"finishedAt"`
Configuration struct {
Rps int `json:"rps"`
AttackTimeSec int `json:"attackTimeSec"`
RampupTimeSec int `json:"rampupTimeSec"`
RampupStrategy string `json:"rampupStrategy"`
MaxAttackers int `json:"maxAttackers"`
OutputFilename string `json:"outputFilename"`
Verbose bool `json:"verbose"`
Metadata struct {
GrpcEndpoint string `json:"grpc_endpoint"`
LogName string `json:"log_name"`
MetricType string `json:"metric.type"`
ProjectID string `json:"project_id"`
UseSsl string `json:"use_ssl"`
} `json:"metadata"`
DoTimeoutSec int `json:"doTimeoutSec"`
} `json:"configuration"`
RunError string `json:"runError"`
Metrics map[string]MetricsResult `json:"metrics"`
Failed bool `json:"failed"`
Output struct {
} `json:"output"`
}
type MetricsResult struct {
Latencies struct {
Total int64 `json:"total"`
Mean int `json:"mean"`
Five0Th int `json:"50th"`
Nine5Th int `json:"95th"`
Nine9Th int `json:"99th"`
Max int `json:"max"`
} `json:"latencies"`
Earliest time.Time `json:"earliest"`
Latest time.Time `json:"latest"`
End time.Time `json:"end"`
Duration int64 `json:"duration"`
Wait int `json:"wait"`
Requests int `json:"requests"`
Rate float64 `json:"rate"`
Success float64 `json:"success"`
StatusCodes struct {
} `json:"status_codes"`
Errors interface{} `json:"errors"`
}
//// html Template structures
type NamedChart struct {
Name template.JS
ID template.JS
Chart ChartData
Options ChartOptions `json:"options"`
}
//// Chart.js structure
type ChartData struct {
Labels []string `json:"labels"`
Datasets []Dataset `json:"datasets"`
}
type Dataset struct {
Label string `json:"label"`
BackgroundColor string `json:"backgroundColor"`
BorderColor string `json:"borderColor"`
Data []int `json:"data"`
}
type ChartOptions struct {
ShowLines bool `json:"showLines"`
Elements OptionElement `json:"elements"`
}
type OptionElement struct {
Tension int `json:"tension"`
}