1
0
Fork 0
telegraf/plugins/outputs/zabbix/autoregister.go
Daniel Baumann 4978089aab
Adding upstream version 1.34.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-05-24 07:26:29 +02:00

38 lines
1.1 KiB
Go

package zabbix
import (
"time"
)
// Add adds a host to the list of hosts to send autoregister data to Zabbix.
// Only store information if autoregister is enabled (config Autoregister is not empty).
func (z *Zabbix) autoregisterAdd(hostname string) {
if z.Autoregister == "" {
return
}
if _, exists := z.autoregisterLastSend[hostname]; !exists {
z.autoregisterLastSend[hostname] = time.Time{}
}
}
// Push sends autoregister data to Zabbix for each host.
func (z *Zabbix) autoregisterPush() {
if z.Autoregister == "" {
return
}
// For each "host" tag seen, send an autoregister request to Zabbix server.
// z.AutoregisterSendPeriod is the interval at which requests are resend.
for hostname, timeLastSend := range z.autoregisterLastSend {
if time.Since(timeLastSend) > time.Duration(z.AutoregisterResendInterval) {
z.Log.Debugf("Autoregistering host %q", hostname)
if err := z.sender.RegisterHost(hostname, z.Autoregister); err != nil {
z.Log.Errorf("Autoregistering host %q: %v", hostname, err)
}
z.autoregisterLastSend[hostname] = time.Now()
}
}
}