master
go 40 lines 764 Bytes
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package tengine
4
5 import (
6 "fmt"
7 "io"
8
9 "github.com/netdata/netdata/go/plugins/pkg/stm"
10 "github.com/netdata/netdata/go/plugins/pkg/web"
11 )
12
13 func (c *Collector) collect() (map[string]int64, error) {
14 req, err := web.NewHTTPRequest(c.RequestConfig)
15 if err != nil {
16 return nil, fmt.Errorf("failed to create HTTP request: %w", err)
17 }
18
19 var status *tengineStatus
20 var perr error
21
22 if err := web.DoHTTP(c.httpClient).Request(req, func(body io.Reader) error {
23 if status, perr = parseStatus(body); perr != nil {
24 return perr
25 }
26 return nil
27 }); err != nil {
28 return nil, err
29 }
30
31 mx := make(map[string]int64)
32
33 for _, m := range *status {
34 for k, v := range stm.ToMap(m) {
35 mx[k] += v
36 }
37 }
38
39 return mx, nil
40 }