Size: a a a

Kubernetes — русскоговорящее сообщество

2020 October 28

ST

Sergey Trapeznikov in Kubernetes — русскоговорящее сообщество
может вопрос все же к церкви метрик, но может тут кто шарит, по какой формуле можно высчитать процент cpu util для пода, от его лимита?
Обычно все метрики пляшут от лимита хоста
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Sergey Trapeznikov
может вопрос все же к церкви метрик, но может тут кто шарит, по какой формуле можно высчитать процент cpu util для пода, от его лимита?
Обычно все метрики пляшут от лимита хоста
у меня вроде есть, там просто. Как буду за компом скину
источник

ST

Sergey Trapeznikov in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
у меня вроде есть, там просто. Как буду за компом скину
источник

TL

Timofey Larkin in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
тебе может быть понадобится соединить логи разных подсистем и приложений, по разным признакам и полям в одном месте , накрутить визуализации на них, с аггрегацией, медианами, перцентлями и отдать всё это программисту, вот смотри такой был инцидент. Так вот, это делается в graylog за пять минут, для этого даже не надо создавать отдельный дашборд. Grafana и loki с их грепом даже рядом не стоят на мой взгляд. Да и тормозит там все, заливаешь 20K логов в секунду и приехали, невозможно использовать. Но может это мой такой негативный опыт, и надо ещё раз пробовать в новых версиях 🤷‍♂
Аггрегация и, тем более перцентили с медианами - это не про текстовые данные. Если кто-то превращает текстовое поле в числовую метрику и жалуется, что в каких-то системах это сложно, вопрос не к системе, а к подходу к сбору телеметрии приложения. А системе, которая делает это легко и просто минус в карму за продвижение плохих практик.
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Timofey Larkin
Аггрегация и, тем более перцентили с медианами - это не про текстовые данные. Если кто-то превращает текстовое поле в числовую метрику и жалуется, что в каких-то системах это сложно, вопрос не к системе, а к подходу к сбору телеметрии приложения. А системе, которая делает это легко и просто минус в карму за продвижение плохих практик.
телеметрия логи не отменяет. Есть системы которые дают отличный инструментарий для анализа логов, не вижу причин их не использовать. Можно например специально отправлять в логи, запросы которые выполнялись очень долго, для дальнейшего подробного исследования. Время запроса - числовое поле.
источник

TL

Timofey Larkin in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
телеметрия логи не отменяет. Есть системы которые дают отличный инструментарий для анализа логов, не вижу причин их не использовать. Можно например специально отправлять в логи, запросы которые выполнялись очень долго, для дальнейшего подробного исследования. Время запроса - числовое поле.
Звучит как будто программеру впадлу задуматься, что именно он хочет логом сказать и он такой "насру-ка я здесь plaintext'ом и пускай sre сам потом из этого строит свои графики и разбирается". А можно было положить, скажем, длительность запроса в гистограмму, а не писать "http get /endpoint 503 (0.495s)"
источник

TL

Timofey Larkin in Kubernetes — русскоговорящее сообщество
Логи, имхо, то, что полезно прочитать глазами, а не разводить аналитику. Типа этот конкретный запрос зафейлился потому, что пришли такие-то невалидные данные, а ожидались такие.
источник

TL

Timofey Larkin in Kubernetes — русскоговорящее сообщество
А если их агрегировать, оцифровывать и графики строить, значит кто-то поленился заимплементить метрику
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Timofey Larkin
Звучит как будто программеру впадлу задуматься, что именно он хочет логом сказать и он такой "насру-ка я здесь plaintext'ом и пускай sre сам потом из этого строит свои графики и разбирается". А можно было положить, скажем, длительность запроса в гистограмму, а не писать "http get /endpoint 503 (0.495s)"
Еще раз, метрики - не отменяют логов. По гистограмме ты можешь понять, что какое-то количество запросов выполнялилось в определённом промежутке времени запроса. Но для дальнейшего  исследования, тебе могут понадобиться подробности о таких запросах, аргументы, размер тела запроса, заголовки и другие данные, которые могут понять программисту, почему такой то запрос выполнялся долго.
источник

TL

Timofey Larkin in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
Еще раз, метрики - не отменяют логов. По гистограмме ты можешь понять, что какое-то количество запросов выполнялилось в определённом промежутке времени запроса. Но для дальнейшего  исследования, тебе могут понадобиться подробности о таких запросах, аргументы, размер тела запроса, заголовки и другие данные, которые могут понять программисту, почему такой то запрос выполнялся долго.
И когда ты по метрикам увидел, когда это произошло и в каком приложении, на кой черт тебе сдалась полнотекстовая индексация?
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Timofey Larkin
А если их агрегировать, оцифровывать и графики строить, значит кто-то поленился заимплементить метрику
ты можешь с группировать например  их по userId, и найти всех юзеров у которых произошёл конкретный баг 🤷‍♂
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Timofey Larkin
И когда ты по метрикам увидел, когда это произошло и в каком приложении, на кой черт тебе сдалась полнотекстовая индексация?
чтобы посмотреть конкретный запрос, ведь остальные 99 таких же, выполнялись нормально
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
для чего тогда логи, если не для детального исследования проблемы?
источник

TL

Timofey Larkin in Kubernetes — русскоговорящее сообщество
Так если логи структурированы, то поля типа error_code итп в локи индексируются
источник

TL

Timofey Larkin in Kubernetes — русскоговорящее сообщество
А вот массивный search engine типа эластика, который индексирует непосредственно message - нафиг не нужен
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Timofey Larkin
Так если логи структурированы, то поля типа error_code итп в локи индексируются
он в группировки не умеет. Прилетело 10k ошибок, надо понять, от 100 это юзеров или это 10k юзеров кинуло по одной ошибке.
источник

TL

Timofey Larkin in Kubernetes — русскоговорящее сообщество
Плюс к тому времени, когда ты более менее локализовал инцидент в пространстве и времени, линейный поиск оказывается быстрее, чем по индексам, так как область поиска сузилась настолько, что индексация не даёт выигрыша
источник

TL

Timofey Larkin in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
он в группировки не умеет. Прилетело 10k ошибок, надо понять, от 100 это юзеров или это 10k юзеров кинуло по одной ошибке.
Если я выгружу их текстом, по json на строчку, я утилитами командной строки решу задачу быстрее и качественнее
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Timofey Larkin
Плюс к тому времени, когда ты более менее локализовал инцидент в пространстве и времени, линейный поиск оказывается быстрее, чем по индексам, так как область поиска сузилась настолько, что индексация не даёт выигрыша
хз, loki у меня безбожно тормозил.
источник

TL

Timofey Larkin in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
он в группировки не умеет. Прилетело 10k ошибок, надо понять, от 100 это юзеров или это 10k юзеров кинуло по одной ошибке.
А ещё есть сентри, который сам группирует ошибки
источник