summaryrefslogtreecommitdiffstats
path: root/src/go/collectors/go.d.plugin/modules/haproxy/init.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/go/collectors/go.d.plugin/modules/haproxy/init.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/go/collectors/go.d.plugin/modules/haproxy/init.go b/src/go/collectors/go.d.plugin/modules/haproxy/init.go
new file mode 100644
index 000000000..2163b9624
--- /dev/null
+++ b/src/go/collectors/go.d.plugin/modules/haproxy/init.go
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+package haproxy
+
+import (
+ "errors"
+
+ "github.com/netdata/netdata/go/go.d.plugin/pkg/prometheus"
+ "github.com/netdata/netdata/go/go.d.plugin/pkg/prometheus/selector"
+ "github.com/netdata/netdata/go/go.d.plugin/pkg/web"
+)
+
+func (h Haproxy) validateConfig() error {
+ if h.URL == "" {
+ return errors.New("'url' is not set")
+ }
+ if _, err := web.NewHTTPRequest(h.Request); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (h Haproxy) initPrometheusClient() (prometheus.Prometheus, error) {
+ httpClient, err := web.NewHTTPClient(h.Client)
+ if err != nil {
+ return nil, err
+ }
+
+ prom := prometheus.NewWithSelector(httpClient, h.Request, sr)
+ return prom, nil
+}
+
+var sr, _ = selector.Expr{
+ Allow: []string{
+ metricBackendHTTPResponsesTotal,
+ metricBackendCurrentQueue,
+ metricBackendQueueTimeAverageSeconds,
+ metricBackendBytesInTotal,
+ metricBackendResponseTimeAverageSeconds,
+ metricBackendSessionsTotal,
+ metricBackendCurrentSessions,
+ metricBackendBytesOutTotal,
+ },
+}.Parse()