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 }
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) } }