示例#1
0
func (this *EventFetcher) EventHistory() []Event {
	time := time.Now().Add(-1 * time.Hour).Unix()
	kafka.Infof("eventFetcher", "SELECT * FROM events WHERE topic = '%s' AND second > %d;", this.config.Topic, time)
	data := this.connection.Query(`SELECT * FROM events WHERE topic = ? AND second > ?;`, this.config.Topic, time).Iter()
	var events []Event
	var topic string
	var partition string
	var consumerId string
	var eventName string
	var second int64
	var operation string
	var value int64
	var cnt int64
	for data.Scan(&topic, &second, &partition, &consumerId, &eventName, &operation, &cnt, &value) {
		event := Event{
			Topic:      topic,
			Second:     second,
			Partition:  partition,
			ConsumerId: consumerId,
			EventName:  eventName,
			Operation:  operation,
			Cnt:        cnt,
			Value:      value,
		}
		if operation == "avg10second" {
			events = append(events, event)
		}
	}
	if err := data.Close(); err != nil {
		log.Fatal(err)
	}
	return events
}
示例#2
0
func GetStrategy(consumerId string) func(*kafkaClient.Worker, *kafkaClient.Message, kafkaClient.TaskId) kafkaClient.WorkerResult {
	consumeRate := metrics.NewRegisteredMeter(fmt.Sprintf("%s-ConsumeRate", consumerId), metrics.DefaultRegistry)
	return func(_ *kafkaClient.Worker, msg *kafkaClient.Message, id kafkaClient.TaskId) kafkaClient.WorkerResult {
		kafkaClient.Infof("main", "Got a message: %s", string(msg.Value))
		consumeRate.Mark(1)

		return kafkaClient.NewSuccessfulResult(id)
	}
}