Сбор данных прикладного уровня
Как упоминалось ранее, серверная статистика — только часть общей картины. Следует собирать и сохранять статистику более высокого уровня, специфическую для вашего приложения, связанную не с общим сервером, а с системой в целом. Загрузка процессора и использование дисков на веб-сервере не даст полной информации о том, что происходит с каждым веб-запросом, а в обработке потока веб запросов может быть задействовано несколько устройств.
В Flickr используется управляющее приложение, которое собирает все эти метрики прикладного уровня. Данные собираются как на повседневной, так и на накопительной основе. Некоторые метрики (скажем, количество переданных фотографий) можно получить из базы данных. Другие вычисляются посредством обработки серверной статистики, например, наличие сетевых ресурсов или суммарные затраты дискового пространства на многих компьютерах.
Для сбора данных могут использоваться даже такие простые методы, как запуск сценария из задания cron и сохранение результатов в собственной базе данных для последующей обработки.
Некоторые метрики, которые отслеживаются в Flickr.
- Переданные фотографии (ежедневная, накопительная )
- Переданные фотографии в час.
- Средний размер фотографии (ежедневная, накопительная )
- Время, потраченное на разделение фотографий по размерам (ежечасная).
- Регистрации пользователей (ежедневная, накопительная).
- Подписка на учетные записи «Pro» (ежедневная, накопительная).
- Количество фотографий, помеченных тегами (ежедневная, накопительная).
- Трафик API (количество используемых ключей API, количество запросов в секунду на один ключ).
- Количество уникальных тегов (ежедневная, накопительная).
- Количество фотографий с географической привязкой (ежедневная, накопительная).
Кроме того, фиксируются и некоторые финансовые метрики, например, количество принятых платежей. В процессе работы над конкретным приложением будет полезно выделить время на связывание финансовых и бизнес-данных с отслеживаемыми прикладными и системными метриками.
Вычисление полной стоимости владения (ТСО, Total Cost of Ownership) будет неполным без информации о том, с какими затратами для бизнеса связаны эти системные и прикладные метрики,
Представьте, что вы можете рассчитать реальные затраты на предоставление одной веб-страницы в вашем приложении. Наличие таких результатов не только выводит архитектуру на совершенно иной уровень (бизнес-метрики вместо доступности или метрик производительности), но и формирует контекст для высшего руководства, ориентированного на финансовые показатели, слабо разбирающегося в технической стороне дела.
Важность идентификации и отслеживания прикладных метрик невозможно переоценить. Ваши усилия будут вознаграждены: контекст системной статистики расширяется за пределы параметров исправности сервера, что поможет в формировании прогнозов. Как будет показано далее, вычисления ТСО также оказывают бесценную помощь в процессе приобретения мощностей.
Итак, мы рассмотрели основные принципы сбора данных о мощностях. Теперь давайте разберемся, на какие метрики вам — администратору сайта с потенциальной возможностью быстрого роста — стоит обратить особое внимание. Я опишу стандартные элементы веб инфраструктуры и приведу список рекомендаций по измерению мощностей и оценке их ограничений Чтобы обсуждение было более конкретным, пояснения будут делаться на примерах из практики планирования мощностей Flickr. Примеры всего лишь демонстрируют некоторые полезные метрики, которые могут пригодиться и в вашей работе. Они вовсе не означают, что архитектура или реализация Flickr подойдет для каждого приложения.