Size: a a a

Церковь метрик

2019 December 30

vk

vladimir kolobaev in Церковь метрик
Dmitry Sergeev
то есть 266K RPS прилетает в сумме по всем серверам.
А что за парсеры, и почему так мало жрут?
Парсеры рядом с nginx. У нас  дофига nginx, нагрузка размазана. А в statsd летит примерно 6 млн/сек событий. Для него эти логи это так ...
источник

DS

Dmitry Sergeev in Церковь метрик
Aleksey Shirokikh
а зачем им вообще парсить если можно сделать friendly строки
Ну им же нужно конвертировать эту строку, пусть даже friendly, и отправить в нужном формате (события) в statsd.
источник

AS

Aleksey Shirokikh in Церковь метрик
Dmitry Sergeev
Ну им же нужно конвертировать эту строку, пусть даже friendly, и отправить в нужном формате (события) в statsd.
звучит как highload задача.
источник

DS

Dmitry Sergeev in Церковь метрик
vladimir kolobaev
Парсеры рядом с nginx. У нас  дофига nginx, нагрузка размазана. А в statsd летит примерно 6 млн/сек событий. Для него эти логи это так ...
Я понял что рядом, а что за парсеры то? У меня схема такая-же. Но я пробовал например nxlog, logstash. Жрут прилично. Но у меня nginx JSON плюет, с кучей значений. Мб если бы там было только /uri reqeust_time было бы шустрее.
источник

AS

Aleksey Shirokikh in Церковь метрик
json сложный
источник

AS

Aleksey Shirokikh in Церковь метрик
декодить надо. ескейпы убирать
источник

DS

Dmitry Sergeev in Церковь метрик
Aleksey Shirokikh
json сложный
+
источник

AS

Aleksey Shirokikh in Церковь метрик
зачем вы такие сделали не понятно
источник

S

Serega in Церковь метрик
Dmitry Sergeev
просто обидно что aws не даёт такое делать. Очень много можно решить только с помощью метрик, логи конечно тоже нужны. Но бывает достаточно только логов ошибок и долгих запросов. А это сильно экономит ресурсы
а можно подробнее про лог долгих запросов. В нжинкс уже можно conditional slow queries log ? типа логгировать только то, что c upstream_responce_time > N ?
источник

DD

Denis Derevyanchuk in Церковь метрик
источник

vk

vladimir kolobaev in Церковь метрик
Dmitry Sergeev
Я понял что рядом, а что за парсеры то? У меня схема такая-же. Но я пробовал например nxlog, logstash. Жрут прилично. Но у меня nginx JSON плюет, с кучей значений. Мб если бы там было только /uri reqeust_time было бы шустрее.
Парсер - это самописный комбайн на гошке, который у нас делает кучу всего, в том числе и логи парсить умеет.
Логи первоначально летят через rsyslog, от туда в этот комбайн, и параллельно в КХ
источник

AS

Aleksey Shirokikh in Церковь метрик
vladimir kolobaev
Парсер - это самописный комбайн на гошке, который у нас делает кучу всего, в том числе и логи парсить умеет.
Логи первоначально летят через rsyslog, от туда в этот комбайн, и параллельно в КХ
это как его. монолит во.
источник

A

Andor in Церковь метрик
vladimir kolobaev
Парсер - это самописный комбайн на гошке, который у нас делает кучу всего, в том числе и логи парсить умеет.
Логи первоначально летят через rsyslog, от туда в этот комбайн, и параллельно в КХ
А в комбайн зачем, если рсислог есть?
источник

DS

Dmitry Sergeev in Церковь метрик
Serega
а можно подробнее про лог долгих запросов. В нжинкс уже можно conditional slow queries log ? типа логгировать только то, что c upstream_responce_time > N ?
Оно не очень красиво но работает:
Например заросы которые от секунды и больше примерно так:
map $request_time $long_req {
   "~^[1-9]" 1;
   default 0;
 }
...
server {
....
access_log log_file_path_to log_format_name if=$long_req;
источник

vk

vladimir kolobaev in Церковь метрик
Andor
А в комбайн зачем, если рсислог есть?
Задача рсислога обеспечивать транспорт, логику обработки и постотправку мы ему не доверили
источник

S

Serega in Церковь метрик
Dmitry Sergeev
Оно не очень красиво но работает:
Например заросы которые от секунды и больше примерно так:
map $request_time $long_req {
   "~^[1-9]" 1;
   default 0;
 }
...
server {
....
access_log log_file_path_to log_format_name if=$long_req;
я делал так для ошибки, чет не подумал про request_time =)   По хорошему это нужно обьеденить с ошибками.
Спасибо! годно
источник

DS

Dmitry Sergeev in Церковь метрик
Serega
я делал так для ошибки, чет не подумал про request_time =)   По хорошему это нужно обьеденить с ошибками.
Спасибо! годно
Да, я и объеденяю с ошибками. Просто пример упрощенный.
источник

vk

vladimir kolobaev in Церковь метрик
Dmitry Sergeev
Оно не очень красиво но работает:
Например заросы которые от секунды и больше примерно так:
map $request_time $long_req {
   "~^[1-9]" 1;
   default 0;
 }
...
server {
....
access_log log_file_path_to log_format_name if=$long_req;
В нашем случае мы пытаемся оптимизировать работу важных ручек, к которым идёт большое количество обращений. Какие то очень долгие ручки, которые дёргают раз в год нас не очень интересуют.
источник

vk

vladimir kolobaev in Церковь метрик
При этом нас интересует результат в пределах квартала, желательно понимать какие выкатки повлияли сильнее всего
источник

DS

Dmitry Sergeev in Церковь метрик
vladimir kolobaev
Парсер - это самописный комбайн на гошке, который у нас делает кучу всего, в том числе и логи парсить умеет.
Логи первоначально летят через rsyslog, от туда в этот комбайн, и параллельно в КХ
Понятно спасибо.

А сколько ресурсов под clickhouse, statsd (rsyslog и комбайн живут на том же сервере где и nginx как я понял, поэтому их не учитываем)
источник