Skip to content

Commit

Permalink
Add browser_http_req_duration metric
Browse files Browse the repository at this point in the history
This commit helps us move away from the k6 http_req_duration metric to
a browser prefixed one. It is custom to the browser module allowing the
user to measure k6 vs browser http_req_duration metrics separately.
  • Loading branch information
ankur22 committed May 23, 2023
1 parent 00f56be commit 78e4249
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
2 changes: 1 addition & 1 deletion common/network_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ func (m *NetworkManager) emitResponseMetrics(resp *Response, req *Request) {
Time: wallTime,
},
{
TimeSeries: k6metrics.TimeSeries{Metric: state.BuiltinMetrics.HTTPReqDuration, Tags: tags},
TimeSeries: k6metrics.TimeSeries{Metric: m.customMetrics.BrowserHTTPReqDuration, Tags: tags},
Value: k6metrics.D(wallTime.Sub(req.wallTime)),
Time: wallTime,
},
Expand Down
17 changes: 10 additions & 7 deletions k6ext/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,18 @@ const (
inpName = "browser_web_vital_inp"
fcpName = "browser_web_vital_fcp"

browserDataSentName = "browser_data_sent"
browserHTTPReqsName = "browser_http_reqs"
browserDataSentName = "browser_data_sent"
browserHTTPReqsName = "browser_http_reqs"
browserHTTPReqDurationName = "browser_http_req_duration"
)

// CustomMetrics are the custom k6 metrics used by xk6-browser.
type CustomMetrics struct {
WebVitals map[string]*k6metrics.Metric

BrowserDataSent *k6metrics.Metric
BrowserHTTPReqs *k6metrics.Metric
BrowserDataSent *k6metrics.Metric
BrowserHTTPReqs *k6metrics.Metric
BrowserHTTPReqDuration *k6metrics.Metric
}

// RegisterCustomMetrics creates and registers our custom metrics with the k6
Expand Down Expand Up @@ -65,9 +67,10 @@ func RegisterCustomMetrics(registry *k6metrics.Registry) *CustomMetrics {
}

return &CustomMetrics{
WebVitals: webVitals,
BrowserDataSent: registry.MustNewMetric(browserDataSentName, k6metrics.Counter, k6metrics.Data),
BrowserHTTPReqs: registry.MustNewMetric(browserHTTPReqsName, k6metrics.Counter),
WebVitals: webVitals,
BrowserDataSent: registry.MustNewMetric(browserDataSentName, k6metrics.Counter, k6metrics.Data),
BrowserHTTPReqs: registry.MustNewMetric(browserHTTPReqsName, k6metrics.Counter),
BrowserHTTPReqDuration: registry.MustNewMetric(browserHTTPReqDurationName, k6metrics.Trend, k6metrics.Time),
}
}

Expand Down

0 comments on commit 78e4249

Please sign in to comment.