Add traffic size metrics
Co-authored-by: OmarElawady <omarelawady1998@gmail.com> Co-authored-by: Mathieu Lonjaret <mathieu.lonjaret@gmail.com> Co-authored-by: Romain <rtribotte@users.noreply.github.com>
This commit is contained in:
parent
10528c973a
commit
d578ed7327
26 changed files with 1125 additions and 339 deletions
|
@ -32,27 +32,33 @@ const (
|
|||
tlsCertsNotAfterTimestamp = metricsTLSPrefix + "certs_not_after"
|
||||
|
||||
// entry point.
|
||||
metricEntryPointPrefix = MetricNamePrefix + "entrypoint_"
|
||||
entryPointReqsTotalName = metricEntryPointPrefix + "requests_total"
|
||||
entryPointReqsTLSTotalName = metricEntryPointPrefix + "requests_tls_total"
|
||||
entryPointReqDurationName = metricEntryPointPrefix + "request_duration_seconds"
|
||||
entryPointOpenConnsName = metricEntryPointPrefix + "open_connections"
|
||||
metricEntryPointPrefix = MetricNamePrefix + "entrypoint_"
|
||||
entryPointReqsTotalName = metricEntryPointPrefix + "requests_total"
|
||||
entryPointReqsTLSTotalName = metricEntryPointPrefix + "requests_tls_total"
|
||||
entryPointReqDurationName = metricEntryPointPrefix + "request_duration_seconds"
|
||||
entryPointOpenConnsName = metricEntryPointPrefix + "open_connections"
|
||||
entryPointReqsBytesTotalName = metricEntryPointPrefix + "requests_bytes_total"
|
||||
entryPointRespsBytesTotalName = metricEntryPointPrefix + "responses_bytes_total"
|
||||
|
||||
// router level.
|
||||
metricRouterPrefix = MetricNamePrefix + "router_"
|
||||
routerReqsTotalName = metricRouterPrefix + "requests_total"
|
||||
routerReqsTLSTotalName = metricRouterPrefix + "requests_tls_total"
|
||||
routerReqDurationName = metricRouterPrefix + "request_duration_seconds"
|
||||
routerOpenConnsName = metricRouterPrefix + "open_connections"
|
||||
metricRouterPrefix = MetricNamePrefix + "router_"
|
||||
routerReqsTotalName = metricRouterPrefix + "requests_total"
|
||||
routerReqsTLSTotalName = metricRouterPrefix + "requests_tls_total"
|
||||
routerReqDurationName = metricRouterPrefix + "request_duration_seconds"
|
||||
routerOpenConnsName = metricRouterPrefix + "open_connections"
|
||||
routerReqsBytesTotalName = metricRouterPrefix + "requests_bytes_total"
|
||||
routerRespsBytesTotalName = metricRouterPrefix + "responses_bytes_total"
|
||||
|
||||
// service level.
|
||||
metricServicePrefix = MetricNamePrefix + "service_"
|
||||
serviceReqsTotalName = metricServicePrefix + "requests_total"
|
||||
serviceReqsTLSTotalName = metricServicePrefix + "requests_tls_total"
|
||||
serviceReqDurationName = metricServicePrefix + "request_duration_seconds"
|
||||
serviceOpenConnsName = metricServicePrefix + "open_connections"
|
||||
serviceRetriesTotalName = metricServicePrefix + "retries_total"
|
||||
serviceServerUpName = metricServicePrefix + "server_up"
|
||||
metricServicePrefix = MetricNamePrefix + "service_"
|
||||
serviceReqsTotalName = metricServicePrefix + "requests_total"
|
||||
serviceReqsTLSTotalName = metricServicePrefix + "requests_tls_total"
|
||||
serviceReqDurationName = metricServicePrefix + "request_duration_seconds"
|
||||
serviceOpenConnsName = metricServicePrefix + "open_connections"
|
||||
serviceRetriesTotalName = metricServicePrefix + "retries_total"
|
||||
serviceServerUpName = metricServicePrefix + "server_up"
|
||||
serviceReqsBytesTotalName = metricServicePrefix + "requests_bytes_total"
|
||||
serviceRespsBytesTotalName = metricServicePrefix + "responses_bytes_total"
|
||||
)
|
||||
|
||||
// promState holds all metric state internally and acts as the only Collector we register for Prometheus.
|
||||
|
@ -166,18 +172,30 @@ func initStandardRegistry(config *types.Prometheus) Registry {
|
|||
Name: entryPointOpenConnsName,
|
||||
Help: "How many open connections exist on an entrypoint, partitioned by method and protocol.",
|
||||
}, []string{"method", "protocol", "entrypoint"})
|
||||
entryPointReqsBytesTotal := newCounterFrom(stdprometheus.CounterOpts{
|
||||
Name: entryPointReqsBytesTotalName,
|
||||
Help: "The total size of requests in bytes handled by an entrypoint, partitioned by status code, protocol, and method.",
|
||||
}, []string{"code", "method", "protocol", "entrypoint"})
|
||||
entryPointRespsBytesTotal := newCounterFrom(stdprometheus.CounterOpts{
|
||||
Name: entryPointRespsBytesTotalName,
|
||||
Help: "The total size of responses in bytes handled by an entrypoint, partitioned by status code, protocol, and method.",
|
||||
}, []string{"code", "method", "protocol", "entrypoint"})
|
||||
|
||||
promState.vectors = append(promState.vectors,
|
||||
entryPointReqs.cv,
|
||||
entryPointReqsTLS.cv,
|
||||
entryPointReqDurations.hv,
|
||||
entryPointOpenConns.gv,
|
||||
entryPointReqsBytesTotal.cv,
|
||||
entryPointRespsBytesTotal.cv,
|
||||
)
|
||||
|
||||
reg.entryPointReqsCounter = entryPointReqs
|
||||
reg.entryPointReqsTLSCounter = entryPointReqsTLS
|
||||
reg.entryPointReqDurationHistogram, _ = NewHistogramWithScale(entryPointReqDurations, time.Second)
|
||||
reg.entryPointOpenConnsGauge = entryPointOpenConns
|
||||
reg.entryPointReqsBytesCounter = entryPointReqsBytesTotal
|
||||
reg.entryPointRespsBytesCounter = entryPointRespsBytesTotal
|
||||
}
|
||||
|
||||
if config.AddRoutersLabels {
|
||||
|
@ -198,17 +216,29 @@ func initStandardRegistry(config *types.Prometheus) Registry {
|
|||
Name: routerOpenConnsName,
|
||||
Help: "How many open connections exist on a router, partitioned by service, method, and protocol.",
|
||||
}, []string{"method", "protocol", "router", "service"})
|
||||
routerReqsBytesTotal := newCounterFrom(stdprometheus.CounterOpts{
|
||||
Name: routerReqsBytesTotalName,
|
||||
Help: "The total size of requests in bytes handled by a router, partitioned by service, status code, protocol, and method.",
|
||||
}, []string{"code", "method", "protocol", "router", "service"})
|
||||
routerRespsBytesTotal := newCounterFrom(stdprometheus.CounterOpts{
|
||||
Name: routerRespsBytesTotalName,
|
||||
Help: "The total size of responses in bytes handled by a router, partitioned by service, status code, protocol, and method.",
|
||||
}, []string{"code", "method", "protocol", "router", "service"})
|
||||
|
||||
promState.vectors = append(promState.vectors,
|
||||
routerReqs.cv,
|
||||
routerReqsTLS.cv,
|
||||
routerReqDurations.hv,
|
||||
routerOpenConns.gv,
|
||||
routerReqsBytesTotal.cv,
|
||||
routerRespsBytesTotal.cv,
|
||||
)
|
||||
reg.routerReqsCounter = routerReqs
|
||||
reg.routerReqsTLSCounter = routerReqsTLS
|
||||
reg.routerReqDurationHistogram, _ = NewHistogramWithScale(routerReqDurations, time.Second)
|
||||
reg.routerOpenConnsGauge = routerOpenConns
|
||||
reg.routerReqsBytesCounter = routerReqsBytesTotal
|
||||
reg.routerRespsBytesCounter = routerRespsBytesTotal
|
||||
}
|
||||
|
||||
if config.AddServicesLabels {
|
||||
|
@ -237,6 +267,14 @@ func initStandardRegistry(config *types.Prometheus) Registry {
|
|||
Name: serviceServerUpName,
|
||||
Help: "service server is up, described by gauge value of 0 or 1.",
|
||||
}, []string{"service", "url"})
|
||||
serviceReqsBytesTotal := newCounterFrom(stdprometheus.CounterOpts{
|
||||
Name: serviceReqsBytesTotalName,
|
||||
Help: "The total size of requests in bytes received by a service, partitioned by status code, protocol, and method.",
|
||||
}, []string{"code", "method", "protocol", "service"})
|
||||
serviceRespsBytesTotal := newCounterFrom(stdprometheus.CounterOpts{
|
||||
Name: serviceRespsBytesTotalName,
|
||||
Help: "The total size of responses in bytes returned by a service, partitioned by status code, protocol, and method.",
|
||||
}, []string{"code", "method", "protocol", "service"})
|
||||
|
||||
promState.vectors = append(promState.vectors,
|
||||
serviceReqs.cv,
|
||||
|
@ -245,6 +283,8 @@ func initStandardRegistry(config *types.Prometheus) Registry {
|
|||
serviceOpenConns.gv,
|
||||
serviceRetries.cv,
|
||||
serviceServerUp.gv,
|
||||
serviceReqsBytesTotal.cv,
|
||||
serviceRespsBytesTotal.cv,
|
||||
)
|
||||
|
||||
reg.serviceReqsCounter = serviceReqs
|
||||
|
@ -253,6 +293,8 @@ func initStandardRegistry(config *types.Prometheus) Registry {
|
|||
reg.serviceOpenConnsGauge = serviceOpenConns
|
||||
reg.serviceRetriesCounter = serviceRetries
|
||||
reg.serviceServerUpGauge = serviceServerUp
|
||||
reg.serviceReqsBytesCounter = serviceReqsBytesTotal
|
||||
reg.serviceRespsBytesCounter = serviceRespsBytesTotal
|
||||
}
|
||||
|
||||
return reg
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue