<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div data-marker="__QUOTED_TEXT__"><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><blockquote></blockquote>Evgeniy Berdnikov Wrote:<br>-------------------------------------------------------<br>> On Wed, Feb 14, 2024 at 02:30:57PM +0300, Anatoliy Melnik via nginx-ru<br>> wrote:<br>> > Все как раз получилось, дальше с этим работать было неудобно.<br>> > К тупой записи в файл претензий не было.<br>> <br>> Вы не сообщили, почему "дальше с этим работать было неудобно".<br>> Может, поясните? Если посмотреть на озвученный список задач --<br>> <br>> > Зачем мне это нужно:<br>> [...]<br>> > Регулярно требуется "нестандартная" статистика, например<br>> > "средний размер ($body_bytes_sent) по запросам типа "sc012" за<br>> сутки"<br>> > "соотношение обращений по http и https ($schema) по запросам типа<br>> "q1wr"<br>> > за час"<br>> > "наименьшее/среднее/наибольшее время ($request_time) по запросам<br>> типа<br>> > "sc012" за..."<br>> > "объем запросов типа "q1wr" (сумма $body_bytes_sent таких<br>> запросов) в<br>> > общем объеме трафика (сумма $body_bytes_sent всех запросов)"<br>> > и т.д.<br>> <br>> то вроде трудно придумать что-то проще и эффективней, чем прост<br>> парсинг<br>> логов. А лог что из файла, что из пайпа, что из сокета читается<br>> абсолютно одинаково, одним и тем же read(), и парсится одинаково.<br>> <br>> Но из файла якобы неудобно! Чем же неудобно, почему? При чём тут<br>> вообще<br>> какие-то unix-сокеты, если задача в разборе последовательно идущих<br>> строк<br>> и каких-то элементарных вычислениях?</div><br><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">1. первоначально логи сливались по сети и централизованно считались.(без записи в файлы)<br>при высоких нагрузках пошли расхождения.<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">2. Хорошо -- пусть каждый прокси сам свое считает: исключаются потери по сети, каждый прокси в этом плане становится автономно-независимой единицей.<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">При высоких нагрузках -- расхождения в статистике.<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">3. Хорошо, запишем в файл прям с nginx-а. файл распарсим-посчитаем.<br>3а.простыми методами (типа grep и awk) обработка статистики за 30 секунд занимает больше 30 секунд.<br> 3б.пишем в файл->читаем из файла->удаляем файл в объемах 30-60Мбайт/сек... лично мое мнение - файл тут явно лишний. (Ваше мнение может отличатся от моего, я абсолютно не настаиваю).<br> </div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">> <br>> > Чисто техничски можно и без access-логов, будете сами<br>> реализовывать нечто<br>> > подобное -- выберете более близкое вам решение.<br>> <br>> Вы не назвали альтернативные решения.</div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Это сделали за меня:<br>Написать свой бекэнд (как вариант на Go) и отзеркалировать туда запросы с фронотов....<br>Не имею ничего против -- реализовуйте! Я не настаиваю на своем варианте. </div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Не продвигаю как единственно правильный (или у вас иное мнение?)<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br>> <br>> > Мой вариант также страдает набором недостатков, но поставленные<br>> задачи<br>> > решает с устраивающей меня эффективностью.<br>> <br>> Вы не конкретизировали, какие недостатки видите у своего варианта и<br>> почему его плюсы по сравнению с другими подходами перевешивают.<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Ну почему же?<br>Недостатки:</div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Скорее всего более высокая нагрузка на CPU по сравнению с альтернативой (замеров и испытаний никто не проводил, это чисто теоретический вывод)<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Предположительно масштабируемость моего решения хуже по сравнению с предложенной альтернативой (чисто теоретический вывод)</div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Т.к. я не программист -- само качество решения в плане программного кода далеко от идеала.<br>Жесткое неприятие выбранного мной подхода со стороны некоторых участников обсуждения (почему-- для меня до сих пор загадка).<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Плюсы:<br>При передаче всего этого хозяйства дальше на обслуживание в моем варианте разберется любой начинающий питонист, в предложенной схеме с зеркалированием квалификация нужна будет повыше мне кажется. <br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Запаса по вычислительной мощности более чем достаточно.<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">На существующих мощностях практически гарантированный порог 720тыс/сек. прогнозируемый, (исходя из показателей работы системы на 240тыс/сек на одном сервере) -- порядка 1.1-1.2 млн./сек.<br>Что в 3 (проверенный) и 5 (прогноз) раз превышает имеющийся на данный момент уровень.<br>Чего хватает на 4-5 лет при росте нагрузки на 22-24% ежегодно. (имеющийся на данный момент прогноз оптимистичный оценивается максимум в 14-16% в год)<br>Затраты времени на реализацию значительно меньше, чем вариант со своим бекэндом.<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">> <br>> > Свой вариант я могу абсолютно спокойно масштабировать до<br>> необходимых мне<br>> > значений, и эти значения почти на порядок выше текущих нагрузок.<br>> <br>> Вы крутейший специалист :)) в своих собственных глазах, конечно.</div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Из лабиринтов собственных заблуждений скорее выберется тот, кто готов признать, что он заблуждается.<br>Лично я этот путь приодолел не единожды. Чего и вам желаю.<br>> <br>> > Концптуальная ошибка в этом опусе -- вы не обслуживание клиентов.<br>> > И "непродуктивность пути" определяете в данной конкретной<br>> ситуации не вы.<br>> > И конечную реализацию делаете не вы.<br>> > И за результаты отвечаете не вы.<br>> > Как и ответственность за все выполненное в итоге так же не на<br>> вас.<br>> <br>> И что, это лишает собеседника право высказать своё мнение о<br>> правильности<br>> постановки задачи? </div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;">Откуда такие выводы?</div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;">Собеседник не единожды высказал свое мнение и даже больше. <br>Придумал у меня проблему, которой нет. Привел для нее решение... нет смысла пересказывать -- все есть в ветке.<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;"><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;">Я его принял к сведению, но разве я обязан после этого изменить свое собственное? <br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;">Разве я кого-то пытался убедить, что его подход в корне не верен, как в этом пытаются убедить меня?<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;"><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;">Если я начну вас убеждать в неправильности вашего выбора... ну пусть книг, которые вы читаете -- это ОБЯЗАТЕЛЬНО должно как-то кардинально повлиять на ваши вкусы?<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;">Возможно вы полистаете что-то из рекомендованного, может понравится.. А если нет? <br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;"><br></div></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">> Вы также не сообщили, каковы критерии<br>> "продуктивности<br>> пути", почему выбрана конретная реализация и т.д. Поэтому нет никаких<br>> оснований даже подозревать, что Вы что-то делаете правильно... :)<br>> </div>Ну нет оснований - и нет, не подозревайте.<br>Кто судит о правильности или не правильности? </div><div>Вы для себя сами решаете что правильно, а что нет. Я поступаю аналогичным образом... В чем я не прав? <br>Лишь в том, что выбрал подход, который вы считаете неправильным? И что? Ваше мнение я выслушал, принял к сведению и остался при своем. <br></div><br><div>Критерии продуктивности:<br></div><div>У меня все выполняет ту функцию, которую я и хотел, в нужных мне объемах и с устраивающим меня запасом прочности -- для меня вполне критерий.</div><div>Ваше мнение может отличаться от моего. Может очень сильно отличаться. Может вообще не иметь с моим мнением ничего общего... и что? для вас это повод для... чего?<br>Я же свои задачи решаю, а не ваши.</div><div>Когда и если я буду решать задачи по вашим ТЗ и постановкам -- буду реализовывать ваши подходы-мнения-рекомендации </div><div>в полном объеме вне зависимости от своего собственного мнения о правильности или не правильности выбранного вами подхода.</div><div><br style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">> > Эффективность реализации весьма эфемерное понятие.<br>> > Эффективность с точки зрения чего?<br>> > Мы с вами эффективность считаем по совершенно разным критериям.<br>> > Это не хорошо и не плохо. Это просто по-разному :)<br>> <br>> Вы не конкретизировали, по каким критериям оцениваете эффективность.<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">На глазок :) <br>мне кажется, что так-то и так-то будет проще, быстрее и удобнее...<br>А нет, ошибочка вышла, не проще, но удобнее... Не, вариант что-то не очень. <br>Подумаем иначе, если зайти не в лоб, а с боку --- так, эта проблема снимается, эта тоже, но всплывет вот эта!<br>Насколько она портит картинку по сравнению с предидущими? так, не будем ломиться в стену, поищем дверь..<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Зачем при достижении пункта Д, при старте из пункта А я обязательно пытаюсь пройти через Л и Т? так ли уж необходимо там побывать?...<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Ну и так далее. Обычная, по сути, мыслительная деятельность.<br>На финише и складывается представление об некой эфемерной "эффективности" как найденного решения, так и его альтернатив.<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Но все начинается с определения цели дальнейших действий, оценки доступного ресурса, </div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">желаемого результата в 3-х вариантах (удовлетворительно, хорошо, отлично), имеющегося в наличии решения, </div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">которое из "хорошо" стало работать "удовлетворительно" (если таковое имеется)...<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Но вряд ли это для кого-то новость :)</div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Предложение с написанием собственного бекэнда по пунктам "ресурс" и "имеющееся в наличии" проигрывало. в моем случае.<br>Ваше мнение может отличаться от моего :)<br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br>У вас критерии кардинально отличаются? <br>Вы оную считаете по какой-то отдельной формуле?<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">> <br>> > Оптимизировать можно по разным критериям.<br>> > Вы исходите из одних критериев оптимальности, я из других.<br>> > И это абсолютно нормально.<br>> > Не стоит убеждать меня в "неправильности" моих критериев.<br>> <br>> Ненормально то, что один собеседник пытается аргументировать свои<br>> мысли,<br>> а другой всё время отвечает "Не учите меня жить! У меня другая<br>> ситуация!"<br>> А какая именно -- не говорит.<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">С моей колокольни это выглядело несколько иначе.<br>Лично я там обнаружил, что у меня проблемы которых у меня на самом деле нет.<br>Что я решаю не те проблемы, которые должен.<br>Что я возвожу напраслину на nginx и чуть ли не на все комьюнити... ну и далее по тексту.<br>Хотя я с самого начала сказал, что свои вопросы я решил.<br>Или я опять не прав -- самонадеян -- заблуждаюсь -- ....?? <br><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">> -- <br>> Eugene Berdnikov<br>> _______________________________________________<br>> nginx-ru mailing list<br>> nginx-ru@nginx.org<br>> https://mailman.nginx.org/mailman/listinfo/nginx-ru</div></div></div></div></div></div></div></div></div></div></div></div></div><br></div></div></body></html>