• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang publisher.Client类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/elastic/beats/libbeat/publisher.Client的典型用法代码示例。如果您正苦于以下问题:Golang Client类的具体用法?Golang Client怎么用?Golang Client使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Client类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: createJobTask

func createJobTask(
	client publisher.Client,
	name string,
	r monitors.TaskRunner,
) scheduler.TaskFunc {
	return func() []scheduler.TaskFunc {
		event, next, err := r.Run()
		if err != nil {
			logp.Err("Job %v failed with: ", err)
		}

		if event != nil {
			event["monitor"] = name
			client.PublishEvent(event)
		}

		if len(next) == 0 {
			return nil
		}

		cont := make([]scheduler.TaskFunc, len(next))
		for i, n := range next {
			cont[i] = createJobTask(client, name, n)
		}
		return cont
	}
}
开发者ID:andrewkroh,项目名称:beats,代码行数:27,代码来源:manager.go


示例2: run

func (w *worker) run(client publisher.Client) {
	if *max > 0 {
		m := *max
		for w.running() && m >= 0 {
			event := w.gen()
			client.PublishEvent(event)
			m--
		}
	} else {
		for w.running() {
			event := w.gen()
			client.PublishEvent(event)
		}
	}

}
开发者ID:urso,项目名称:generatorbeat,代码行数:16,代码来源:generatorbeat.go


示例3: PublishChannels

// PublishChannels publishes the events read from each channel to the given
// publisher client. If the publisher client blocks for any reason then events
// will not be read from the given channels.
//
// This method blocks until all of the channels have been closed
// and are fully read. To stop the method immediately, close the channels and
// close the publisher client to ensure that publishing does not block. This
// may result is some events being discarded.
func PublishChannels(client publisher.Client, cs ...<-chan common.MapStr) {
	var wg sync.WaitGroup

	// output publishes values from c until c is closed, then calls wg.Done.
	output := func(c <-chan common.MapStr) {
		defer wg.Done()
		for event := range c {
			client.PublishEvent(event)
		}
	}

	// Start an output goroutine for each input channel in cs.
	wg.Add(len(cs))
	for _, c := range cs {
		go output(c)
	}

	wg.Wait()
}
开发者ID:ChongFeng,项目名称:beats,代码行数:27,代码来源:publish.go


示例4: run

func (w *worker) run(client publisher.Client) {
	ticker := time.NewTicker(w.period)
	for {
		stats := map[string]float64{}
		now := time.Now()
		last := now

		for {
			select {
			case <-w.done:
				return
			case <-ticker.C:
			}

			data, err := w.readStats()
			if err != nil {
				logp.Warn("Failed to read vars from %v: %v", w.host, err)
				break
			}

			last = now
			now = time.Now()
			dt := now.Sub(last).Seconds()

			event := common.MapStr{
				"@timestamp": common.Time(now),
				"type":       w.name,
				"remote":     w.host,
			}
			for name, v := range data {
				if old, ok := stats[name]; ok {
					event[fmt.Sprintf("d_%s", name)] = (v - old) / dt
				}
				event[fmt.Sprintf("total_%s", name)] = v
				stats[name] = v
			}
			client.PublishEvent(event)
		}
	}
}
开发者ID:urso,项目名称:govarbeat,代码行数:40,代码来源:govarbeat.go


示例5: Scanner

func Scanner(config config.PathConfig, client publisher.Client) {

	duration, _ := time.ParseDuration(config.Period)

	ticker := time.NewTicker(duration)
	defer ticker.Stop()

	for {
		select {

		case <-ticker.C:
		}

		events := []common.MapStr{}

		logp.Debug("mod", "Scanning glob: %s", config.Glob)

		files, _ := filepath.Glob(config.Glob)
		for _, file := range files {
			logp.Debug("mod", "Get stats for file: %s", file)
			stat, _ := os.Lstat(file)

			event := common.MapStr{
				"@timestamp": common.Time(time.Now()),
				"type":       "modbeat",
				"name":       stat.Name(),
				"path":       file,
				"mode":       stat.Mode(),
				"modtime":    stat.ModTime(),
				"size":       stat.Size(),
			}
			events = append(events, event)
		}
		client.PublishEvents(events)
		logp.Debug("mod", "Events sent for %s files", len(events))
	}
}
开发者ID:ruflin,项目名称:modbeat,代码行数:37,代码来源:mod.go


示例6: run

func (w *worker) run(client publisher.Client) {
	for w.running() {
		event := w.gen()
		client.PublishEvent(event)
	}
}
开发者ID:ruflin,项目名称:generatorbeat,代码行数:6,代码来源:generatorbeat.go


示例7: run

func (w *worker) run(client publisher.Client) {
	ticker := time.NewTicker(w.period)
	for {
		stats := make(map[string]float64)
		now := time.Now()
		last := now
		for {
			select {
			case <-w.done:
				return
			case <-ticker.C:
			}

			resp, err := http.Get(fmt.Sprintf("http://%s/debug/vars", w.host))
			if err != nil {
				logp.Info("Failed to retrieve variables: %v", err)
				break
			}

			body, err := ioutil.ReadAll(resp.Body)
			resp.Body.Close()
			if err != nil {
				logp.Info("Error reading response: %v", err)
				break
			}

			last = now
			now = time.Now()
			dt := now.Sub(last).Seconds()

			var data map[string]interface{}
			err = json.Unmarshal(body, &data)
			if err != nil {
				logp.Warn("Failed to decode json: %v", err)
				break
			}

			event := common.MapStr{
				"@timestamp": common.Time(now),
				"type":       w.name,
			}
			for name, raw := range data {
				has := true
				var total float64
				switch v := raw.(type) {
				case int:
					total = float64(v)
				case float64:
					total = v
				default:
					has = false
				}
				if !has {
					continue
				}

				if old, ok := stats[name]; ok {
					event[fmt.Sprintf("total_%s", name)] = total
					event[fmt.Sprintf("d_%s", name)] = (total - old) / dt
				}
				stats[name] = total
			}
			client.PublishEvent(event)
		}
	}
}
开发者ID:ruflin,项目名称:govarbeat,代码行数:66,代码来源:govarbeat.go



注:本文中的github.com/elastic/beats/libbeat/publisher.Client类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang publisher.Publisher类代码示例发布时间:2022-05-23
下一篇:
Golang paths.Resolve函数代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap