-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
Copy pathbuiltin.go
110 lines (92 loc) · 4.03 KB
/
builtin.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package metrics
//nolint:revive
const (
VUsName = "vus"
VUsMaxName = "vus_max"
IterationsName = "iterations"
IterationDurationName = "iteration_duration"
DroppedIterationsName = "dropped_iterations"
ChecksName = "checks"
GroupDurationName = "group_duration"
HTTPReqsName = "http_reqs"
HTTPReqFailedName = "http_req_failed"
HTTPReqDurationName = "http_req_duration"
HTTPReqBlockedName = "http_req_blocked"
HTTPReqConnectingName = "http_req_connecting"
HTTPReqTLSHandshakingName = "http_req_tls_handshaking"
HTTPReqSendingName = "http_req_sending"
HTTPReqWaitingName = "http_req_waiting"
HTTPReqReceivingName = "http_req_receiving"
WSSessionsName = "ws_sessions"
WSMessagesSentName = "ws_msgs_sent"
WSMessagesReceivedName = "ws_msgs_received"
WSPingName = "ws_ping"
WSSessionDurationName = "ws_session_duration"
WSConnectingName = "ws_connecting"
GRPCReqDurationName = "grpc_req_duration"
DataSentName = "data_sent"
DataReceivedName = "data_received"
)
// BuiltinMetrics represent all the builtin metrics of k6
type BuiltinMetrics struct {
VUs *Metric
VUsMax *Metric
Iterations *Metric
IterationDuration *Metric
DroppedIterations *Metric
// Runner-emitted.
Checks *Metric
GroupDuration *Metric
// HTTP-related.
HTTPReqs *Metric
HTTPReqFailed *Metric
HTTPReqDuration *Metric
HTTPReqBlocked *Metric
HTTPReqConnecting *Metric
HTTPReqTLSHandshaking *Metric
HTTPReqSending *Metric
HTTPReqWaiting *Metric
HTTPReqReceiving *Metric
// Websocket-related
WSSessions *Metric
WSMessagesSent *Metric
WSMessagesReceived *Metric
WSPing *Metric
WSSessionDuration *Metric
WSConnecting *Metric
// gRPC-related
GRPCReqDuration *Metric
// Network-related; used for future protocols as well.
DataSent *Metric
DataReceived *Metric
}
// RegisterBuiltinMetrics register and returns the builtin metrics in the provided registry
func RegisterBuiltinMetrics(registry *Registry) *BuiltinMetrics {
return &BuiltinMetrics{
VUs: registry.MustNewMetric(VUsName, Gauge),
VUsMax: registry.MustNewMetric(VUsMaxName, Gauge),
Iterations: registry.MustNewMetric(IterationsName, Counter),
IterationDuration: registry.MustNewMetric(IterationDurationName, Trend, Time),
DroppedIterations: registry.MustNewMetric(DroppedIterationsName, Counter),
Checks: registry.MustNewMetric(ChecksName, Rate),
GroupDuration: registry.MustNewMetric(GroupDurationName, Trend, Time),
HTTPReqs: registry.MustNewMetric(HTTPReqsName, Counter),
HTTPReqFailed: registry.MustNewMetric(HTTPReqFailedName, Rate),
HTTPReqDuration: registry.MustNewMetric(HTTPReqDurationName, Trend, Time),
HTTPReqBlocked: registry.MustNewMetric(HTTPReqBlockedName, Trend, Time),
HTTPReqConnecting: registry.MustNewMetric(HTTPReqConnectingName, Trend, Time),
HTTPReqTLSHandshaking: registry.MustNewMetric(HTTPReqTLSHandshakingName, Trend, Time),
HTTPReqSending: registry.MustNewMetric(HTTPReqSendingName, Trend, Time),
HTTPReqWaiting: registry.MustNewMetric(HTTPReqWaitingName, Trend, Time),
HTTPReqReceiving: registry.MustNewMetric(HTTPReqReceivingName, Trend, Time),
WSSessions: registry.MustNewMetric(WSSessionsName, Counter),
WSMessagesSent: registry.MustNewMetric(WSMessagesSentName, Counter),
WSMessagesReceived: registry.MustNewMetric(WSMessagesReceivedName, Counter),
WSPing: registry.MustNewMetric(WSPingName, Trend, Time),
WSSessionDuration: registry.MustNewMetric(WSSessionDurationName, Trend, Time),
WSConnecting: registry.MustNewMetric(WSConnectingName, Trend, Time),
GRPCReqDuration: registry.MustNewMetric(GRPCReqDurationName, Trend, Time),
DataSent: registry.MustNewMetric(DataSentName, Counter, Data),
DataReceived: registry.MustNewMetric(DataReceivedName, Counter, Data),
}
}