From a3ea0c7bda6cae7a88af7dd005cd52ac40d42e57 Mon Sep 17 00:00:00 2001 From: Shulhan Date: Wed, 17 Aug 2022 14:41:39 +0700 Subject: all: make the forwarders configuration fields to be generic Instead of single forwarder, Influxd, the Config struct now can have one or more forwarders. The kind of forwarders is defined by it subsection name, for example `[forwarder "influxd"]` defined a forwarder for influxd. --- haminer.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'haminer.go') diff --git a/haminer.go b/haminer.go index 256a068..9b1e080 100644 --- a/haminer.go +++ b/haminer.go @@ -39,15 +39,21 @@ func NewHaminer(cfg *Config) (h *Haminer) { } func (h *Haminer) createForwarder() { - if len(h.cfg.Influxd.Url) == 0 { - return - } - var ( - fwder = NewInfluxdClient(&h.cfg.Influxd) + fwCfg *ConfigForwarder + influxdc *InfluxdClient + fwName string ) - h.ff = append(h.ff, fwder) + for fwName, fwCfg = range h.cfg.Forwarders { + switch fwName { + case forwarderInfluxd: + influxdc = NewInfluxdClient(fwCfg) + if influxdc != nil { + h.ff = append(h.ff, influxdc) + } + } + } } // Start will listen for UDP packet and start consuming log, parse, and -- cgit v1.3