
Все любят алерты.
Конечно, гораздо лучше получить уведомление когда что-то произошло (или починилось), чем сидеть, смотреть на графики и искать аномалии.

Все любят алерты.
Конечно, гораздо лучше получить уведомление когда что-то произошло (или починилось), чем сидеть, смотреть на графики и искать аномалии.

Поставщик платформы мониторинга New Relic меняет большую часть своей бизнес-модели, открывая исходный код ряда агентов в каталоге продуктов. В процессе, который руководство описало как адаптацию к «коренным изменениям» по отношению к Open Source, компания начала открывать на GitHub исходный код своих агентов, а также инструментария интеграции с общедоступными облачными сервисами и прочими проектами.

Читая различные каналы и рассылки, я часто встречаю статьи о конкретных «болях» и проблемах, возникающих при росте компании, когда надежность и масштабируемость выходят на первый план. Эта статья — иная. Здесь нет подробного разбора конкретных архитектурных решений или пошагового руководства по изменению инженерной культуры. Скорее, это взгляд сверху на те вызовы, которые возникают при эксплуатации распределенных систем, и отправная точка, которая поможет сориентироваться в потоке терминов, аббревиатур и технологий.
Предлагаю вашему вниманию перевод статьи, написанной инженером из Uber.
* * *
В последние несколько лет я создавал и обслуживал большую распределённую систему платежей в Uber. За это время я многое узнал о концепциях распределённых архитектур и на своём опыте выяснил, насколько трудно создавать и обслуживать высоконагруженные системы с высокой доступностью. Построение такой системы — работа интересная. Мне нравится планировать, как система будет обрабатывать рост трафика в 10-100 раз, обеспечивать надёжность данных вне зависимости от аппаратных сбоев. Однако эксплуатация большой распределённой системы дала мне неожиданный опыт.
Читать полностью »
На последнем Zabbix Summit 2019 вместе с выходом Zabbix 4.4 был анонсирован новый Zabbix Agent 2, ключевая фишка которого — возможность написания плагинов к нему на языке Go. И многие сразу стали спрашивать: а как же, собственно, эти плагины писать, как они устроены? Где взять документацию и примеры?
В этой статье я хочу дать ответы на эти и некоторые другие вопросы. Обо всём по порядку, но если вы из тех, кто сразу рвётся в бой, смело пропускайте вступительную часть и переходите к практике ⎝◔◞ ◔⎠
Итак...

Чем сложнее система, тем больше она обрастает всевозможными алертами. И возникает потребность на эти самые алерты реагировать, агрегировать их и визуализировать. Думаю, ситуация, знакомая многим до нервного тика.
Решение, о котором пойдёт речь, не самое неожиданное, но полноценной статьи по этой теме поиск не выдаёт.
Поэтому я решил поделиться опытом FunCorp и рассказать о том, как выстроен процесс дежурств, кто звонит, почему и как на это всё можно смотреть.
Всем привет!
Я уже рассказывал в этом блоге об организации модульной системы мониторинга для микросервисной архитектуры и о переходе с Graphite+Whisper на Graphite+ClickHouse для хранения метрик в условиях высоких нагрузок. После чего мой коллега Сергей Носков писал о самом первом звене нашей системы мониторинга — разработанном нами Bioyino, распределённом масштабируемом агрегаторе метрик.
Пришло время немного освежить информацию о том как мы готовим мониторинг в Авито — последняя наша статья была аж в далеком 2018 году, и за это время было несколько интересных изменений в архитектуре мониторинга, управлении триггерами и нотификациями, различные оптимизации данных в ClickHouse и прочие нововведения, о которых я как раз и хочу вам рассказать.


TL;DR
.NET – управляемая среда выполнения. Это означает, что в ней представлены высокоуровневые функции, которые управляют вашей программой за вас (из Introduction to the Common Language Runtime (CLR), 2007 г.):
Среда выполнения предусматривает множество функций, поэтому их удобно разделить по следующим категориям:
- Основные функции, которые влияют на устройство других. К ним относятся:
- сборка мусора;
- обеспечение безопасности доступа к памяти и безопасности системы типов;
- высокоуровневая поддержка языков программирования.
- Дополнительные функции– работают на базе основных. Многие полезные программы обходятся без них. К таким функциям относятся:
- изолирование приложений с помощью AppDomains;
- защита приложений и изолирование в песочнице.
- Другие функции – нужны всем средам выполнения, но при этом они не используют основные функции CLR. Такие функции отражают стремление создать полноценную среду программирования. К ним относятся:
- управление версиями;
- отладка/профилирование;
- обеспечение взаимодействия.
Видно, что хотя отладка и профилирование не являются основными или дополнительными функциями, они находятся в списке из-за ‘стремления создать полноценную среду программирования’.

Многие используют специализированные инструменты для создания процедур извлечения, трансформации и загрузки данных в реляционные базы данных. Процесс работы инструментов логируется, ошибки фиксируются.
В случае ошибки в логе содержится информация о том, что инструменту не удалось выполнить задачу и какие модули (часто это java) где остановились. В последних строках можно найти ошибку базы данных, например, нарушение уникального ключа таблицы.
Чтобы ответить на вопрос, какую роль играет информация об ошибках ETL, я классифицировал все проблемы, произошедшие за последние два года в немаленьком хранилище.

В прошлой статье об инструменте для мониторинга Foglight for Databases мы рассказывали о возможностях контроля из единого интерфейса SQL Server, Oracle, PostgreSQL, MySQL, SAP ASE, DB2, Cassandra и MongoDB. Сегодня разберём подходы к быстрому выявлению причин нештатной работы Microsoft SQL Server:
Подробности под катом.
Читать полностью »