github.com/netdata/go.d.plugin@v0.58.1/modules/traefik/charts.go (about)

     1  // SPDX-License-Identifier: GPL-3.0-or-later
     2  
     3  package traefik
     4  
     5  import (
     6  	"fmt"
     7  
     8  	"github.com/netdata/go.d.plugin/agent/module"
     9  )
    10  
    11  var chartTmplEntrypointRequests = module.Chart{
    12  	ID:    "entrypoint_requests_%s_%s",
    13  	Title: "Processed HTTP requests on <code>%s</code> entrypoint (protocol <code>%s</code>)",
    14  	Units: "requests/s",
    15  	Fam:   "entrypoint %s %s",
    16  	Ctx:   "traefik.entrypoint_requests",
    17  	Type:  module.Stacked,
    18  	Dims: module.Dims{
    19  		{ID: prefixEntrypointRequests + "%s_%s_1xx", Name: "1xx", Algo: module.Incremental},
    20  		{ID: prefixEntrypointRequests + "%s_%s_2xx", Name: "2xx", Algo: module.Incremental},
    21  		{ID: prefixEntrypointRequests + "%s_%s_3xx", Name: "3xx", Algo: module.Incremental},
    22  		{ID: prefixEntrypointRequests + "%s_%s_4xx", Name: "4xx", Algo: module.Incremental},
    23  		{ID: prefixEntrypointRequests + "%s_%s_5xx", Name: "5xx", Algo: module.Incremental},
    24  	},
    25  }
    26  
    27  var chartTmplEntrypointRequestDuration = module.Chart{
    28  	ID:    "entrypoint_request_duration_%s_%s",
    29  	Title: "Average HTTP request processing time on <code>%s</code> entrypoint (protocol <code>%s</code>)",
    30  	Units: "milliseconds",
    31  	Fam:   "entrypoint %s %s",
    32  	Ctx:   "traefik.entrypoint_request_duration_average",
    33  	Type:  module.Stacked,
    34  	Dims: module.Dims{
    35  		{ID: prefixEntrypointReqDurAvg + "%s_%s_1xx", Name: "1xx"},
    36  		{ID: prefixEntrypointReqDurAvg + "%s_%s_2xx", Name: "2xx"},
    37  		{ID: prefixEntrypointReqDurAvg + "%s_%s_3xx", Name: "3xx"},
    38  		{ID: prefixEntrypointReqDurAvg + "%s_%s_4xx", Name: "4xx"},
    39  		{ID: prefixEntrypointReqDurAvg + "%s_%s_5xx", Name: "5xx"},
    40  	},
    41  }
    42  
    43  var chartTmplEntrypointOpenConnections = module.Chart{
    44  	ID:    "entrypoint_open_connections_%s_%s",
    45  	Title: "Open connections on <code>%s</code> entrypoint (protocol <code>%s</code>)",
    46  	Units: "connections",
    47  	Fam:   "entrypoint %s %s",
    48  	Ctx:   "traefik.entrypoint_open_connections",
    49  	Type:  module.Stacked,
    50  }
    51  
    52  func newChartEntrypointRequests(entrypoint, proto string) *module.Chart {
    53  	return newEntrypointChart(chartTmplEntrypointRequests, entrypoint, proto)
    54  }
    55  
    56  func newChartEntrypointRequestDuration(entrypoint, proto string) *module.Chart {
    57  	return newEntrypointChart(chartTmplEntrypointRequestDuration, entrypoint, proto)
    58  }
    59  
    60  func newChartEntrypointOpenConnections(entrypoint, proto string) *module.Chart {
    61  	return newEntrypointChart(chartTmplEntrypointOpenConnections, entrypoint, proto)
    62  }
    63  
    64  func newEntrypointChart(tmpl module.Chart, entrypoint, proto string) *module.Chart {
    65  	chart := tmpl.Copy()
    66  	chart.ID = fmt.Sprintf(chart.ID, entrypoint, proto)
    67  	chart.Title = fmt.Sprintf(chart.Title, entrypoint, proto)
    68  	chart.Fam = fmt.Sprintf(chart.Fam, entrypoint, proto)
    69  	for _, d := range chart.Dims {
    70  		d.ID = fmt.Sprintf(d.ID, entrypoint, proto)
    71  	}
    72  	return chart
    73  }