Size: a a a

2018 January 16

vk

vladimir kolobaev in Moira
отказоустойчивый, масштабируемый statsd на Rust
источник

O

Oleg in Moira
https://github.com/moira-alert/moira/blob/master/cmd/filter/main.go#L118 а почему бы тут воркеров не наделать? даже если один упрется в медленный редис, то очередь хоть будет разгребаться или это специально так?
источник
2018 January 19

O

Oleg in Moira
привет, хочу отсюда убрать транзакцию https://github.com/moira-alert/moira/blob/master/database/redis/metric.go#L31 , у вас есть какие-нибудь возражения? 🙂 просто когда мы получаем несколько тысяч метрик по триггеру, то все встает на несколько секунд, от этого и были тормоза
источник

AB

Arkady Borovsky in Moira
Странно, что встает все. Там же куча чекеров. По дефолу это количество равно количеству ядер
источник

O

Oleg in Moira
встает фильтр
источник

AB

Arkady Borovsky in Moira
О_о
источник

O

Oleg in Moira
ну он писать не может
источник

AB

Arkady Borovsky in Moira
метод GetMetricsValues в чекере используется же
источник

O

Oleg in Moira
см мое сообщение про вореры
источник

O

Oleg in Moira
ну смотри: getmetricvalues фигачит транзакцию и редис несколько секунд делает только её, все остальные ждут
источник

AB

Arkady Borovsky in Moira
Хм, тоесть ты утверждаешь что просто редису плохо становится?
источник

O

Oleg in Moira
за это время у фильтра набивается очередь
источник

AB

Arkady Borovsky in Moira
Ага, забавно
источник

O

Oleg in Moira
да, я включал monitor и видно что пока он все прожует проходит секунд 5
источник

O

Oleg in Moira
ну у нас инервал хранения метрик сутки
источник

AB

Arkady Borovsky in Moira
Слушай, если у тебя получится переписать это место я буду только рад)
источник

AB

Arkady Borovsky in Moira
На самом деле забавно, что мы в старом чекере не схватили такого поведения
источник

AB

Arkady Borovsky in Moira
Ща там код почитаю
источник

AB

Arkady Borovsky in Moira
Очень странно
источник

AB

Arkady Borovsky in Moira
pipeline = yield self.rc.pipeline()
       for metric in metrics:
           pipeline.zrangebyscore(METRIC_PREFIX.format(metric), min=startTime, max=endTime, withscores=True)
       results = yield pipeline.execute_pipeline()
источник