нод vmstorage. фактор репликации 2. Допустим одна из нод была выведена на некоторое время в maintenance, в него не писались и из него не читались данные. Дыр на графиках не было.
maintenance закончился, для ноды были разрешены запись и чтение. Но на графиках повились дыры, хотя данные присутствуют на какой-то другой реплике в силу числа репликации.
Так и задумано или я что-то пропустил?
Уберите параметр -replicationFactor из настроек vmselect. Это наиболее вероятная причина появления пропусков на графиках в данной ситуации. При установленном параметре -replicationFactor=N на vmselect, он не дожидается ответа от N-1 самых медленных vmstorage нод, перед отдачей ответа на запрос. Такое поведение позволяет ускорить отдачу ответа, когда на vmstorage нодах хранятся ровно по N копий всех данных. Если же часть данных хранится с меньшим количеством копий, то данное поведение может вернуть неполные данные. В этом случае нужно убрать параметр -replicationFactor из настроек vmselect, чтобы он дожидался ответа от всех vmstorage нод перед отправкой ответа на запрос. Vminsert пытается сделать по -replicationFactor копий для поступающих данных на разных vmstorage нодах, даже если в какой-то момент времени часть vmstorage нод недоступна. Но он может сделать меньше копий данных, если в какой-то момент времени доступно меньше, чем -replicationFactor vmstorage нод. При этом vminsert запишет сообщение в лог об этом. Может, это ваш случай. Крому того, что нужно убрать -replicationFactor из настроек vmselect нод, желательно также сбросить кэш ответов на vmselect нодах. См. https://docs.victoriametrics.com/#cache-removal и https://docs.victoriametrics.com/#backfilling
Да, это багофича - https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1207
Обсуждают сегодня