惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cisco Talos Blog
Cisco Talos Blog
V
V2EX
C
Check Point Blog
GbyAI
GbyAI
D
Docker
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog RSS Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
T
Troy Hunt's Blog
博客园 - Franky
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Microsoft Security Blog
Microsoft Security Blog
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学
The Cloudflare Blog
S
SegmentFault 最新的问题
Latest news
Latest news
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
I
InfoQ
博客园 - 【当耐特】
NISL@THU
NISL@THU
A
About on SuperTechFans
T
Tailwind CSS Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
The Hacker News
The Hacker News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Scott Helme
Scott Helme
雷峰网
雷峰网
C
CXSECURITY Database RSS Feed - CXSecurity.com
Security Latest
Security Latest
V
Vulnerabilities – Threatpost
Security Archives - TechRepublic
Security Archives - TechRepublic
A
Arctic Wolf
Hacker News: Ask HN
Hacker News: Ask HN
N
News and Events Feed by Topic
IT之家
IT之家
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
aimingoo的专栏
aimingoo的专栏
T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
SecWiki News
SecWiki News
大猫的无限游戏
大猫的无限游戏
S
Security Affairs
The Register - Security
The Register - Security
www.infosecurity-magazine.com
www.infosecurity-magazine.com
L
LINUX DO - 热门话题
T
Tor Project blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Логи, метрики и счёт в конце месяца: как телеметрия превращается в архитектурный долг
Ксения Мосеенкова · 2026-05-29 · via Все публикации подряд на Хабре

Логи, метрики и счёт в конце месяца: как телеметрия превращается в архитектурный долг

Средний

7 мин

6.3K

Самые интересные проблемы с телеметрией, с которыми мне приходилось сталкиваться, обычно начинались с инцидента, во время которого нам не хватило видимости. После разбора инцидента мы добавляли недостающее поле. Затем «на всякий случай» мы добавляли еще и смежные поля, потому что никто не хотел, чтобы в следующий раз зеркало погасло. На тот момент решение казалось разумным, и именно поэтому такой беспорядок так трудно заметить.

После достаточного количества инцидентов начинаешь носить с собой каждый шрам: отладочные логи от прошлых отказов, метки, добавленные ради одного расследования, дашборды, собранные во время выкатки, оповещения, созданные после одной тяжелой ночи. Никто из тех, кто все это добавлял, не думал, что создает проблему с observability. Им казалось, что они просто полируют зеркало для следующего дежурного инженера.

Потом растет счет, замедляются запросы, дашборды противоречат друг другу, а служба безопасности находит идентификаторы клиентов там, куда они вообще не должны были попасть. В конце концов вы очищаете несколько полей, сокращаете срок хранения, удаляете устаревшие дашборды и жестче применяете выборку. Так и складывается схема: согрешить, покаяться, повторить.

К телеметрии относятся как к выхлопу

Телеметрия часто начинается подобно выхлопу. Логи, метрики, трейсы, профили, события и записи аудита выходят из приложения «сбоку».

Схема базы данных, контракт API, очередь, кэш или новая внешняя зависимость обычно проходят проверку; продуктовые данные, чувствительные с точки зрения безопасности, тоже так или иначе проверяются. Изменения в телеметрии часто проскакивают как деталь реализации.

В продакшене телеметрия потребляет процессорное время, память, сетевые ресурсы и диск. Она требует внимания инженеров, времени на проверку безопасности и бюджета. Она может стать настолько тяжелой, что начинает мешать той нагрузке, которую должна отражать.

Ресурсы контейнера приложения рассчитывают под бизнес-логику, а затем к нему присоединяются агент, вспомогательный контейнер, коллектор, компонент журналирования или профилировщик. Возможно, накладные расходы на каждый под совсем небольшие, но в масштабе всего парка они могут стать огромными. Выхлоп уходит наружу и исчезает. Зеркало остается внутри и влияет на то, что вы видите.

Счет за телеметрию – это архитектурное ревью

Счет за телеметрию показывает, что ваша архитектура замела под ковер. Он вскрывает беспорядок, который казался безобидным, пока был размазан по сервисам: слишком много хитроумных компонентов, слишком много ретраев, проверок работоспособности, меток и отладочных логов, тихо размножающихся в фоне. В момент создания никто не ощущает ущерба, потому что контур обратной связи находится намного дальше по цепочке.

Сегодня разработчик добавляет поле, рецензент видит в нем полезный контекст, позднее платформенная команда замечает всплеск поступления данных, затем финансовая служба видит счет, а спустя месяцы служба безопасности обнаруживает случайную утечку данных во время проверки. К этому моменту разработчик, возможно, уже перешел в другую команду. А может быть, сменился владелец сервиса.

Так локальное решение превратилось в глобальные издержки. Тот, кто создает нагрузку для системы, не тот же человек, который несет издержки от очередей и задержек, а тот, кто понимает риск, может не иметь полномочий его заблокировать. Счет – единственное зеркало, которое никогда не лжет.

Кардинальность – это место, где контекст превращается в стоимость

Самое распространенное техническое объяснение стоимости телеметрии – кардинальность. В базе данных временных рядов метрика становится сочетанием своего имени и своих меток. Каждый уникальный набор меток создает отдельный временной ряд.

С этим все в порядке, пока метки имеют ограниченное множество значений: service, env, region, status_code, route_template, team, zone. Такие метки описывают стабильные эксплуатационные измерения. Они позволяют группировать, фильтровать, настраивать оповещения и сравнивать данные, не создавая безграничного хаоса.

Затем команда добавляет user_id в метрику, чтобы разобраться с проблемой горячей партиции. Через три недели платформенная команда видит взрывной рост числа активных временных рядов, руководителю команды сообщают об огромном счете, а служба безопасности понимает, что идентификаторы клиентов теперь оказались частью хранилища метрик.

На уровне хранения система видит декартово произведение всех возможных значений. Именно там сталкиваются инженерный замысел, физика базы данных, ценообразование вендора и пробелы во владении.

Логи – это тревога с временными метками

Метрики обычно разрастаются из-за кардинальности. Логи обычно разрастаются из-за страха. И этот страх рационален. Одна пропущенная строка лога во время инцидента может стоить нескольких часов. Поэтому команды усваивают простой урок и добавляют больше логов.

Журналирование без вопроса, на который оно должно отвечать, оставляет нас с выгрузками логов. Хороший лог объясняет переход состояния, пересечение границы, принятое решение, отказ, переход на резервный сценарий или сбой. Требования соответствия усугубляют ситуацию, когда срок хранения и индексирование начинают считать одним и тем же решением. Возможно, вам нужно хранить записи аудита девяносто дней. Но это не означает, что каждая отладочная строка должна три месяца лежать в горячем поисковом индексе.

Настоящая единица телеметрии – решение

Большинство обсуждений стоимости телеметрии начинается с объема: гигабайты в день, спаны в секунду, активные временные ряды, проиндексированные логи, срок хранения, кардинальность, нагрузка от запросов. Я полностью за то, чтобы отслеживать метрики, но настоящая единица измерения не в этом.

Настоящая единица телеметрии – решение. Какое решение поддерживает этот сигнал? Эта метрика управляет оповещением? Этот лог объясняет переход состояния? Эти трейсы помогают диагностировать путь, заметный пользователю? Эта запись аудита закрывает требование соответствия? Это поле помогает службе безопасности расследовать злоупотребления? Эта панель мониторинга влияет на решение о развертывании? Этот атрибут помогает сравнить нормальное и аномальное поведение системы?

Возьмем два сигнала Spark. Первый – spark_job_task_failures_total с метками failure_type, stage и application. По нему срабатывает оповещение. Когда значение резко растет, дежурный инженер может понять, из-за чего падают jobs: из-за ошибок нехватки памяти, сбоев при чтении shuffle-данных, потери executor’а или тайм-аутов. Этот сигнал меняет следующий шаг, а значит, заслуживает своего места.

Второй – метрика heartbeat’ов executor’а, перегруженная executor_id, application_name, user_id и сгенерированным идентификатором запуска, добавленная на лету ради более глубокой видимости. Вполне понятно. Никто не поступал глупо. Тем не менее у этой метрики нет ни оповещения, ни инструкции по реагированию, а есть только один заброшенный дашборд. Количество временных рядов продолжает множиться по всем executor’ам, пользователям, приложениям и запускам.

Именно поэтому я думаю, что в отношении телеметрии команды полностью забывают принцип YAGNI – «вам это не понадобится». Разница в том, что если забыть его в коде, появляется технический долг, а если забыть его в телеметрии, где-то далеко по цепочке появляется прибавка к счету.

Инструменты не решают, кто может сказать «нет»

Инструменты – удобный аргумент, потому что он кажется техническим. Datadog или Grafana. SaaS или самостоятельное развертывание. OpenTelemetry или агент поставщика. Но инструменты не отвечают на более сложный вопрос: когда следует добавлять телеметрию и кому разрешено сказать «нет»?

Кто утверждает метку с неограниченным множеством значений? Кто решает, место ли customer_id в метрике, атрибуте трассировки, структурированном логе или вообще нигде? Кто может заставить отладочные логи истекать через семь дней? Кто владеет дашбордом после инцидента, ради которого он был создан?

Это уже политическая работа. Без нее зеркало продолжает отражать всё подряд, независимо от того, нужно ли кому-то всё еще на это смотреть.

У владения есть адрес

Новое измерение метрики должно восприниматься скорее как миграция базы данных, чем как небольшая правка в журналировании. Это не значит, что платформенная команда должна проверять каждый пулл-реквест с новой метрикой. Так возникли бы неправильные стимулы. Команды либо начали бы избегать полезной телеметрии, потому что процесс кажется тяжелым, либо кто-то стал бы формально штамповать согласования, лишь бы работа не останавливалась. Так получается худшая версия управления: более медленная поставка изменений, фиктивное согласование и по-прежнему никакого настоящего владения.

Масштабируемый вариант – это защитные ограничители. Дайте командам стандартные библиотеки, утвержденные измерения и скучные значения по умолчанию: service, env, region, team, zone, status_code, route_template. Затем блокируйте мусор на границе. CI отклоняет user_id, session_id, trace_id, идентификаторы контейнеров и сгенерированные идентификаторы запусков. Коллектор удаляет небезопасные атрибуты. Шлюз отбрасывает проверки работоспособности, отладочный шум и малоценный мусор до того, как они попадут к вендору. Ручная проверка по-прежнему нужна для таких вещей, как новое глобальное измерение, чувствительный идентификатор, новый экспортер, более длительный класс хранения и так далее.

Для сроков хранения нужна та же дисциплина. Каждый сигнал должен рождаться с ожидаемой продолжительностью жизни. Метрики, управляющие оповещениями, хранятся дольше. Диагностические сигналы получают более короткое горячее окно. Отладочные сигналы быстро удаляются. Все неклассифицированное по умолчанию живет недолго. Если метрика не поддерживает оповещение, дашборд, инструкцию по реагированию, SLO, проверку развертывания, процесс соответствия требованиям или расследование безопасности, она не должна жить вечно.

Платформенная команда отвечает за поддерживаемый путь, список запретов, правила коллектора, процесс исключений и бюджетные границы. Сервисные команды отвечают за сигналы, которые они испускают, и решениями, которые эти сигналы поддерживают.

Сломанное зеркало хуже, чем отсутствие зеркала

Бесполезный сигнал легко заблокировать на уровне коллектора. Но через шесть месяцев у него уже есть дашборд, полумертвое оповещение и одна страшная история об инциденте, которой все прикрываются, чтобы его защитить. Плохая телеметрия недолго остается безвредной. Вскоре люди начинают относиться к ней как к чему-то, что обязательно должно существовать.

Отсутствие телеметрии – это честная слепота. Плохая телеметрия хуже. Она дает людям то, чему можно доверять, и при этом незаметно приучает организацию принимать решения на основе шума. Именно эту часть мы недооцениваем. Зеркало находится не снаружи машины. Оно меняет то, как машина ведет себя.

Телеметрия редко ломается резко — обычно она просто постепенно превращается в шум, который никто уже не контролирует. И чем больше в инфраструктуре автоматизации, платформенных слоев и AI-инструментов, тем сложнее становится понимать, где сигнал действительно помогает принимать решения, а где только создает нагрузку и иллюзию контроля. Если вам интересны такие темы — приходите на бесплатные уроки:

  • 3 июня в 20:00. «Как измерить рост производительности команды от внедрения ИИ». Записаться

  • 16 июня в 20:00. «От кода к людям: как вырасти в руководителя команды и не возненавидеть свою работу». Записаться

Еще больше бесплатных уроков от преподавателей курсов можно посмотреть в календаре мероприятий.