From a7528674d8582c3999b771842d654abd0d2e36aa Mon Sep 17 00:00:00 2001 From: Ivan SZKIBA Date: Mon, 22 May 2023 17:03:41 +0200 Subject: [PATCH 1/8] refactor: fix linter issues --- prometheus.go | 44 ++++++++++++++------------------------------ 1 file changed, 14 insertions(+), 30 deletions(-) diff --git a/prometheus.go b/prometheus.go index 6c573b0..3017237 100644 --- a/prometheus.go +++ b/prometheus.go @@ -1,24 +1,6 @@ -// MIT License +// SPDX-FileCopyrightText: 2021 - 2023 Iván Szkiba // -// Copyright (c) 2021 Iván Szkiba -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. +// SPDX-License-Identifier: MIT package prometheus @@ -27,12 +9,12 @@ import ( "net" "net/http" "net/url" + "time" + "github.com/gorilla/schema" "github.com/prometheus/client_golang/prometheus" "github.com/sirupsen/logrus" "github.com/szkiba/xk6-prometheus/internal" - - "github.com/gorilla/schema" "go.k6.io/k6/output" ) @@ -58,26 +40,26 @@ type Output struct { logger logrus.FieldLogger } -func New(params output.Params) (output.Output, error) { +func New(params output.Params) (output.Output, error) { // nolint:ireturn registry, ok := prometheus.DefaultRegisterer.(*prometheus.Registry) if !ok { registry = prometheus.NewRegistry() } - o := &Output{ + out := &Output{ // nolint:exhaustruct PrometheusAdapter: internal.NewPrometheusAdapter(registry, params.Logger, "", ""), arg: params.ConfigArgument, logger: params.Logger, } - return o, nil + return out, nil } func (o *Output) Description() string { return fmt.Sprintf("prometheus (%s)", o.addr) } -func getopts(qs string) (*options, error) { +func getopts(query string) (*options, error) { opts := &options{ Port: defaultPort, Host: "", @@ -85,18 +67,18 @@ func getopts(qs string) (*options, error) { Subsystem: "", } - if qs == "" { + if query == "" { return opts, nil } - v, err := url.ParseQuery(qs) + values, err := url.ParseQuery(query) if err != nil { return nil, err } decoder := schema.NewDecoder() - if err = decoder.Decode(opts, v); err != nil { + if err = decoder.Decode(opts, values); err != nil { return nil, err } @@ -119,7 +101,9 @@ func (o *Output) Start() error { } go func() { - if err := http.Serve(listener, o.PrometheusAdapter.Handler()); err != nil { + server := &http.Server{Handler: o.PrometheusAdapter.Handler(), ReadHeaderTimeout: time.Second} //nolint:exhaustruct + + if err := server.Serve(listener); err != nil { o.logger.Error(err) } }() From 896126a77e80aaa820b15fcdb8f021babe16d1ad Mon Sep 17 00:00:00 2001 From: Ivan SZKIBA Date: Mon, 22 May 2023 17:04:18 +0200 Subject: [PATCH 2/8] feat: build docker image --- .github/workflows/build.yml | 28 ++++++++++++++++ .github/workflows/release.yml | 62 +++++++++++++++++++++++++++++++++++ README.md | 6 ++-- 3 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..86ff513 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,28 @@ +# SPDX-FileCopyrightText: 2023 Iván Szkiba +# +# SPDX-License-Identifier: MIT + +name: Build +on: + pull_request: + workflow_dispatch: + push: + branches: + - feature/* + +jobs: + build: + name: Bundle xk6 extensions + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Build + id: build + uses: szkiba/xk6bundler@v0 + with: + with: github.com/szkiba/xk6-prometheus=/github/workspace diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..f7ae584 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,62 @@ +# SPDX-FileCopyrightText: 2023 Iván Szkiba +# +# SPDX-License-Identifier: MIT + +name: Release +on: + push: + tags: + - "v*" + +jobs: + release: + name: Bundle xk6 extensions + runs-on: ubuntu-latest + permissions: + contents: write + packages: write + env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + + steps: + - name: Check out code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Build + id: build + uses: szkiba/xk6bundler@v0 + with: + with: github.com/szkiba/xk6-prometheus=/github/workspace + + - name: Create Release + uses: softprops/action-gh-release@v1 + with: + files: dist/*.tar.gz + + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + + - name: Build and push Docker image + uses: docker/build-push-action@v4 + with: + push: true + context: ./${{ steps.build.outputs.dockerdir }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/README.md b/README.md index ad1ea8c..b8fd9f4 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,10 @@ Using **xk6-prometheus** output extension you can collect metrics from long runn Built for [k6](https://go.k6.io/k6) using [xk6](https://github.com/grafana/xk6). +## Download + +You can download pre-built k6 binaries from [Releases](https://github.com/szkiba/xk6-prometheus/releases/) page. Check [Packages](https://github.com/szkiba/xk6-prometheus/pkgs/container/xk6-prometheus) page for pre-built k6 Docker images. + ## Build To build a `k6` binary with this extension, first ensure you have the prerequisites: @@ -25,8 +29,6 @@ Then: $ xk6 build --with github.com/szkiba/xk6-prometheus@latest ``` -> You should use at least `v0.31.0` version because xk6-prometheus extension registers itself as output extension. This feature introduced in the `v0.31.0` version of k6. - ## Usage ### With defaults From 6c1658bafb798aa7b6a969bf1588743326541582 Mon Sep 17 00:00:00 2001 From: Ivan SZKIBA Date: Mon, 22 May 2023 17:04:36 +0200 Subject: [PATCH 3/8] refactor: fix linter issues --- internal/prometheus.go | 53 +++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 29 deletions(-) diff --git a/internal/prometheus.go b/internal/prometheus.go index daeed2e..736c125 100644 --- a/internal/prometheus.go +++ b/internal/prometheus.go @@ -1,24 +1,6 @@ -// MIT License +// SPDX-FileCopyrightText: 2021 - 2023 Iván Szkiba // -// Copyright (c) 2021 Iván Szkiba -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. +// SPDX-License-Identifier: MIT package internal @@ -82,7 +64,7 @@ func (a *PrometheusAdapter) AddMetricSamples(samples []metrics.SampleContainer) } func (a *PrometheusAdapter) Handler() http.Handler { - return promhttp.HandlerFor(a.registry, promhttp.HandlerOpts{}) // nolint:exhaustivestruct + return promhttp.HandlerFor(a.registry, promhttp.HandlerOpts{}) // nolint:exhaustruct } func (a *PrometheusAdapter) handleSample(sample *metrics.Sample) { @@ -139,6 +121,7 @@ func (a *PrometheusAdapter) handleCounter(sample *metrics.Sample) { if counter := a.getCounter(sample.Metric.Name, "k6 counter", sample.Tags); counter != nil { labelValues := a.tagsToLabelValues(counter.labelNames, sample.Tags) metric, err := counter.counterVec.GetMetricWithLabelValues(labelValues...) + if err != nil { a.logger.Error(err) } else { @@ -151,6 +134,7 @@ func (a *PrometheusAdapter) handleGauge(sample *metrics.Sample) { if gauge := a.getGauge(sample.Metric.Name, "k6 gauge", sample.Tags); gauge != nil { labelValues := a.tagsToLabelValues(gauge.labelNames, sample.Tags) metric, err := gauge.gaugeVec.GetMetricWithLabelValues(labelValues...) + if err != nil { a.logger.Error(err) } else { @@ -163,6 +147,7 @@ func (a *PrometheusAdapter) handleRate(sample *metrics.Sample) { if histogram := a.getHistogram(sample.Metric.Name, "k6 rate", []float64{0}, sample.Tags); histogram != nil { labelValues := a.tagsToLabelValues(histogram.labelNames, sample.Tags) metric, err := histogram.histogramVec.GetMetricWithLabelValues(labelValues...) + if err != nil { a.logger.Error(err) } else { @@ -174,6 +159,7 @@ func (a *PrometheusAdapter) handleRate(sample *metrics.Sample) { func (a *PrometheusAdapter) handleTrend(sample *metrics.Sample) { if summary := a.getSummary(sample.Metric.Name, "k6 trend", sample.Tags); summary != nil { labelValues := a.tagsToLabelValues(summary.labelNames, sample.Tags) + metric, err := summary.summaryVec.GetMetricWithLabelValues(labelValues...) if err != nil { a.logger.Error(err) @@ -184,6 +170,7 @@ func (a *PrometheusAdapter) handleTrend(sample *metrics.Sample) { if gauge := a.getGauge(sample.Metric.Name+"_current", "k6 trend (current)", sample.Tags); gauge != nil { labelValues := a.tagsToLabelValues(gauge.labelNames, sample.Tags) + metric, err := gauge.gaugeVec.GetMetricWithLabelValues(labelValues...) if err != nil { a.logger.Error(err) @@ -193,7 +180,9 @@ func (a *PrometheusAdapter) handleTrend(sample *metrics.Sample) { } } -func (a *PrometheusAdapter) getCounter(name string, helpSuffix string, tags *metrics.SampleTags) (counter *counterWithLabels) { +func (a *PrometheusAdapter) getCounter(name string, helpSuffix string, tags *metrics.SampleTags) *counterWithLabels { // nolint:dupl + var counter *counterWithLabels + if col, ok := a.metrics[name]; ok { if c, tok := col.(*counterWithLabels); tok { counter = c @@ -205,7 +194,7 @@ func (a *PrometheusAdapter) getCounter(name string, helpSuffix string, tags *met if counter == nil { labelNames := a.tagsToLabelNames(tags) counter = &counterWithLabels{ - counterVec: prometheus.NewCounterVec(prometheus.CounterOpts{ // nolint:exhaustivestruct + counterVec: prometheus.NewCounterVec(prometheus.CounterOpts{ // nolint:exhaustruct Namespace: a.Namespace, Subsystem: a.Subsystem, Name: name, @@ -226,7 +215,9 @@ func (a *PrometheusAdapter) getCounter(name string, helpSuffix string, tags *met return counter } -func (a *PrometheusAdapter) getGauge(name string, helpSuffix string, tags *metrics.SampleTags) (gauge *gaugeWithLabels) { +func (a *PrometheusAdapter) getGauge(name string, helpSuffix string, tags *metrics.SampleTags) *gaugeWithLabels { // nolint:dupl + var gauge *gaugeWithLabels + if gau, ok := a.metrics[name]; ok { if g, tok := gau.(*gaugeWithLabels); tok { gauge = g @@ -238,7 +229,7 @@ func (a *PrometheusAdapter) getGauge(name string, helpSuffix string, tags *metri if gauge == nil { labelNames := a.tagsToLabelNames(tags) gauge = &gaugeWithLabels{ - gaugeVec: prometheus.NewGaugeVec(prometheus.GaugeOpts{ // nolint:exhaustivestruct + gaugeVec: prometheus.NewGaugeVec(prometheus.GaugeOpts{ // nolint:exhaustruct Namespace: a.Namespace, Subsystem: a.Subsystem, Name: name, @@ -259,7 +250,9 @@ func (a *PrometheusAdapter) getGauge(name string, helpSuffix string, tags *metri return gauge } -func (a *PrometheusAdapter) getSummary(name string, helpSuffix string, tags *metrics.SampleTags) (summary *summaryWithLabels) { +func (a *PrometheusAdapter) getSummary(name string, helpSuffix string, tags *metrics.SampleTags) *summaryWithLabels { + var summary *summaryWithLabels + if sum, ok := a.metrics[name]; ok { if s, tok := sum.(*summaryWithLabels); tok { summary = s @@ -271,7 +264,7 @@ func (a *PrometheusAdapter) getSummary(name string, helpSuffix string, tags *met if summary == nil { labelNames := a.tagsToLabelNames(tags) summary = &summaryWithLabels{ - summaryVec: prometheus.NewSummaryVec(prometheus.SummaryOpts{ // nolint:exhaustivestruct + summaryVec: prometheus.NewSummaryVec(prometheus.SummaryOpts{ // nolint:exhaustruct Namespace: a.Namespace, Subsystem: a.Subsystem, Name: name, @@ -293,7 +286,9 @@ func (a *PrometheusAdapter) getSummary(name string, helpSuffix string, tags *met return summary } -func (a *PrometheusAdapter) getHistogram(name string, helpSuffix string, buckets []float64, tags *metrics.SampleTags) (histogram *histogramWithLabels) { +func (a *PrometheusAdapter) getHistogram(name string, helpSuffix string, buckets []float64, tags *metrics.SampleTags) *histogramWithLabels { + var histogram *histogramWithLabels + if his, ok := a.metrics[name]; ok { if h, tok := his.(*histogramWithLabels); tok { histogram = h @@ -305,7 +300,7 @@ func (a *PrometheusAdapter) getHistogram(name string, helpSuffix string, buckets if histogram == nil { labelNames := a.tagsToLabelNames(tags) histogram = &histogramWithLabels{ - histogramVec: prometheus.NewHistogramVec(prometheus.HistogramOpts{ // nolint:exhaustivestruct + histogramVec: prometheus.NewHistogramVec(prometheus.HistogramOpts{ // nolint:exhaustruct Namespace: a.Namespace, Subsystem: a.Subsystem, Name: name, From 3036bee75c861096de3657171f7336435393e524 Mon Sep 17 00:00:00 2001 From: Ivan SZKIBA Date: Mon, 22 May 2023 17:05:37 +0200 Subject: [PATCH 4/8] build: swith to mage build tool --- Taskfile.yml | 51 ------------------- magefiles/.gitignore | 5 ++ magefiles/go.mod | 22 ++++++++ magefiles/go.sum | 37 ++++++++++++++ magefiles/magefile.go | 115 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 179 insertions(+), 51 deletions(-) delete mode 100644 Taskfile.yml create mode 100644 magefiles/.gitignore create mode 100644 magefiles/go.mod create mode 100644 magefiles/go.sum create mode 100644 magefiles/magefile.go diff --git a/Taskfile.yml b/Taskfile.yml deleted file mode 100644 index 6ff200f..0000000 --- a/Taskfile.yml +++ /dev/null @@ -1,51 +0,0 @@ -# MIT License -# -# Copyright (c) 2021 Iván Szkiba -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -version: "3" - -env: - K6_VERSION: v0.32.0 - -silent: true - -tasks: - default: - cmds: - - task: test - - clean: - desc: Clean up working directory - cmds: - - rm -f k6 - - build: - sources: - - "**/*.go" - generates: - - k6 - cmds: - - xk6 build --with github.com/szkiba/xk6-prometheus=$(pwd) - - test: - deps: [build] - cmds: - - ./k6 run --out prometheus=namespace=k6 -d 1m --no-usage-report script.js diff --git a/magefiles/.gitignore b/magefiles/.gitignore new file mode 100644 index 0000000..3d68590 --- /dev/null +++ b/magefiles/.gitignore @@ -0,0 +1,5 @@ +# SPDX-FileCopyrightText: 2023 Iván Szkiba +# +# SPDX-License-Identifier: MIT + +bin diff --git a/magefiles/go.mod b/magefiles/go.mod new file mode 100644 index 0000000..e7db0f5 --- /dev/null +++ b/magefiles/go.mod @@ -0,0 +1,22 @@ +// SPDX-FileCopyrightText: 2023 Iván Szkiba +// +// SPDX-License-Identifier: MIT + +module github.com/szkiba/xk6-prometheus/magefiles + +go 1.18 + +require ( + github.com/magefile/mage v1.14.0 + github.com/princjef/mageutil v1.0.0 +) + +require ( + github.com/VividCortex/ewma v1.1.1 // indirect + github.com/cheggaaa/pb/v3 v3.0.4 // indirect + github.com/fatih/color v1.9.0 // indirect + github.com/mattn/go-colorable v0.1.4 // indirect + github.com/mattn/go-isatty v0.0.12 // indirect + github.com/mattn/go-runewidth v0.0.7 // indirect + golang.org/x/sys v0.5.0 // indirect +) diff --git a/magefiles/go.sum b/magefiles/go.sum new file mode 100644 index 0000000..7ff8a90 --- /dev/null +++ b/magefiles/go.sum @@ -0,0 +1,37 @@ +github.com/VividCortex/ewma v1.1.1 h1:MnEK4VOv6n0RSY4vtRe3h11qjxL3+t0B8yOL8iMXdcM= +github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA= +github.com/cheggaaa/pb v2.0.7+incompatible/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= +github.com/cheggaaa/pb/v3 v3.0.4 h1:QZEPYOj2ix6d5oEg63fbHmpolrnNiwjUsk+h74Yt4bM= +github.com/cheggaaa/pb/v3 v3.0.4/go.mod h1:7rgWxLrAUcFMkvJuv09+DYi7mMUYi8nO9iOWcvGJPfw= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/magefile/mage v1.14.0 h1:6QDX3g6z1YvJ4olPhT1wksUcSa/V0a1B+pJb73fBjyo= +github.com/magefile/mage v1.14.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= +github.com/matryer/is v1.3.0 h1:9qiso3jaJrOe6qBRJRBt2Ldht05qDiFP9le0JOIhRSI= +github.com/matryer/is v1.3.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-runewidth v0.0.7 h1:Ei8KR0497xHyKJPAv59M1dkC+rOZCMBJ+t3fZ+twI54= +github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/princjef/mageutil v1.0.0 h1:1OfZcJUMsooPqieOz2ooLjI+uHUo618pdaJsbCXcFjQ= +github.com/princjef/mageutil v1.0.0/go.mod h1:mkShhaUomCYfAoVvTKRcbAs8YSVPdtezI5j6K+VXhrs= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +gopkg.in/VividCortex/ewma.v1 v1.1.1/go.mod h1:TekXuFipeiHWiAlO1+wSS23vTcyFau5u3rxXUSXj710= +gopkg.in/cheggaaa/pb.v2 v2.0.7/go.mod h1:0CiZ1p8pvtxBlQpLXkHuUTpdJ1shm3OqCF1QugkjHL4= +gopkg.in/fatih/color.v1 v1.7.0/go.mod h1:P7yosIhqIl/sX8J8UypY5M+dDpD2KmyfP5IRs5v/fo0= +gopkg.in/mattn/go-colorable.v0 v0.1.0/go.mod h1:BVJlBXzARQxdi3nZo6f6bnl5yR20/tOL6p+V0KejgSY= +gopkg.in/mattn/go-isatty.v0 v0.0.4/go.mod h1:wt691ab7g0X4ilKZNmMII3egK0bTxl37fEn/Fwbd8gc= +gopkg.in/mattn/go-runewidth.v0 v0.0.4/go.mod h1:BmXejnxvhwdaATwiJbB1vZ2dtXkQKZGu9yLFCZb4msQ= diff --git a/magefiles/magefile.go b/magefiles/magefile.go new file mode 100644 index 0000000..670bb66 --- /dev/null +++ b/magefiles/magefile.go @@ -0,0 +1,115 @@ +// SPDX-FileCopyrightText: 2023 Iván Szkiba +// +// SPDX-License-Identifier: MIT + +//go:build mage +// +build mage + +package main + +import ( + "path/filepath" + "strings" + + "github.com/magefile/mage/sh" + "github.com/princjef/mageutil/bintool" + "github.com/princjef/mageutil/shellcmd" +) + +var Default = All + +var linter = bintool.Must(bintool.New( + "golangci-lint{{.BinExt}}", + "1.51.1", + "https://github.com/golangci/golangci-lint/releases/download/v{{.Version}}/golangci-lint-{{.Version}}-{{.GOOS}}-{{.GOARCH}}{{.ArchiveExt}}", +)) + +func Lint() error { + if err := linter.Ensure(); err != nil { + return err + } + + return linter.Command(`run`).Run() +} + +func Test() error { + return shellcmd.Command(`go test -count 1 -coverprofile=coverage.txt ./...`).Run() +} + +func Build() error { + return shellcmd.Command(`xk6 build --with github.com/szkiba/xk6-prometheus=.`).Run() +} + +func Coverage() error { + return shellcmd.Command(`go tool cover -html=coverage.txt`).Run() +} + +func glob(patterns ...string) (string, error) { + buff := new(strings.Builder) + + for _, p := range patterns { + m, err := filepath.Glob(p) + if err != nil { + return "", err + } + + _, err = buff.WriteString(strings.Join(m, " ") + " ") + if err != nil { + return "", err + } + } + + return buff.String(), nil +} + +func License() error { + all, err := glob( + "*.go", + "*/*.go", + ".*.yml", + ".gitignore", + "*/.gitignore", + "*.ts", + "*/*ts", + ".github/workflows/*", + ) + if err != nil { + return err + } + + return shellcmd.Command( + `reuse annotate --copyright "Iván Szkiba" --merge-copyrights --license MIT --skip-unrecognised ` + all, + ).Run() +} + +func Clean() error { + sh.Rm("magefiles/bin") + sh.Rm("coverage.txt") + sh.Rm("bin") + sh.Rm("k6") + + return nil +} + +func All() error { + if err := Lint(); err != nil { + return err + } + + return Build() +} + +func Exif() error { + return shellcmd.RunAll( + `exiftool -all= -overwrite_original -ext png .github`, + `exiftool -ext png -overwrite_original -XMP:Subject+="k6 prometheus HTTP exporter xk6" -Title="k6 prometheus HTTP exporter" -Description="Prometheus HTTP exporter for k6." -Author="Ivan SZKIBA" .github`, + ) +} + +func xk6run(arg string) shellcmd.Command { + return shellcmd.Command("xk6 run --quiet --no-summary --no-usage-report " + arg) +} + +func Run() error { + return xk6run(`--out prometheus=namespace=k6 script.js`).Run() +} From 2ce14dee86f25088624809dc60273b5cd99dc058 Mon Sep 17 00:00:00 2001 From: Ivan SZKIBA Date: Mon, 22 May 2023 17:05:57 +0200 Subject: [PATCH 5/8] docs: media assets --- .github/xk6-prometheus-social.png | Bin 0 -> 17045 bytes .github/xk6-prometheus-social.svg | 94 ++++++++++++++++++++++++++++++ assets/xk6-prometheus.png | Bin 0 -> 3122 bytes assets/xk6-prometheus.svg | 1 + 4 files changed, 95 insertions(+) create mode 100644 .github/xk6-prometheus-social.png create mode 100644 .github/xk6-prometheus-social.svg create mode 100644 assets/xk6-prometheus.png create mode 100644 assets/xk6-prometheus.svg diff --git a/.github/xk6-prometheus-social.png b/.github/xk6-prometheus-social.png new file mode 100644 index 0000000000000000000000000000000000000000..1dd62c4a56a4b4648943df857f0c3af8feb71686 GIT binary patch literal 17045 zcmd731yo$kw=Z~FfX3aead(1CTmL4!jeH0}@}Sb*Rb2$}#11R4ky2o3>)1`;F$ z2o4dZ^ZoC=@7|d=Z)VneYi3xh7pH3P`t4m?s`fdjPO`qP8a@sU4gdi78tTf10DytM z1S4S(^uKdHwj2NedFpE$tK9wjU!?OLnj|kTkBN!-^XE@OLc-G0(#*_E92^`cC#TKL zO(`j~bARwT&w)WT0J02dMi}SmQ zfxE@UMGp^;;o)IxYim|2e<1q>`Fs6?>+B@p z;^pG);u9DkAjB^ufQEy^Wt^R)od26M{&xLKgo0P#KaGF2ygdE_OL;l?xXE&a@;SS> zIs|zIa>)H(`A$aQuX2^e@@}%vI6B?Y}4@_doDH zJk(R{za#SBApQ~gpYZ>R3;Y{U|4(QAKhWU6BmF;5_}|6-i|s$T@&CSS{r*$b_yqi0 zaHGRq08K#qRpj6Nif&2$D+lHNQx3}f<@)!2bTIwnk^iE`zq-&tiVjzS{|I_?<3G~I z#Rr`${^+D2e95qk&Zj*MWd-BVmBV=u2moNnvV*(51Q-hyvaST8P6D51L%_9=h&&*g z7X-EdL))M*XKbQT68Pi)_X%-swFJ<=YXJ1diqK!-9a zAjz!0Z*O|W27=Y=_nT5eVB)*Du{4qele%Tp6nU?)|s3aDhEzora7E@tn6? z;;95g2^&;3{5{~;`D$4VVCdM9OnQaS4TF=Lev!Ef?xiVxBd zoXp57t6^+U6d4Jk?d?z&AJKbkc;Vzv@j|gWCgjdjwQI1e1oW};xP&0Yl@t0{CetRu z59et#5n{IS=<|e8EH_yF*|OMVq^G_Lpb>D!Kq(`7jSC*_^Pt>a#Z+Shv5qtIFN<-q zAXy6|@esveXLIOdvY%ahuN0_3tRpha69_6g5NrQ$R{o-UXs)WI5tk7B0~nl|;=xdj z0zH}(NNaXTJ5P)t=^4KF4KoP(_|FIS2OpZyw5q6Y*ZorfH4UiB?WzP2HU_ItEk0Ol z`%ALx>jB;nXE+ceZZGJt#I~qdK~-h~q#)-m=wsUt+aV0J5pKsvL36MQLA=Vdwd7_8 zj}Al)B;N|CuwX@e{;1-AXGkZV@j`+^1eZ~I=;yh9@6(yXiG4y)+;TQhVGkwJl}_dp ze6Ip*y<|diQiI}V>ayRt335_^;tW{8N!i2*s*>}VBKY5qDW&R-F5EOjV#Kw~zCgl2 zxiXYU?ghUD<}@Q1R@*KoNJ)>ujBE*;mrh_V*M<^_rSsQ=_t2sY8d7UO=Lx`odjsWa zyiz|5Zq2}*d~B~T3Wnv!vt~pa{Jl`k=Y#Cwqs3Tan}W{cfq`At2RJcp#E34h+%o(! z0kp7Ol48gnE-3DUrUnCK4;y`<=o?B#^Mx5HSh!Cv;8>2H5PN#I4AwL$7*^CedkEgc zLNi&CFbjA}Ic8y~1Kh^VAqO04!i|ZDH`W zOj3hPiKMmy2YM>B)lY}WYe?TpVLVO-23R?eIeT7$P3Nw}h`&fVhWNEJGv{UU1fU(X z1(rFNGxuuh&wUsW{AjA_*nvS{%k7h;6c+m(7G#SB&zj6BU*2sCHk=l%o$Y={mba;v zBUYLx5n?GV*CGG+u~MWM{$HX_C0^p_oUje)NA$Qtt`S~gyo{dbDYS4j%IGU-gv36h z3^bM>2KQ1G<^y5n-2I{&RRgw+it>c6&=>?EWd-hCHfhLL*Ds3=oN#}1U?ZG38|rYDODG1f%JnTPt5D<*cWR}tKMRK z=(48YCqjg3`+IbEFc=M4TA^sgJu4VN@0|G9zW6Ry>Q{x(icP`bB+N)Z$%Fjuz`bTo zaSG4jwF7muon4wYQdWF!%FUNoF?*5#W;S$~h?nf(b~}{2t9>(LfWfoTWZmB!&UP85k* z3><`JGo_zee6>Kuc)7+shj9jE!9a0()ftBiQkGmZPN?{VCz$V8kSAf(w!Mpn6(dLy z{IGj)1~iXs562DH9A{###RRP^Em0;g;6~rI;#Bj%mGoQPy}b{}P_$x3kwKi_HLJ5M zzqyOLJ0WDy@`MEo?VDODg1sqdSYc>rzgh8{)uxF1RS|Axc{IjUf04Lwy|z8?nF<|8 zOticP&A{NrDX0a8SE^RJ-z$t!ssGmFmshJ@>8&OG&;;R$K&M_U^GkuSnjaZ@!EJfh zw39!*?4exwqM{3D0Ir1kW6pXFt zh<KFf6eI(|L=s+Kkpu9^H70xf49Q7cGXlnhE@IMyJ?3=D$)5dur3e8s07Pgddo( z_eS9G7R5wHaV3+r{YY2}Ic%LPZmv;Q>u~!@kia9X2Q)u57}n-hh9jwtQt3d}7#EUs zv4+dko2r12dDhqu{1(%`i*bcyYkWTzB-P>Go0{)6k0?F4JHU>QphQYtgq8XT>#0b2XG7X=WAFaG*{G`d2C4le8jHKF2J7 zgcBp)b&WYhG~Z9ZT0qJ{iHI-#)%}7iH+_gEVgTj=4WqDEd9kYFH%^t5ptubwcW!CV zdeQYoBmU?$emS$@aD?_jRpA>TH zU%W5{SA*7I@ScvR+U||$R_;G7U4Qi_&(ldp^DqO^%b%so(}`iZWq&29ujnQI<(&Q& z-CMUX7CEpZCOSuRF|G0yY>qB1UXbbjWk2zV!Q}Cdn(m7qkZWKI20MnMSDTA2n@1lW z&d09kYKUS6q7&(LdIX6Tozo(>rUo6>@D4hAC~o#VYOA-&Mh9&gV^HycBc=eht%^W6 z`{8$Aag7Nj)L$lkF0mbYX?9SD4clalJsO$cB<08XIET$R&cn||=9t5HXr@!vRN`+F zSA|XbG=(4=7+mHunV*yUV(invv${`x^`gcO2()c7rDn=kzbNo+4Ly7PjnKsC0S(n0 zdTZ&brO~l`(XME!&QB`@%BAf@GPhw>{+eO*$A| z>b?kAXPpA@F_=qq3YpIFih5)DIuyOFwIsdFw4C&p<=J`j`cKe=GV3-cOjQwZc#I$N#lW?| z)MP)ii+KMP^er(e8W<>>u{HG%Zn7$QAJo1W3nkiSLJE#z6^BO6`kJtdlijl1=VEWhgA2*+q4`irn>^0RKI^Yx>YJpVa`J{8=XS}#^7bn!z8LAhz#rCCSI;_g@$0xf^&nZbwe^ue*Lq|tgPN8diH61N(o^)J(*^(~ zT0Qaa6K-Bk80f_e^&uhC?`gFCv$t4-9c(&I7tP{o#N4jD$Fi>md3JcQyGvr~(@%oIx65Msnq zmBuKEdRI_L+CY^nHgphOcs`X6hDTb4WD<+t&u_sdx#< z9PC?866ln6ooP>OZ9IPlaYNXnx2EdQ%XH<}>%_TWD)g4R+%RLUYH$jHCny1194|^~ zQO0Xx-~#l9_C7-ozwF(?DHD<&6xZx>K5sQf8nkpKHi(Y9&a3M}Gk>~^4lZ2Oi6XEy zZjQ=HV=0fK!UHKISM^b`Y5nA=->HBt4F0Dj1WP&vtN^T?te60F&4BEV`)yTTfm}=a&O_DsYPj7Xb81+}{59iW6$>sJ~ zas%i^$>`qQu4P9_hJPb60lh-#4V7i)k_=jpIC~-D3BfSCF;zzYcxC;Aq$Uy+1Qge& za(nK(8F85FHq3aU1PCcCe1qsP_w!u{P=6!bOa&ZMoR7|XEn~i&FJ>wNdQhUdMyag>;$5tnB4(>ms>eaPZQFRFj1k!uQtX zjoWo`g?V+U0Rh*ukrE-c?X(V*D>!j))>d<=s-a$c6$a`F7={AhQ}X2!rIirxvI zM;@OWNtGtozVqmGIEjX#_d<)0pS0ygUxiuMHELnj*ka zl7kBJfT>t9PAYl!9UbqP5~DmdrYLxXkfj^#4}ZV8x1$80t0e_PK;V^V2TcQP6ERyd zq=~aRzMa7eUIM@c1|z(_ zZjxw~;Je95g7ZuoO#OWxtuc_pnmL`n z2bwTym+CE+9@6hj07X0+1h@sbk!;x;)0umq)z&)m?oU)H&Qz#falEqAY;c#7KVO2J zGU292-urwfJQY#A%`;j|{V)yCFN8nncM<~%L-Ud^fteQbdzB*p{{?T6OSL8l8NxN%l*_}F*fBlT@``FD;# z!#ey!ema%Qn!bLmj3tZZ_ww{*rnU)jP3xSttsO^EqRB6ZFZ-^4-jw+2W;&wqya2ba zmL5`zR&MzxMUHN2ez*ji&q6c2-4D*g)8X96+D>8K{Yv`4muE~3wp%mjGH+N{?qN04 zYSG&XxjW_rnwt^DfJ1Z2o~$QSKKEf5VKjLH(fX0M$h%v5u}_uex~Hz##hJ(HaYOrDTX>KNyj9eAO1Xl;gy6GA5!;oGp$_ch;~8E>&sq z7jl^~ppi#z6d`S1Ymc?uEJVmEaT$5$3n4H?k%U9gp#5*n)A3j*^wwYqRn&-Dyg}Cm z73y`+n*~*3_a^1FTW>s@u`KPg=JUHogl+Pd~&*~mQsWG@iy0_elPYa?Bd&-w@!eHiK}_&mFA3qzTQf;3UK=> z>u**6y%-5ay-o4bib2bms&ss#2QUz*m`}g0rmQaUPrSSqhTxTuLZ&BG9qz1M2u8g$@Ol zEAc!6Q_%N^##gQG)2XfVMU9l03!FC%WAL95Z5ZMKKm#+hp1UXb<7y*6c!|hBt26t< z7uTO!ii<;=f;uxJrVnpU4w{5*+d1_H2j6|v;O~dK%^66=i?-_}@{xMt*}qbz(F)O4 z8|K;@)P(#F!17zInZmmMP?rYMIW7^No~Utu*$Yv@5IoblHW@}ebnhSKOq~;L9hxQsd1KH-le?cyzlOKX63aVXt^6=hIF_Z4@K)xCqCHP*@?nr+&*7 z+p-LN>6xtRE7fc561T?AYTGA%SSO?%d-uSd{?VYrD0n?!X@U7E&NYo;xc!S9_&OT1 zJ}i`uoeJKL&lV2&&eC^=!SUsiTe;8qWOOVcmG^OVj4SdGi><``4}cl z5}~@|BASTSFi!YndQ**lDD4qAI|P1#j*%(;+Pjv81@wAu25DNBz6H&@-R*8Ima#mv zt}y#d@b(N-u*7mz`=RA$p+Q~l$1?k4y8K6QhIqTCam!?EF;6UpKY%H3ShF=N#5I;HQEXQlagBa-Nf7=8do$}ALRmDc+qUh8i@Qlu^}M0#GSp)ANl2oW zPl&bbC!tm1`;fXOYIaaaeZ(@6+Op>C#Zvc4N(+(Ya}(E-y>AvNq8qO@*n-&CJBL@F zH{6~*uE02n%XsCj?#A7mEb-@2EG3FnLmD$yMQDhgo#XPBy(a?HV-oOtYXIWzvy#QM zTN)!bn)S``{+Gwjp#J9vaBW7&rw*x?4f+x2{mjA}@zL3>FyLGpI{mOv{xavi@TxXw zLc7D3aY0oRJKK&a-H3aX-!{TOo*_mWX%!mClKG>cBiYlBPG3`d(7=1f;RT8%9GG+S zn>aRTd;XaJBPY4j>Bo;^zb-2<{Yo<)cJ)*QCiZREV@}6Jhu$p`S3Je<3f{vnTT*Le ze=}nOT-iSsu@;oB|M<<}XSrwS+CIasC+E6uBA&X$$mM z`$TYbf+_m!e!77wG4%;9F3SzZ=m$4^Prysg(;UD1o|TrG%_O&Db!^sR39|pGSQ+2b zGy_FoBXuK@m5~~_j$Nxu}+q&t-hX(oQ2wuejM)-4fbM+LP!LZW2PRa4mIges~3+1B(!b691yc~|DB+knL{uV?)9!0u1vb}7)@3NOiiDmhJZq0bFF#^q6KslUb8aA8 zZsd1fHcuK%K5k#87hO2!aW!{9g>yz41!_L(aLvZ(vnk!kgRkOIih0IF%jspDdnx>! z`~zu(u^A$q;af)Z7XvdvHR4CrQrmJpzZ`=Dbp8DaIHFg4RvsN$>RaVUh>wM-gEjNt z|0b47XnAF}1FQ@Hpevn%7X#@us0U--Zy{ecplZ?9s`#6YAspG}-+{p)VWfFE<%g1o z%JX7aUS=bZ&>6Chs2Lh2q&b1SY8l~XxBgtSVGzl@5z!BTW`*ZHwu*)?{ud_MaNyzT z-~uITN?)2aKP$%0XfJpk$V(Pde(vQo57e-A{?ugpBc1K1g1f1bA@h91S4=vo6#X{K z#@WaA&Oq7y=uNH2Xe+Sz+>5~6yb^j6$GB3l-?{%bqF*d|1}f-6YCvh}of^?72F_+R zc$0`nXdlF2OYUEIc0w(SEZq^f2Ad~XrdoFs8OME~sK7jVtSFIS{|<1C1r>{{H{+PS z1RS%K`g|DVDl=XMNUv7kpXGNcr9J> zIcOEu9UaN6$AJ4-J;CmC6M;Q5hn-tu7G&>*Ha!CqgtJ)Txvga)izDF18He-BmI0vDWwn$Mv^)UE$^m1rK^QlX+hrae}PbD!|Z$XAUdgG|yII;pvcd3>Xb^k-)S)9%s29~(%WoKuyQOW}ZwRO!5d8#t)pcxhSn%V=vxA)=;>fR= znjLjhOKO}^-#J@E43__Zv-pvThmMxDB%g;JvyDyRPYrB!j85PJSPk0A9Bzkk8X>T(P#ECJ)8MrV5Rfgq4?Hc zB~C~afLvV^pBIF{rZHMbE)~y;!Ez`)Sea0#W||~sfBAhIPJ+?gVf}ef&Otn45No*{^0}t3Zrn$W!jE#r!b`Q znvmCdqZS#D8z-m;NJs1KW*>Zb3dosHwrRh8ssp-YgKB(koLVP;XWT~|B`Q#TLUQ+< z98ZNFRrBl8aSvF0Vif4pNNg5kJ*#i_M+QmFsf-H`9?OkefB5_PAPwezM4kD&p)Icc zyJrA%1Ko54-o0kMRl<{b4a6x~I1ALzXq9J3@^gSVY!>R5z!x*S1lKj8v;zW)PMYEC z3CIz5l47DlhdPM4Y2y`)9wBP{?VMfB7I&iCcLV;CdZ9~w7Ev>(-GHH90sq$W>LdBdx_(c+~NP#u13pO`uL(gn_&; zYaXzgbn;+fwS1F%V&*ilW56AZ|A#R3gd`;HvKc;!?R)f|@%6d|#Q}MtzdVZUZjmiC zo^Uh8F*zVBZWw(#EhjY02YofmTeVJdM)6kj!Slh}`1lU9Wkr>@VZqDUX0T|6rCTy^b-v2A+K#brA^v6QtVXlgWTE&L!MX z>8!d{f2ARfLn4HfVD}-A^ZfQ%E!gspG@oTQVEcHyH<3`!iLkGC3BynE_eAR0rtQqp z$c^+%R!|_vpo|iWF(C4|i-4hq_Pwl*xH>(;E$T|_B}2Tyo1mNR1y<1cf}zZ9wBEPvrr$B34;@NOT-Ece&2Jza~o$ zwz!Tt1rZAjUnVsu5lJB_*@aw#@gwWcY{pdo%s`S@!&v24w^cr0cIyy)V_~I8vbv6l zr7SsG{h6*KI0H_4aLW0?8YPss?m{_yDqdtn-_vDvPn`zEEA-H=Ux!#E+0O0|Y%Z3> zDUw;1!RLVtxE7V3&cPy*J>Xd=BW6b~l0>ZT9}MgU*DO!l$RGQuCo(5iANbu5wk#B=HSDR zZVLudS9G%rhVL?mBJdk@F-VB230SYbnJ(co@TmaDBJ=r$!|*MzdWSx0KJM_z(L5`2 z18!f@F+`2@y|VLxbQD|R`!?>Pm+XY_UgCW1?E59uYTElKC6HOh)#h;8|hyreW70J2CmeVT#`Qm}FJpWpaI6K-<2JKXs9P z6-YTV&RV!0!|*oF!2{w>#sp(TxW#EFH^Um3oIea5Ee0q(b5OYnl=~u0}`q6`%v2 zM1~-vegCHOXlUHUXyZ4-G_(z&Pdhs4aQB6D+DQa$jJjHNfT-?Sc_H1%#-?c_Eb zVYp3&L1^D!g;Yzbz#wwcA%S*M&T{7i;eb#cYkWBIqgra5J+@(T z9tDPlWV=kYJ4b4Sj91pgEn5V?#y5JZAYg`h%+``tbV*dE&KEm1h-BxH+T-)Omkhhn zdG|G)GCL98hCyN364+_0T#zKE&!=Z6n$CPU?%Iyf-duQy*o_4rR2dIm)2ZR;fVbKL zdbjfYB~djwXS$2JD{&JOIO)bKgLPt=HfiycRYKQ6l^C(=s{a02vX&WIlQL zdn35%@ieuMT5)S5L=eXgFgVKks6ngX2wWVot51{Rkl#aE7yVW&IGDi4RF^Ge<<@Q$ zNG3xZIj*ut%i6{&ALOVoq>}?V&jIEK&z?XZiOK0bTO zmq3ct>smh#miqQGPQ`Y8&YP_vwg7hW;Lzq-AcqmL^WytrL6!O=&7iDNDIwyR1qWDV zc+ZRBqaB^NgI>ej$a@TO;wsmMwYyHo3NJ2I9YtPf-dj5!-wJAGRh<8oqP3vcm0o7j zJ{mP1^WEcrU{Q}-92Ca>lCf?zBnc{;0JskI@0AX=Xo_4dShEGl0bj+{;cj$&_& zNgwJuuA$GRs6zc1t=V!kXcLZ)VgN-JFl>$(;jRQYNP%JA=woSWKsow|+&&DBKCUN- zenlq+C8}XTPNUD(1wx5d&~E`V07csW{h-}0T=bw60GuQUhQZrlaO5a65@1e6ckuqV zj*Y|l=)cETk?^Q*3j9gP|5b-qO%GR>^=Lflh98{nge4L?Z^-hGR!~3U7{DL|CB|NgH-mgzzLeA>>;5}I%z^PRZgZ5Cdv_0f+pUnQ` z?%`7o3#o40FAe=B+A2%*Ez#5jn}yS&yOhGAF1AVlts|+ceB7R+yM7|SsdZiwxX*i?c5F>s-gO6_{Q4+5jxa)@j%ETGaIArD8=g(gJv0I zqMS)V@s-C3e0%Om!TiR?kbXh25pM(~t9;Opylac0vn3{@0`3uDy+-49=)q5l<5fH? zeFUXmj(`!WlM1m$^E&y*SBp56g19DIc%@_y(-b9&m&H~)*9cHzt*q}8gscJtzl|zh zW>5+?fZ}R3`8V;ydVyf7cY%^nzi6-Tj$&OPn@&sI==SD zZIDdX((-VcAEZvI@@4w2csJ-Bd*Q&R9}ytlw&eYAQRJFvs>qMSt7uw;O|eY$SKB0V znbGUEbn`~i7>%Q2<-R%jq=)5Jq@T$cNk4q;mjaHrBDR*?>OEW~t&&Wm(jx-Z@a9MJ z^v}ztAqA4hAx{^kY|PiZo~ht2|1vA!OO?|esHEJId~-yJ^ZOekgSP!G=$FP;chFuM%gvyC`S@G~c03L0J1_YcGS$#X zVe)<(sy6F5jllEIlguW$)pT?^@<{bIeCf$<{G46E)hv@bW|fu09zZkRziO?%(vU`_5sMDsy@B)Oj5DL$Pu_ zDFI(p_Sh_zyD%+8PPnyvDMk_7zHI3IGl3^{Su$~BF3G%|$BKPgtodc(GRQTj*$s)4 zcmhq1PD)uZW0Bd7Y>FWZ!qm$#1Fk7_-gqYFEBb4C9VZOG_nu{G zW8(I|Btx*UO_N(M+`zm!BvPa#$ zL*>(i0qyW1m%{yOT)b7(yCb^Irir|4hpA$1NeIdzrTEoST;bWk!>UdVNk$YZ7b_zT z2!HOpfxAZSiQv!WGqp^g#_9<{JI&zin00%Hdfd+8mG(0Q(!~)$B}`c=_xn?UZ-_g} zmvXOZpVAA1NPhyCELZx~6XL1tJk)jk_n(-RwP2ns1-AOgDISsDKnQ9WQA9Tw!NnmB zzd8&xDr*rw2udc(3m!Jr`v!uMo!uCxBHA&HLj@;}ctwCuKJ}->`!=rF$U!p6cFgIp zE!k6KiI(;RtV~?XH9(N;hPGaq{Iuv+tGYG-QumtPL%Z17AK%oI1XqwQ=Y62ts4vwU z_JxLfOZ|`C0-t?4w;Ql$MC>!XAz)#^vtW464EIoo6h$)48fSPHT1XUx19~jH1J8c@ z;O{z{{|sicPkP)vy%Y1~{OuicbNMGb=QdoW=|2l*USM+<7uq*U!Wgw&{&^kHzlvoG z39!3DTWHxnF;M-n71KAYsVE%aw7ZEJJUC3}gKbzEg zQnutoq*U}|(cV0Z*QOPB6NHEBO#htb%6@in<=P!+9^;|99Rt&iS(CZGxVwjp&Kn#H z|G9P`gMUha;^XQOR9;HliaS>@`TUt2k9LO+PoZrmI{g7iCN~roTRX&ATr+C%6u&@H zphxZ2Oi)r5DUZA8Hpe)|&U1g{+r3k|F&!dUj~xjF$i}j7e_=$+*o*zZp`W^hhbTfb8|0FchLl-9f7q&V($6tf`D; zD?T%K2e#b%QKEC8C-D^&OcvIO8pU{9gh8jY6JqlL9@M8Wh!X>7{aO;M{Xo5j{io8N zR9Ib94PHCp4gpyv)K7jO5be1$31_jp4G1S$HO|;5H{H_FVhfK!AVwH2sVDI1$pV)h z+Vaw6fe@R=V{~3=`1WZQ1uwEab&Yl=Xb`*cSEHGs;Csk?wo{r)0*&RDi4RYK<7GUo zX*fnmlRX9F&($x}Qm*+`grPD>D`%Yo6V5?F3ji|Dvr@*ZTIY$X1SwlrtTs6L8%bih zs|(nnlF?zr)TZ*)!4-cq=2^8YyTjTX8dhQ-D6Mkw-2~CH^|KLqe9J1c05MaIKS;PzUfj=UIe{ItFg(UbT31h%J6SuC{U8~RN)d3E zDuI3U7PSKI6)Q-2&s%Y~WFTjpXy=axAS62GWrLrtU71RS8rRJmC{E13S^}#Q+CN== zO5Ej9st8I)+>N*d64TCYt zfdW;0DqKo-4%n*D73QSZZ&{{71p1j6?qsK9xPWNx+2OAlh=dmZz*H5OlkvI$RCU?= z+-RzN{PoGBS@;yOJvZ{V3|r=mQEj;@=B zmQ(yO2eY8BXk^|2!_s|>ziSp{<0Yp?Ix4Yv~;7Gjd)>0|WG1Wr5oMAn1d;gBxvysdBr zOLwbU(|FIsiGC(*`)4jm{5YcdTmOXbF9p!MF~ciC%Du>ST1jMpzAIXoNHsns`W&b+#5j(`TXPq*cx@_Ybh6}NQ z&P(}D6t*KMqS(}N>1(b^;4cDL=BZozLq7SLJA>)7f!>-h=!_(F@5L&<_-27II=-XK z0fPmP(EBtgGo1Yo5IQ9|lI(Z-2>rm8Fve-AV^ZcsUNL3CC?5&YYi*1w>?M~+CiSb`U$B)(^o8XlqEmY zsy^L*9((M`eeuGZ#p7w72LGolE5C_ua(ujL|ktzna$uLe4z6ZZ}+*M!w)LM_+d`|?WnjQ zP~&gGcqQvvXW=(^&OAI-%W-CD4JScG9E5USkRewB`YA#US@eUiyk&TZbA!4rURlH@ zAwK-;=u*7fYQo!5rTnvG}I#)t%`Ik4am~;1K;tRn*3*BS>Ibyy zF`!JASv-D4R&h|m#K=*$ko=<=$AT-dM_z;I$9mJNZR72)AI8~!h#P(wR_mV)e7><> z`UCoLi}|TJFI3Hr3-r-CX5^#$#G@x~=focuJp(RFz1QS`Jp7)0qoIad>UCzieI+iyc=NJF)`k*Cq}GRUm3Qw(dh%gMR-`LH)?w5Xbe zxaQ`(Ah6x1YRgx!Osnzx8+IKBExB>u6Z48L4u~U^pTE*vY5!m`j?;g!+Lkw@Q01A6 zc^i6Go;SJjsV*tg@cF#|Co03W1A;G4T_lGdB)&@c^L!CYVpYhU;;G+*+X=A2J=|ZiRm=X4W zdv2*EpKwR;%N)I)EEg1+K$W!_dculOtRt zxRIJbJ-|I^078F=h@nrNfm23;;6}dpLvsVqt)hDqYK4WkktwH%B~nCxpBE7A_{xrA z5Ig-Z`_Pp{Itcz37(TiY{uq~e>HilW&i>c0b{BN%r~hh*_w=_G?G6$6fBNI&R}k{p W5?84fk> +Prometheus HTTP exporter for k6szkiba/xk6-prometheus diff --git a/assets/xk6-prometheus.png b/assets/xk6-prometheus.png new file mode 100644 index 0000000000000000000000000000000000000000..b8160e472f810a79d0e4056f5381583ed8a52d1e GIT binary patch literal 3122 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 literal 0 HcmV?d00001 diff --git a/assets/xk6-prometheus.svg b/assets/xk6-prometheus.svg new file mode 100644 index 0000000..6b53c0c --- /dev/null +++ b/assets/xk6-prometheus.svg @@ -0,0 +1 @@ + \ No newline at end of file From f4d3d9a03f3032971d0f7f7419978e4d8dae731a Mon Sep 17 00:00:00 2001 From: Ivan SZKIBA Date: Mon, 22 May 2023 17:06:16 +0200 Subject: [PATCH 6/8] docs: license headers --- .gitignore | 16 +++++++++++++++- .golangci.yml | 37 +++++++++++++++++++++++++++++++++++++ LICENSES/MIT.txt | 9 +++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 .golangci.yml create mode 100644 LICENSES/MIT.txt diff --git a/.gitignore b/.gitignore index 44031e4..ec33425 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,16 @@ +# SPDX-FileCopyrightText: 2023 Iván Szkiba +# +# SPDX-License-Identifier: MIT + k6 -.task + +coverage.txt + +logs +*.log + +bin + +.vscode/* +!.vscode/extensions.json +!.vscode/settings.json diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..a519621 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,37 @@ +# SPDX-FileCopyrightText: 2021 - 2023 Iván Szkiba +# +# SPDX-License-Identifier: MIT + +linters: + presets: + - bugs + - style + - unused + - complexity + - format + - performance + enable: + - exportloopref + disable: + - testpackage + - nolintlint + - gochecknoglobals + - gochecknoinits + - lll + - maligned + - interfacer + - scopelint + - wrapcheck +# deprecated + - deadcode + - nosnakecase + - exhaustivestruct + - ifshort + - structcheck + - varcheck + - golint +# generics + - rowserrcheck + - sqlclosecheck + - wastedassign + diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt new file mode 100644 index 0000000..2071b23 --- /dev/null +++ b/LICENSES/MIT.txt @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From abeb0f45367ab42676ba4fb3be6966cd0c1e150d Mon Sep 17 00:00:00 2001 From: Ivan SZKIBA Date: Mon, 22 May 2023 17:39:05 +0200 Subject: [PATCH 7/8] feat: upgrade k6 to v0.43.0 --- README.md | 329 +++++++++++++++++++++++++++++++---------- go.mod | 29 +++- go.sum | 159 +++++--------------- internal/prometheus.go | 16 +- magefiles/magefile.go | 2 +- 5 files changed, 327 insertions(+), 208 deletions(-) diff --git a/README.md b/README.md index b8fd9f4..d62acec 100644 --- a/README.md +++ b/README.md @@ -12,22 +12,56 @@ You can download pre-built k6 binaries from [Releases](https://github.com/szkiba ## Build -To build a `k6` binary with this extension, first ensure you have the prerequisites: +You can build the k6 binary on various platforms, each with its requirements. The following shows how to build k6 binary with this extension on GNU/Linux distributions. -- [Go toolchain](https://go101.org/article/go-toolchain.html) -- Git +### Prerequisites -Then: +You must have the latest Go version installed to build the k6 binary. The latest version should match [k6](https://github.com/grafana/k6#build-from-source) and [xk6](https://github.com/grafana/xk6#requirements). -1. Download `xk6`: - ```bash - $ go install go.k6.io/xk6/cmd/xk6@latest - ``` +- [Git](https://git-scm.com/) for cloning the project +- [xk6](https://github.com/grafana/xk6) for building k6 binary with extensions + +### Install and build the latest tagged version + +1. Install `xk6`: + + ```shell + go install go.k6.io/xk6/cmd/xk6@latest + ``` 2. Build the binary: - ```bash - $ xk6 build --with github.com/szkiba/xk6-prometheus@latest - ``` + + ```shell + xk6 build --with github.com/szkiba/xk6-prometheus@latest + ``` + +> **Note** +> You can always use the latest version of k6 to build the extension, but the earliest version of k6 that supports extensions via xk6 is v0.43.0. The xk6 is constantly evolving, so some APIs may not be backward compatible. + +### Build for development + +If you want to add a feature or make a fix, clone the project and build it using the following commands. The xk6 will force the build to use the local clone instead of fetching the latest version from the repository. This process enables you to update the code and test it locally. + +```bash +git clone git@github.com:szkiba/xk6-prometheus.git && cd xk6-prometheus +xk6 build --with github.com/szkiba/xk6-prometheus@latest=. +``` + +## Docker + +You can also use pre-built k6 image within a Docker container. In order to do that, you will need to execute something like the following: + +**Linux** + +```plain +docker run -v $(pwd):/scripts -it --rm ghcr.io/szkiba/xk6-prometheus:latest run -d 1m --out=dashboard /scripts/script.js +``` + +**Windows** + +```plain +docker run -v %cd%:/scripts -it --rm ghcr.io/szkiba/xk6-prometheus:latest run -d 1m --out=prometheus /scripts/script.js +``` ## Usage @@ -99,116 +133,257 @@ port | TCP port for HTTP endoint (default: 5656) Here is the relevant part of the metrics HTTP response: ```plain +# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. +# TYPE go_gc_duration_seconds summary +go_gc_duration_seconds{quantile="0"} 2.4485e-05 +go_gc_duration_seconds{quantile="0.25"} 4.5041e-05 +go_gc_duration_seconds{quantile="0.5"} 5.3342e-05 +go_gc_duration_seconds{quantile="0.75"} 5.9793e-05 +go_gc_duration_seconds{quantile="1"} 0.000151794 +go_gc_duration_seconds_sum 0.000642498 +go_gc_duration_seconds_count 11 +# HELP go_goroutines Number of goroutines that currently exist. +# TYPE go_goroutines gauge +go_goroutines 24 +# HELP go_info Information about the Go environment. +# TYPE go_info gauge +go_info{version="go1.18.1"} 1 +# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. +# TYPE go_memstats_alloc_bytes gauge +go_memstats_alloc_bytes 4.038792e+07 +# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. +# TYPE go_memstats_alloc_bytes_total counter +go_memstats_alloc_bytes_total 1.40677416e+08 +# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. +# TYPE go_memstats_buck_hash_sys_bytes gauge +go_memstats_buck_hash_sys_bytes 5496 +# HELP go_memstats_frees_total Total number of frees. +# TYPE go_memstats_frees_total counter +go_memstats_frees_total 2.013702e+06 +# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. +# TYPE go_memstats_gc_sys_bytes gauge +go_memstats_gc_sys_bytes 6.310184e+06 +# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. +# TYPE go_memstats_heap_alloc_bytes gauge +go_memstats_heap_alloc_bytes 4.038792e+07 +# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. +# TYPE go_memstats_heap_idle_bytes gauge +go_memstats_heap_idle_bytes 4.907008e+06 +# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. +# TYPE go_memstats_heap_inuse_bytes gauge +go_memstats_heap_inuse_bytes 5.2830208e+07 +# HELP go_memstats_heap_objects Number of allocated objects. +# TYPE go_memstats_heap_objects gauge +go_memstats_heap_objects 172212 +# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. +# TYPE go_memstats_heap_released_bytes gauge +go_memstats_heap_released_bytes 2.473984e+06 +# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. +# TYPE go_memstats_heap_sys_bytes gauge +go_memstats_heap_sys_bytes 5.7737216e+07 +# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. +# TYPE go_memstats_last_gc_time_seconds gauge +go_memstats_last_gc_time_seconds 1.6847687042787058e+09 +# HELP go_memstats_lookups_total Total number of pointer lookups. +# TYPE go_memstats_lookups_total counter +go_memstats_lookups_total 0 +# HELP go_memstats_mallocs_total Total number of mallocs. +# TYPE go_memstats_mallocs_total counter +go_memstats_mallocs_total 2.185914e+06 +# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. +# TYPE go_memstats_mcache_inuse_bytes gauge +go_memstats_mcache_inuse_bytes 9600 +# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. +# TYPE go_memstats_mcache_sys_bytes gauge +go_memstats_mcache_sys_bytes 15600 +# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. +# TYPE go_memstats_mspan_inuse_bytes gauge +go_memstats_mspan_inuse_bytes 657152 +# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. +# TYPE go_memstats_mspan_sys_bytes gauge +go_memstats_mspan_sys_bytes 685440 +# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. +# TYPE go_memstats_next_gc_bytes gauge +go_memstats_next_gc_bytes 5.153816e+07 +# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. +# TYPE go_memstats_other_sys_bytes gauge +go_memstats_other_sys_bytes 1.391104e+06 +# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. +# TYPE go_memstats_stack_inuse_bytes gauge +go_memstats_stack_inuse_bytes 983040 +# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. +# TYPE go_memstats_stack_sys_bytes gauge +go_memstats_stack_sys_bytes 983040 +# HELP go_memstats_sys_bytes Number of bytes obtained from system. +# TYPE go_memstats_sys_bytes gauge +go_memstats_sys_bytes 6.712808e+07 +# HELP go_threads Number of OS threads created. +# TYPE go_threads gauge +go_threads 13 # HELP k6_data_received The amount of received data # TYPE k6_data_received counter -k6_data_received{group="",scenario="default"} 430237 +k6_data_received{group="",scenario="default",tls_version=""} 538700 # HELP k6_data_sent The amount of data sent # TYPE k6_data_sent counter -k6_data_sent{group="",scenario="default"} 2888 +k6_data_sent{group="",scenario="default",tls_version=""} 9430 # HELP k6_http_req_blocked Time spent blocked before initiating the request # TYPE k6_http_req_blocked summary -k6_http_req_blocked{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.5"} 0.00377 -k6_http_req_blocked{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.9"} 0.008411 -k6_http_req_blocked{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.95"} 0.016064 -k6_http_req_blocked{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="1"} 872.706547 -k6_http_req_blocked_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 872.8805460000001 -k6_http_req_blocked_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 38 +k6_http_req_blocked{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.5"} 0.003216 +k6_http_req_blocked{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.9"} 0.00461 +k6_http_req_blocked{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.95"} 0.005075 +k6_http_req_blocked{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="1"} 149.563383 +k6_http_req_blocked_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 149.7171700000001 +k6_http_req_blocked_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 46 +k6_http_req_blocked{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.5"} 0.002711 +k6_http_req_blocked{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.9"} 0.01625 +k6_http_req_blocked{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.95"} 0.02094 +k6_http_req_blocked{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="1"} 247.720682 +k6_http_req_blocked_sum{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 247.94551300000003 +k6_http_req_blocked_count{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 46 # HELP k6_http_req_blocked_current Time spent blocked before initiating the request (current) # TYPE k6_http_req_blocked_current gauge -k6_http_req_blocked_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 0.003246 +k6_http_req_blocked_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 0.005075 +k6_http_req_blocked_current{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 0.00299 # HELP k6_http_req_connecting Time spent establishing TCP connection # TYPE k6_http_req_connecting summary -k6_http_req_connecting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.5"} 0 -k6_http_req_connecting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.9"} 0 -k6_http_req_connecting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.95"} 0 -k6_http_req_connecting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="1"} 424.67631 -k6_http_req_connecting_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 424.67631 -k6_http_req_connecting_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 38 +k6_http_req_connecting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.5"} 0 +k6_http_req_connecting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.9"} 0 +k6_http_req_connecting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.95"} 0 +k6_http_req_connecting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="1"} 122.939469 +k6_http_req_connecting_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 122.939469 +k6_http_req_connecting_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 46 +k6_http_req_connecting{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.5"} 0 +k6_http_req_connecting{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.9"} 0 +k6_http_req_connecting{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.95"} 0 +k6_http_req_connecting{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="1"} 123.300371 +k6_http_req_connecting_sum{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 123.300371 +k6_http_req_connecting_count{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 46 # HELP k6_http_req_connecting_current Time spent establishing TCP connection (current) # TYPE k6_http_req_connecting_current gauge -k6_http_req_connecting_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 0 +k6_http_req_connecting_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 0 +k6_http_req_connecting_current{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 0 # HELP k6_http_req_duration Total time for the request # TYPE k6_http_req_duration summary -k6_http_req_duration{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.5"} 433.957267 -k6_http_req_duration{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.9"} 850.686511 -k6_http_req_duration{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.95"} 975.504212 -k6_http_req_duration{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="1"} 3292.618482 -k6_http_req_duration_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 21587.420325 -k6_http_req_duration_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 38 +k6_http_req_duration{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.5"} 122.284411 +k6_http_req_duration{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.9"} 122.467859 +k6_http_req_duration{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.95"} 122.754156 +k6_http_req_duration{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="1"} 125.132449 +k6_http_req_duration_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 5624.683091 +k6_http_req_duration_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 46 +k6_http_req_duration{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.5"} 125.11121 +k6_http_req_duration{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.9"} 126.739617 +k6_http_req_duration{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.95"} 247.217049 +k6_http_req_duration{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="1"} 248.484052 +k6_http_req_duration_sum{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 6126.750080999999 +k6_http_req_duration_count{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 46 # HELP k6_http_req_duration_current Total time for the request (current) # TYPE k6_http_req_duration_current gauge -k6_http_req_duration_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 418.772552 +k6_http_req_duration_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 122.316288 +k6_http_req_duration_current{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 124.662895 # HELP k6_http_req_failed The rate of failed requests # TYPE k6_http_req_failed histogram -k6_http_req_failed_bucket{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",le="0"} 38 -k6_http_req_failed_bucket{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",le="+Inf"} 38 -k6_http_req_failed_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 0 -k6_http_req_failed_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 38 +k6_http_req_failed_bucket{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",le="0"} 46 +k6_http_req_failed_bucket{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",le="+Inf"} 46 +k6_http_req_failed_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 0 +k6_http_req_failed_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 46 +k6_http_req_failed_bucket{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",le="0"} 46 +k6_http_req_failed_bucket{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",le="+Inf"} 46 +k6_http_req_failed_sum{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 0 +k6_http_req_failed_count{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 46 # HELP k6_http_req_receiving Time spent receiving response data # TYPE k6_http_req_receiving summary -k6_http_req_receiving{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.5"} 1.729595 -k6_http_req_receiving{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.9"} 5.581774 -k6_http_req_receiving{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.95"} 512.29381 -k6_http_req_receiving{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="1"} 1533.230124 -k6_http_req_receiving_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 2532.616402999998 -k6_http_req_receiving_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 38 +k6_http_req_receiving{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.5"} 0.081936 +k6_http_req_receiving{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.9"} 0.104153 +k6_http_req_receiving{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.95"} 0.112347 +k6_http_req_receiving{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="1"} 0.11385 +k6_http_req_receiving_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 3.6835980000000004 +k6_http_req_receiving_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 46 +k6_http_req_receiving{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.5"} 0.083326 +k6_http_req_receiving{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.9"} 0.21554 +k6_http_req_receiving{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.95"} 122.142645 +k6_http_req_receiving{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="1"} 122.322618 +k6_http_req_receiving_sum{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 370.93958899999996 +k6_http_req_receiving_count{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 46 # HELP k6_http_req_receiving_current Time spent receiving response data (current) # TYPE k6_http_req_receiving_current gauge -k6_http_req_receiving_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 2.20869 +k6_http_req_receiving_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 0.068918 +k6_http_req_receiving_current{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 0.086082 # HELP k6_http_req_sending Time spent sending data # TYPE k6_http_req_sending summary -k6_http_req_sending{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.5"} 0.015493 -k6_http_req_sending{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.9"} 0.026709 -k6_http_req_sending{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.95"} 0.030378 -k6_http_req_sending{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="1"} 0.095429 -k6_http_req_sending_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 0.7408489999999998 -k6_http_req_sending_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 38 +k6_http_req_sending{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.5"} 0.012458 +k6_http_req_sending{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.9"} 0.030467 +k6_http_req_sending{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.95"} 0.035746 +k6_http_req_sending{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="1"} 0.126034 +k6_http_req_sending_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 0.8089879999999999 +k6_http_req_sending_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 46 +k6_http_req_sending{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.5"} 0.012556 +k6_http_req_sending{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.9"} 0.01823 +k6_http_req_sending{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.95"} 0.026959 +k6_http_req_sending{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="1"} 0.066358 +k6_http_req_sending_sum{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 0.689001 +k6_http_req_sending_count{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 46 # HELP k6_http_req_sending_current Time spent sending data (current) # TYPE k6_http_req_sending_current gauge -k6_http_req_sending_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 0.013392 +k6_http_req_sending_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 0.01234 +k6_http_req_sending_current{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 0.012584 # HELP k6_http_req_tls_handshaking Time spent handshaking TLS session # TYPE k6_http_req_tls_handshaking summary -k6_http_req_tls_handshaking{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.5"} 0 -k6_http_req_tls_handshaking{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.9"} 0 -k6_http_req_tls_handshaking{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.95"} 0 -k6_http_req_tls_handshaking{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="1"} 0 -k6_http_req_tls_handshaking_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 0 -k6_http_req_tls_handshaking_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 38 +k6_http_req_tls_handshaking{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.5"} 0 +k6_http_req_tls_handshaking{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.9"} 0 +k6_http_req_tls_handshaking{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.95"} 0 +k6_http_req_tls_handshaking{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="1"} 0 +k6_http_req_tls_handshaking_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 0 +k6_http_req_tls_handshaking_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 46 +k6_http_req_tls_handshaking{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.5"} 0 +k6_http_req_tls_handshaking{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.9"} 0 +k6_http_req_tls_handshaking{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.95"} 0 +k6_http_req_tls_handshaking{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="1"} 124.308137 +k6_http_req_tls_handshaking_sum{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 124.308137 +k6_http_req_tls_handshaking_count{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 46 # HELP k6_http_req_tls_handshaking_current Time spent handshaking TLS session (current) # TYPE k6_http_req_tls_handshaking_current gauge -k6_http_req_tls_handshaking_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 0 +k6_http_req_tls_handshaking_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 0 +k6_http_req_tls_handshaking_current{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 0 # HELP k6_http_req_waiting Time spent waiting for response # TYPE k6_http_req_waiting summary -k6_http_req_waiting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.5"} 431.363566 -k6_http_req_waiting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.9"} 535.981583 -k6_http_req_waiting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="0.95"} 975.42239 -k6_http_req_waiting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io",quantile="1"} 1759.361649 -k6_http_req_waiting_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 19054.063072999994 -k6_http_req_waiting_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 38 +k6_http_req_waiting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.5"} 122.205979 +k6_http_req_waiting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.9"} 122.381221 +k6_http_req_waiting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="0.95"} 122.639074 +k6_http_req_waiting{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io",quantile="1"} 124.892565 +k6_http_req_waiting_sum{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 5620.190505 +k6_http_req_waiting_count{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 46 +k6_http_req_waiting{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.5"} 124.969742 +k6_http_req_waiting{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.9"} 126.042663 +k6_http_req_waiting{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="0.95"} 126.218584 +k6_http_req_waiting{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/",quantile="1"} 126.747568 +k6_http_req_waiting_sum{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 5755.121490999999 +k6_http_req_waiting_count{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 46 # HELP k6_http_req_waiting_current Time spent waiting for response (current) # TYPE k6_http_req_waiting_current gauge -k6_http_req_waiting_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 416.55047 +k6_http_req_waiting_current{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 122.23503 +k6_http_req_waiting_current{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 124.564229 # HELP k6_http_reqs How many HTTP requests has k6 generated, in total # TYPE k6_http_reqs counter -k6_http_reqs{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="200",url="http://test.k6.io"} 38 +k6_http_reqs{expected_response="true",group="",method="GET",name="http://test.k6.io",proto="HTTP/1.1",scenario="default",status="308",tls_version="",url="http://test.k6.io"} 46 +k6_http_reqs{expected_response="true",group="",method="GET",name="https://test.k6.io/",proto="HTTP/1.1",scenario="default",status="200",tls_version="tls1.3",url="https://test.k6.io/"} 46 # HELP k6_iteration_duration The time it took to complete one full iteration # TYPE k6_iteration_duration summary -k6_iteration_duration{group="",scenario="default",quantile="0.5"} 1434.73512 -k6_iteration_duration{group="",scenario="default",quantile="0.9"} 1945.377781 -k6_iteration_duration{group="",scenario="default",quantile="0.95"} 2301.369932 -k6_iteration_duration{group="",scenario="default",quantile="1"} 4293.211801 -k6_iteration_duration_sum{group="",scenario="default"} 60485.744295 -k6_iteration_duration_count{group="",scenario="default"} 38 +k6_iteration_duration{group="",scenario="default",tls_version="",quantile="0.5"} 1248.52603 +k6_iteration_duration{group="",scenario="default",tls_version="",quantile="0.9"} 1249.698125 +k6_iteration_duration{group="",scenario="default",tls_version="",quantile="0.95"} 1370.836179 +k6_iteration_duration{group="",scenario="default",tls_version="",quantile="1"} 1650.467963 +k6_iteration_duration_sum{group="",scenario="default",tls_version=""} 56939.48187700001 +k6_iteration_duration_count{group="",scenario="default",tls_version=""} 45 # HELP k6_iteration_duration_current The time it took to complete one full iteration (current) # TYPE k6_iteration_duration_current gauge -k6_iteration_duration_current{group="",scenario="default"} 1419.901911 +k6_iteration_duration_current{group="",scenario="default",tls_version=""} 1247.360889 # HELP k6_iterations The aggregate number of times the VUs in the test have executed # TYPE k6_iterations counter -k6_iterations{group="",scenario="default"} 38 +k6_iterations{group="",scenario="default",tls_version=""} 45 # HELP k6_vus Current number of active virtual users # TYPE k6_vus gauge -k6_vus 1 +k6_vus{tls_version=""} 1 # HELP k6_vus_max Max possible number of virtual users # TYPE k6_vus_max gauge -k6_vus_max 1 +k6_vus_max{tls_version=""} 1 ``` diff --git a/go.mod b/go.mod index 7cc7dc8..dfcc8e0 100644 --- a/go.mod +++ b/go.mod @@ -1,10 +1,33 @@ module github.com/szkiba/xk6-prometheus -go 1.16 +go 1.18 require ( github.com/gorilla/schema v1.2.0 - github.com/prometheus/client_golang v1.12.2 + github.com/prometheus/client_golang v1.14.1-0.20221122130035-8b6e68085b10 github.com/sirupsen/logrus v1.9.0 - go.k6.io/k6 v0.39.0 + go.k6.io/k6 v0.43.0 +) + +require ( + github.com/beorn7/perks v1.0.1 // indirect + github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/fatih/color v1.13.0 // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.16 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/mstoykov/atlas v0.0.0-20220808085829-90340e9998bd // indirect + github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/common v0.37.0 // indirect + github.com/prometheus/procfs v0.8.0 // indirect + github.com/spf13/afero v1.1.2 // indirect + golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec // indirect + golang.org/x/text v0.3.7 // indirect + golang.org/x/time v0.0.0-20220922220347-f3bd1da661af // indirect + google.golang.org/protobuf v1.28.1 // indirect + gopkg.in/guregu/null.v3 v3.3.0 // indirect ) diff --git a/go.sum b/go.sum index 5338a09..5cbc55d 100644 --- a/go.sum +++ b/go.sum @@ -31,21 +31,14 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/go-ntlmssp v0.0.0-20211209120228-48547f28849e/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/DataDog/datadog-go v0.0.0-20180330214955-e67964b4021a/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI= -github.com/Soontao/goHttpDigestClient v0.0.0-20170320082612-6d28bb1415c5/go.mod h1:5Q4+CyR7+Q3VMG8f78ou+QSX/BNUNUx5W48eFRat8DQ= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -59,44 +52,26 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dop251/goja v0.0.0-20211022113120-dc8c55024d06/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= -github.com/dop251/goja v0.0.0-20220516123900-4418d4575a41/go.mod h1:TQJQ+ZNyFVvUtUEtCZxBhfWiH7RJqR3EivNmvD6Waik= -github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= -github.com/dop251/goja_nodejs v0.0.0-20211022123610-8dd9abb0616d/go.mod h1:DngW8aVqWbuLRMHItjPUyqdj+HWPvnQe8V8y1nDpIbM= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= -github.com/go-sourcemap/sourcemap v2.1.4-0.20211119122758-180fcef48034+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -138,8 +113,7 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -151,25 +125,15 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gorilla/schema v1.2.0 h1:YufUaxZYCKGFuAq3c96BOhjgd5nmXiOY9NGzF247Tsc= github.com/gorilla/schema v1.2.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlIO2eleU= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/influxdata/influxdb1-client v0.0.0-20190402204710-8ff2fc3824fc/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= -github.com/jhump/gopoet v0.0.0-20190322174617-17282ff210b3/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= -github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI= -github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ= -github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E= -github.com/jhump/protoreflect v1.12.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -181,45 +145,36 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.15.5 h1:qyCLMz2JCrKADihKOh9FxnW3houKeNsp2h5OEz0QSEA= -github.com/klauspost/compress v1.15.5/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= -github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= +github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mccutchen/go-httpbin v1.1.2-0.20190116014521-c5cb2f4802fa h1:lx8ZnNPwjkXSzOROz0cg69RlErRXs+L3eDkggASWKLo= -github.com/mccutchen/go-httpbin v1.1.2-0.20190116014521-c5cb2f4802fa/go.mod h1:fhpOYavp5g2K74XDl/ao2y4KvhqVtKlkg1e+0UaQv7I= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mstoykov/atlas v0.0.0-20220808085829-90340e9998bd h1:x/wQ8/umYu2x0icx5wNNTSK1NlkYVmsgzQ+U6v4ijv0= +github.com/mstoykov/atlas v0.0.0-20220808085829-90340e9998bd/go.mod h1:9vRHVuLCjoFfE3GT06X0spdOAO+Zzo4AMjdIwUHBvAk= github.com/mstoykov/envconfig v1.4.1-0.20220114105314-765c6d8c76f1 h1:94EkGmhXrVUEal+uLwFUf4fMXPhZpM5tYxuIsxrCCbI= -github.com/mstoykov/envconfig v1.4.1-0.20220114105314-765c6d8c76f1/go.mod h1:vk/d9jpexY2Z9Bb0uB4Ndesss1Sr0Z9ZiGUrg5o9VGk= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -231,70 +186,60 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.2 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34= -github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.14.1-0.20221122130035-8b6e68085b10 h1:anoQbV7TlbkxeFsnKa/KNQoPTdZBA/bt3wdQnf9uPt4= +github.com/prometheus/client_golang v1.14.1-0.20221122130035-8b6e68085b10/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/serenize/snaker v0.0.0-20201027110005-a7ad2135616e/go.mod h1:Yow6lPLSAXx2ifx470yD/nUe22Dv5vBvxK/UK9UUTVs= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/tidwall/gjson v1.14.1/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= -github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.k6.io/k6 v0.39.0 h1:WrMjlDk//uaKzET9FXOBUeO/ZRzMGjfkwOvr1SEccWM= -go.k6.io/k6 v0.39.0/go.mod h1:dpZO1ElDx3BxuliF/u+Rnp7jUntRssN2MmOFSda+Ugw= +go.k6.io/k6 v0.43.0 h1:61cS5WZKakkox3r0+ZKS1w1qSiSG9z7BQ5tBURSyuKw= +go.k6.io/k6 v0.43.0/go.mod h1:eViUvOYYvW9ckMoQDv4qvOVhwrYFqhUm1i+PK/VFBmI= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e h1:T8NU3HyQ8ClP4SEE+KbFlg6n0NhuTsN4MyznaarGsZM= -golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be h1:fmw3UbQh+nxngCAHrDCCztao/kbYFnWjoqop8dHx05A= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -327,7 +272,6 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -350,23 +294,21 @@ golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220531201128-c960675eff93 h1:MYimHLfoXEpOhqd/zgoA/uoXzHB86AEky4LAx5ij9xA= -golang.org/x/net v0.0.0-20220531201128-c960675eff93/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20221002022538-bcab6841153b h1:6e93nYa3hNqAvLr0pD4PN1fFS+gKzp2zAXqrnTCstqU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -378,7 +320,6 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -389,11 +330,7 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -409,27 +346,24 @@ golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec h1:BkDtF2Ih9xZ7le9ndzTA7KJow28VbQW3odyk/8drmuI= +golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -441,8 +375,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220411224347-583f2d630306 h1:+gHMid33q6pen7kv9xvT+JRinntgeXO2AeZVd0AWD3w= -golang.org/x/time v0.0.0-20220411224347-583f2d630306/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af h1:Yx9k8YCG3dvF87UAn2tu2HQLf2dt/eR1bXxpLMWeH+Y= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -486,7 +420,6 @@ golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -533,15 +466,13 @@ google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200903010400-9bfcb5116336 h1:ZcAny/XH59BbzUOKydQpvIlklwibW3T9SvDE5cGhdzc= -google.golang.org/genproto v0.0.0-20200903010400-9bfcb5116336/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 h1:hrbNEivu7Zn1pxvHk6MBrq9iE22woVILTHqexqBxe6I= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -554,11 +485,7 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.47.0 h1:9n77onPX5F3qfFCqjy9dhn8PbNQsIKeVU04J9G7umt8= -google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -571,29 +498,23 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/guregu/null.v3 v3.3.0 h1:8j3ggqq+NgKt/O7mbFVUFKUMWN+l1AmT5jQmJ6nPh2c= gopkg.in/guregu/null.v3 v3.3.0/go.mod h1:E4tX2Qe3h7QdL+uZ3a0vqvYwKQsRSQKM5V4YltdgH9Y= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/internal/prometheus.go b/internal/prometheus.go index 736c125..0b7e0c1 100644 --- a/internal/prometheus.go +++ b/internal/prometheus.go @@ -88,8 +88,8 @@ func (a *PrometheusAdapter) handleSample(sample *metrics.Sample) { handler(sample) } -func (a *PrometheusAdapter) tagsToLabelNames(tags *metrics.SampleTags) []string { - m := tags.CloneTags() +func (a *PrometheusAdapter) tagsToLabelNames(tags *metrics.TagSet) []string { + m := tags.Map() m["tls_version"] = "" // created later by k6 keys := make([]string, 0, len(m)) @@ -101,8 +101,8 @@ func (a *PrometheusAdapter) tagsToLabelNames(tags *metrics.SampleTags) []string return keys } -func (a *PrometheusAdapter) tagsToLabelValues(labelNames []string, sampleTags *metrics.SampleTags) []string { - tags := sampleTags.CloneTags() +func (a *PrometheusAdapter) tagsToLabelValues(labelNames []string, sampleTags *metrics.TagSet) []string { + tags := sampleTags.Map() labelValues := []string{} for _, label := range labelNames { @@ -180,7 +180,7 @@ func (a *PrometheusAdapter) handleTrend(sample *metrics.Sample) { } } -func (a *PrometheusAdapter) getCounter(name string, helpSuffix string, tags *metrics.SampleTags) *counterWithLabels { // nolint:dupl +func (a *PrometheusAdapter) getCounter(name string, helpSuffix string, tags *metrics.TagSet) *counterWithLabels { // nolint:dupl var counter *counterWithLabels if col, ok := a.metrics[name]; ok { @@ -215,7 +215,7 @@ func (a *PrometheusAdapter) getCounter(name string, helpSuffix string, tags *met return counter } -func (a *PrometheusAdapter) getGauge(name string, helpSuffix string, tags *metrics.SampleTags) *gaugeWithLabels { // nolint:dupl +func (a *PrometheusAdapter) getGauge(name string, helpSuffix string, tags *metrics.TagSet) *gaugeWithLabels { // nolint:dupl var gauge *gaugeWithLabels if gau, ok := a.metrics[name]; ok { @@ -250,7 +250,7 @@ func (a *PrometheusAdapter) getGauge(name string, helpSuffix string, tags *metri return gauge } -func (a *PrometheusAdapter) getSummary(name string, helpSuffix string, tags *metrics.SampleTags) *summaryWithLabels { +func (a *PrometheusAdapter) getSummary(name string, helpSuffix string, tags *metrics.TagSet) *summaryWithLabels { var summary *summaryWithLabels if sum, ok := a.metrics[name]; ok { @@ -286,7 +286,7 @@ func (a *PrometheusAdapter) getSummary(name string, helpSuffix string, tags *met return summary } -func (a *PrometheusAdapter) getHistogram(name string, helpSuffix string, buckets []float64, tags *metrics.SampleTags) *histogramWithLabels { +func (a *PrometheusAdapter) getHistogram(name string, helpSuffix string, buckets []float64, tags *metrics.TagSet) *histogramWithLabels { var histogram *histogramWithLabels if his, ok := a.metrics[name]; ok { diff --git a/magefiles/magefile.go b/magefiles/magefile.go index 670bb66..9c5dbd6 100644 --- a/magefiles/magefile.go +++ b/magefiles/magefile.go @@ -111,5 +111,5 @@ func xk6run(arg string) shellcmd.Command { } func Run() error { - return xk6run(`--out prometheus=namespace=k6 script.js`).Run() + return xk6run(`-d 1m --out prometheus=namespace=k6 script.js`).Run() } From 7f430b55d010d867a045d3e5074df8602b8f9634 Mon Sep 17 00:00:00 2001 From: Ivan SZKIBA Date: Mon, 22 May 2023 17:45:26 +0200 Subject: [PATCH 8/8] docs: remove go metrics from sample --- README.md | 87 ------------------------------------------------------- 1 file changed, 87 deletions(-) diff --git a/README.md b/README.md index d62acec..58b8a31 100644 --- a/README.md +++ b/README.md @@ -133,93 +133,6 @@ port | TCP port for HTTP endoint (default: 5656) Here is the relevant part of the metrics HTTP response: ```plain -# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. -# TYPE go_gc_duration_seconds summary -go_gc_duration_seconds{quantile="0"} 2.4485e-05 -go_gc_duration_seconds{quantile="0.25"} 4.5041e-05 -go_gc_duration_seconds{quantile="0.5"} 5.3342e-05 -go_gc_duration_seconds{quantile="0.75"} 5.9793e-05 -go_gc_duration_seconds{quantile="1"} 0.000151794 -go_gc_duration_seconds_sum 0.000642498 -go_gc_duration_seconds_count 11 -# HELP go_goroutines Number of goroutines that currently exist. -# TYPE go_goroutines gauge -go_goroutines 24 -# HELP go_info Information about the Go environment. -# TYPE go_info gauge -go_info{version="go1.18.1"} 1 -# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. -# TYPE go_memstats_alloc_bytes gauge -go_memstats_alloc_bytes 4.038792e+07 -# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. -# TYPE go_memstats_alloc_bytes_total counter -go_memstats_alloc_bytes_total 1.40677416e+08 -# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. -# TYPE go_memstats_buck_hash_sys_bytes gauge -go_memstats_buck_hash_sys_bytes 5496 -# HELP go_memstats_frees_total Total number of frees. -# TYPE go_memstats_frees_total counter -go_memstats_frees_total 2.013702e+06 -# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. -# TYPE go_memstats_gc_sys_bytes gauge -go_memstats_gc_sys_bytes 6.310184e+06 -# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. -# TYPE go_memstats_heap_alloc_bytes gauge -go_memstats_heap_alloc_bytes 4.038792e+07 -# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. -# TYPE go_memstats_heap_idle_bytes gauge -go_memstats_heap_idle_bytes 4.907008e+06 -# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. -# TYPE go_memstats_heap_inuse_bytes gauge -go_memstats_heap_inuse_bytes 5.2830208e+07 -# HELP go_memstats_heap_objects Number of allocated objects. -# TYPE go_memstats_heap_objects gauge -go_memstats_heap_objects 172212 -# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. -# TYPE go_memstats_heap_released_bytes gauge -go_memstats_heap_released_bytes 2.473984e+06 -# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. -# TYPE go_memstats_heap_sys_bytes gauge -go_memstats_heap_sys_bytes 5.7737216e+07 -# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. -# TYPE go_memstats_last_gc_time_seconds gauge -go_memstats_last_gc_time_seconds 1.6847687042787058e+09 -# HELP go_memstats_lookups_total Total number of pointer lookups. -# TYPE go_memstats_lookups_total counter -go_memstats_lookups_total 0 -# HELP go_memstats_mallocs_total Total number of mallocs. -# TYPE go_memstats_mallocs_total counter -go_memstats_mallocs_total 2.185914e+06 -# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. -# TYPE go_memstats_mcache_inuse_bytes gauge -go_memstats_mcache_inuse_bytes 9600 -# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. -# TYPE go_memstats_mcache_sys_bytes gauge -go_memstats_mcache_sys_bytes 15600 -# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. -# TYPE go_memstats_mspan_inuse_bytes gauge -go_memstats_mspan_inuse_bytes 657152 -# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. -# TYPE go_memstats_mspan_sys_bytes gauge -go_memstats_mspan_sys_bytes 685440 -# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. -# TYPE go_memstats_next_gc_bytes gauge -go_memstats_next_gc_bytes 5.153816e+07 -# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. -# TYPE go_memstats_other_sys_bytes gauge -go_memstats_other_sys_bytes 1.391104e+06 -# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. -# TYPE go_memstats_stack_inuse_bytes gauge -go_memstats_stack_inuse_bytes 983040 -# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. -# TYPE go_memstats_stack_sys_bytes gauge -go_memstats_stack_sys_bytes 983040 -# HELP go_memstats_sys_bytes Number of bytes obtained from system. -# TYPE go_memstats_sys_bytes gauge -go_memstats_sys_bytes 6.712808e+07 -# HELP go_threads Number of OS threads created. -# TYPE go_threads gauge -go_threads 13 # HELP k6_data_received The amount of received data # TYPE k6_data_received counter k6_data_received{group="",scenario="default",tls_version=""} 538700