diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-26 08:15:24 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-26 08:15:35 +0000 |
commit | f09848204fa5283d21ea43e262ee41aa578e1808 (patch) | |
tree | c62385d7adf209fa6a798635954d887f718fb3fb /src/go/collectors/go.d.plugin/modules/portcheck/collect.go | |
parent | Releasing debian version 1.46.3-2. (diff) | |
download | netdata-f09848204fa5283d21ea43e262ee41aa578e1808.tar.xz netdata-f09848204fa5283d21ea43e262ee41aa578e1808.zip |
Merging upstream version 1.47.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/go/collectors/go.d.plugin/modules/portcheck/collect.go')
-rw-r--r-- | src/go/collectors/go.d.plugin/modules/portcheck/collect.go | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/src/go/collectors/go.d.plugin/modules/portcheck/collect.go b/src/go/collectors/go.d.plugin/modules/portcheck/collect.go deleted file mode 100644 index dab45ec41..000000000 --- a/src/go/collectors/go.d.plugin/modules/portcheck/collect.go +++ /dev/null @@ -1,77 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later - -package portcheck - -import ( - "fmt" - "sync" - "time" -) - -type checkState string - -const ( - checkStateSuccess checkState = "success" - checkStateTimeout checkState = "timeout" - checkStateFailed checkState = "failed" -) - -func (pc *PortCheck) collect() (map[string]int64, error) { - wg := &sync.WaitGroup{} - - for _, p := range pc.ports { - wg.Add(1) - go func(p *port) { pc.checkPort(p); wg.Done() }(p) - } - wg.Wait() - - mx := make(map[string]int64) - - for _, p := range pc.ports { - mx[fmt.Sprintf("port_%d_current_state_duration", p.number)] = int64(p.inState) - mx[fmt.Sprintf("port_%d_latency", p.number)] = int64(p.latency) - mx[fmt.Sprintf("port_%d_%s", p.number, checkStateSuccess)] = 0 - mx[fmt.Sprintf("port_%d_%s", p.number, checkStateTimeout)] = 0 - mx[fmt.Sprintf("port_%d_%s", p.number, checkStateFailed)] = 0 - mx[fmt.Sprintf("port_%d_%s", p.number, p.state)] = 1 - } - - return mx, nil -} - -func (pc *PortCheck) checkPort(p *port) { - start := time.Now() - conn, err := pc.dial("tcp", fmt.Sprintf("%s:%d", pc.Host, p.number), pc.Timeout.Duration()) - dur := time.Since(start) - - defer func() { - if conn != nil { - _ = conn.Close() - } - }() - - if err != nil { - v, ok := err.(interface{ Timeout() bool }) - if ok && v.Timeout() { - pc.setPortState(p, checkStateTimeout) - } else { - pc.setPortState(p, checkStateFailed) - } - return - } - pc.setPortState(p, checkStateSuccess) - p.latency = durationToMs(dur) -} - -func (pc *PortCheck) setPortState(p *port, s checkState) { - if p.state != s { - p.inState = pc.UpdateEvery - p.state = s - } else { - p.inState += pc.UpdateEvery - } -} - -func durationToMs(duration time.Duration) int { - return int(duration) / (int(time.Millisecond) / int(time.Nanosecond)) -} |