#troubleshooting #billing #CostOptimization #newrelic
Внезапно вырос ценник на
Заметили не сразу, не было настроены алерты по биллингу.
Увидели лишь в начале месяца, при выставлении счёта.
Я не сильно тогда был знаком с
Поковырявшись в интерфейсе и немного документации, обнаружил, что деньги начали списываться в раздел логирования.
А ведь это странно, все логи у нас пишутся в ELK стек в самом кубе, зачем ещё и в
Первым делом смотрю в ньюрелике кто именно пишет логи - ага, одно единственное приложение.
Иду в git, захожу в раздел PR, вижу там миллиард PR, закрываю, ибо даже с поиском ничего не найти.
Клонирую репозиторий, смотрю локально.
Ага, у нас агент newrelic ставится через Dockerfile
Дальше ковыряюсь в конфигах самого приложения, но там ничего интересного.
Нет в явном виде "логирование енаблед тру" или подобного. Странно.
Ладно, ну поехали, смотрим через git кто когда вносил изменения в докерфайлэ, всё равно другой зацепки нет.
И буквально через несколько коммитов вижу зацепку - коллега разработчик обновил версию
Само собой нашёл и его PR и того, кто его аппрувил.
Но была обновлена только версия, больше ничего не менялось.
Херня какая.
Ладно, иду в POD, смотрю конфиг, а что внутри
и поиском вижу там нечто типа
Пилю себе ветку, в этой ветке делаю даунгрейд до старой версии
Да бл.
Бегу в документацию и нахожу
https://docs.newrelic.com/docs/apm/agents/php-agent/configuration/php-agent-configuration/
От суки, ладно, пилю быстрофикс (не удивлюсь, если он до сих пор там в докерфайле, лол).
Качу PR, аппрув, мерж, логи перестали идти в newrelic, прайс не растёт.
Ну а дальше как обычно: оповещение коллегам, ата-та так не делайте плиз, читайте доки перед апдейтом(да ладно, кому я вру, я бы тоже не читал), вот рут коз, вот фикс, вот ссылки, вот пруфы.
Все виновато покивали и сделали вид, что запомнили и не повторят ошибок. Да.
Потеря денег всего $460 за пару недель.
Идём работать дальше.
Внезапно вырос ценник на
newrelic.Заметили не сразу, не было настроены алерты по биллингу.
Увидели лишь в начале месяца, при выставлении счёта.
Я не сильно тогда был знаком с
newrelic, этой штукой обычно пользовались коллеги-разработчики, я больше по инфре и стеку с VM/Prometheus/Grafana, но деньги есть деньги, надо разбираться.Поковырявшись в интерфейсе и немного документации, обнаружил, что деньги начали списываться в раздел логирования.
А ведь это странно, все логи у нас пишутся в ELK стек в самом кубе, зачем ещё и в
newrelic писать, а там за каждый чих деньги просят.Первым делом смотрю в ньюрелике кто именно пишет логи - ага, одно единственное приложение.
Иду в git, захожу в раздел PR, вижу там миллиард PR, закрываю, ибо даже с поиском ничего не найти.
Клонирую репозиторий, смотрю локально.
Ага, у нас агент newrelic ставится через Dockerfile
ENV NEWRELIC_VERSION 11.6.0.19
...
ADD https://download.newrelic.com/php_agent/archive/${NEWRELIC_VERSION}/newrelic-php5-${NEWRELIC_VERSION}-linux.tar.gz /tmp/
RUN export NR_INSTALL_USE_CP_NOT_LN=1 NR_INSTALL_SILENT=1 \
&& tar -xf /tmp/newrelic-php5-${NEWRELIC_VERSION}-linux.tar.gz -C /tmp \
&& /tmp/newrelic-php5-*/newrelic-install install \
&& rm -rf /tmp/*
...
Дальше ковыряюсь в конфигах самого приложения, но там ничего интересного.
Нет в явном виде "логирование енаблед тру" или подобного. Странно.
Ладно, ну поехали, смотрим через git кто когда вносил изменения в докерфайлэ, всё равно другой зацепки нет.
git log Dockerfile
И буквально через несколько коммитов вижу зацепку - коллега разработчик обновил версию
newrelic.Само собой нашёл и его PR и того, кто его аппрувил.
Но была обновлена только версия, больше ничего не менялось.
Херня какая.
Ладно, иду в POD, смотрю конфиг, а что внутри
cat /usr/local/etc/php/conf.d/newrelic.ini
и поиском вижу там нечто типа
newrelic.application_logging.enabled = true
Пилю себе ветку, в этой ветке делаю даунгрейд до старой версии
newrelic, собираю имадж, смотрю в нём конфигnewrelic.application_logging.enabled = false
Да бл.
Бегу в документацию и нахожу
https://docs.newrelic.com/docs/apm/agents/php-agent/configuration/php-agent-configuration/
PHP agent version 10.1.0 lets you forward your PHP logs with APM logs in context. As of version 10.3.0, the logging metrics and agent log forwarding features are enabled by default. The value newrelic.application_logging.enabled controls whether or not the logs in context feature is active or inactive.
От суки, ладно, пилю быстрофикс (не удивлюсь, если он до сих пор там в докерфайле, лол).
RUN sed "s/^.*;newrelic.application_logging.enabled.*/newrelic.application_logging.enabled = false/" \
-i /usr/local/etc/php/conf.d/newrelic.ini
Качу PR, аппрув, мерж, логи перестали идти в newrelic, прайс не растёт.
Ну а дальше как обычно: оповещение коллегам, ата-та так не делайте плиз, читайте доки перед апдейтом(да ладно, кому я вру, я бы тоже не читал), вот рут коз, вот фикс, вот ссылки, вот пруфы.
Все виновато покивали и сделали вид, что запомнили и не повторят ошибок. Да.
Потеря денег всего $460 за пару недель.
Идём работать дальше.
5👍19❤1