diff options
Diffstat (limited to 'plugins/http/metrics.go')
-rw-r--r-- | plugins/http/metrics.go | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/plugins/http/metrics.go b/plugins/http/metrics.go deleted file mode 100644 index d7a9110b..00000000 --- a/plugins/http/metrics.go +++ /dev/null @@ -1,92 +0,0 @@ -package http - -import ( - "strconv" - - "github.com/prometheus/client_golang/prometheus" - handler "github.com/spiral/roadrunner/v2/pkg/worker_handler" -) - -func (p *Plugin) MetricsCollector() []prometheus.Collector { - // p - implements Exporter interface (workers) - // other - request duration and count - return []prometheus.Collector{p, p.requestsExporter.requestDuration, p.requestsExporter.requestCounter} -} - -func (p *Plugin) metricsCallback(event interface{}) { - switch e := event.(type) { - case handler.ResponseEvent: - p.requestsExporter.requestCounter.With(prometheus.Labels{ - "status": strconv.Itoa(e.Response.Status), - }).Inc() - - p.requestsExporter.requestDuration.With(prometheus.Labels{ - "status": strconv.Itoa(e.Response.Status), - }).Observe(e.Elapsed().Seconds()) - case handler.ErrorEvent: - p.requestsExporter.requestCounter.With(prometheus.Labels{ - "status": "500", - }).Inc() - - p.requestsExporter.requestDuration.With(prometheus.Labels{ - "status": "500", - }).Observe(e.Elapsed().Seconds()) - } -} - -type workersExporter struct { - wm *prometheus.Desc - workersMemory uint64 -} - -func newWorkersExporter() *workersExporter { - return &workersExporter{ - wm: prometheus.NewDesc("rr_http_workers_memory_bytes", "Memory usage by HTTP workers.", nil, nil), - workersMemory: 0, - } -} - -func (p *Plugin) Describe(d chan<- *prometheus.Desc) { - // send description - d <- p.workersExporter.wm -} - -func (p *Plugin) Collect(ch chan<- prometheus.Metric) { - // get the copy of the processes - workers := p.Workers() - - // cumulative RSS memory in bytes - var cum uint64 - - // collect the memory - for i := 0; i < len(workers); i++ { - cum += workers[i].MemoryUsage - } - - // send the values to the prometheus - ch <- prometheus.MustNewConstMetric(p.workersExporter.wm, prometheus.GaugeValue, float64(cum)) -} - -type requestsExporter struct { - requestCounter *prometheus.CounterVec - requestDuration *prometheus.HistogramVec -} - -func newRequestsExporter() *requestsExporter { - return &requestsExporter{ - requestCounter: prometheus.NewCounterVec( - prometheus.CounterOpts{ - Name: "rr_http_request_total", - Help: "Total number of handled http requests after server restart.", - }, - []string{"status"}, - ), - requestDuration: prometheus.NewHistogramVec( - prometheus.HistogramOpts{ - Name: "rr_http_request_duration_seconds", - Help: "HTTP request duration.", - }, - []string{"status"}, - ), - } -} |