func NewPublisher(pub *publisher.Publisher, hwm, bulkHWM int) *PacketbeatPublisher { return &PacketbeatPublisher{ pub: pub, client: pub.Connect(), done: make(chan struct{}), trans: make(chan common.MapStr, hwm), flows: make(chan []common.MapStr, bulkHWM), } }
func NewPublisher( pub publisher.Publisher, hwm, bulkHWM int, ) (*PacketbeatPublisher, error) { topo, ok := pub.(TopologyProvider) if !ok { return nil, errors.New("Requires topology provider") } return &PacketbeatPublisher{ pub: pub, topo: topo, geoLite: topo.GeoLite(), ignoreOutgoing: topo.IgnoreOutgoing(), client: pub.Connect(), done: make(chan struct{}), trans: make(chan common.MapStr, hwm), flows: make(chan []common.MapStr, bulkHWM), }, nil }
// newModuleWrappers creates new Modules and their associated MetricSets based // on the given configuration. It constructs the supporting filters and // publisher client and stores it all in a moduleWrapper. func newModuleWrappers( modulesConfig []*common.Config, r *mb.Register, publisher *publisher.Publisher, ) ([]*moduleWrapper, error) { modules, err := mb.NewModules(modulesConfig, r) if err != nil { return nil, err } // Wrap the Modules and MetricSet's. var wrappers []*moduleWrapper var errs multierror.Errors for k, v := range modules { debugf("initializing Module type %s, %T=%+v", k.Name(), k, k) f, err := filter.New(k.Config().Filters) if err != nil { errs = append(errs, errors.Wrapf(err, "module %s", k.Name())) continue } mw := &moduleWrapper{ Module: k, filters: f, pubClient: publisher.Connect(), } wrappers = append(wrappers, mw) msws := make([]*metricSetWrapper, 0, len(v)) for _, ms := range v { debugf("initializing MetricSet type %s/%s, %T=%+v", ms.Module().Name(), ms.Name(), ms, ms) msw := &metricSetWrapper{ MetricSet: ms, module: mw, stats: new(expvar.Map).Init(), } msws = append(msws, msw) // Initialize expvar stats for this MetricSet. fetches.Set(fmt.Sprintf("%s-%s", mw.Name(), msw.Name()), msw.stats) msw.stats.Add(successesKey, 0) msw.stats.Add(failuresKey, 0) msw.stats.Add(eventsKey, 0) } mw.metricSets = msws } return wrappers, errs.Err() }