Облачные платформы, такие как Heroku, упрощают, чем когда-либо принимать приложения: просто загрузите свой код, и они будут развернуть его для вас. Но общее заблуждение заключается в том, что, поскольку у вас нет инфраструктуры, вы не можете действительно отслеживать ваши приложения или увидеть под капотом.
К счастью, Heroku дает вам полную наблюдаемость над вашими приложениями. Вы можете получить доступ к важным метрикам, включая использование CPU и RAM, журналы, HTTP-запросы и метрики выполнения, используя количество инструментов регистрации и отладки — как инструменты для отладки, LogPlex, LogPlex и дистанционного управления Heroku, and Dyno. Вы даже можете расширить возможности мониторинга через сторонние дополнители, которые варьируются от служб мониторинга ошибок для выполнения решений мониторинга производительности приложений (APM).
Наблюдение и отладки с использованием встроенных инструментов Heroku
Следующие методы встроены в платформу Heroku и доступны для всех приложений:
Агрегированные журналы
Журналы предоставляют подробные записи о ваших приложениях и инфраструктуре. Они полезны для извлечения данных из приложений для устранения неполадок и отладки, операций мониторинга и запросов отслеживания. Журналы также обычно используются для аудита и нормативно-правовой соблюдения. Logplex, объект маршрутизации журнала Heroku, хранится до одной недели журналов, но вы можете использовать вручную надстройки или Журнал сток Чтобы автоматически экспортировать свои журналы.
Heroku Агрегаты журналы Создано запущенными приложениями и самой платформой Heroku. Это включает:
- Строить журналы
- Журналы приложений напечатаны на STDOUT или STDERR, через все работает Dynos (контейнеры)
- Системные журналы, генерируемые платформой Heroku, такие как приложение перезагружается или вылетает
- Logs API, которые являются административными действиями, выполняемыми вами или другими пользователями
- Журналы из дополнительных услуг, такие как прилагаемая база данных
Вы можете получить доступ к журналам через панель инструментов Heroku, Heroku CLI или потребляя журналы через Logplex напрямую.
Heroku Dashboard
Приборная панель дает вам сводную информацию о вашем приложении. Это полезно для мониторинга в реальном времени, обнаружение таких аномалий, как сбоя или изменения потребления ресурсов, и общие тенденции. Например, если вы развертываете новое приложение или обновление существующего приложения, приборная панель может немедленно показать влияние на использование ресурсов и пропускную способность.
Просто войдите в систему, и вы увидите приборную панель: он обеспечивает полный обзор ваших приложений, ресурсов и дополнений. Он показывает активность Dyno, метрики (агрегированные тип процесса ), журналы и действия, влияющие на ваши приложения. Приборная панель также может уведомить вас о потенциальных проблемах и связать вас с соответствующими ресурсами документации.
Приборная панель отображает следующие метрики:
- Емкость памяти и использование
- ЦП нагрузка
- Пользовательские события Такие, как изменения конфигурации и перезапускаются Dyno
- События платформы Heroku
История событий и использование RAM сообщается на приборной панели Heroku
Вы можете получить еще более конкретные метрики в зависимости от того, что такое тип вашего процесса. Например, приложения, которые используют тип веб-процесса Show Время отклика HTTP и пропускная способность :
Метрики для веб-динозов на приборной панели Heroku
Языковые метрики времени выполнения
Для более глубокого посмотрите на конкретное время выполнения вашего приложения, метрики времени выполнения дополняют приборную панель, добавив метрики, специфичные языку, чтобы помочь с отладкой и оптимизировать ваши приложения. Heroku собирает метрики времени выполнения на несколько языков, включая Java, Go, Node.js и Ruby.
Эти метрики предлагают дополнительные идеи о ваших приложениях, таких как подробные распределения памяти, сбора мусора и задержка. Например, приложения Node.js могут сообщить о своем времени, проведенном в сборе мусора, запуска сбора мусора, задержки контура событий и блоки петлей событий. Они автоматически добавляются к приборной панели после Включение языковых метрик времени выполнения Отказ
Хотя они могут использовать дополнительные ресурсы, включение метрик времени выполнения занимает секунды. В случае Java и Node.js не требуется никаких изменений кода.
Подмножество Node.js Метрики времени выполнения, собранные Heroku
Heroku Exec.
Heroku Exec полезно для отладки проблем, которые не могут быть воспроизведены локально. Это создает туннель SSH в Dyno, позволяя вам запустить команды и Открыть удаленные сеансы отладки Отказ Для проблем, которые не могут быть решены с журналами или метриками, Heroku Exec позволяет вам идти прямо к источнику.
Чтобы включить удаленную отладку для приложений Node.js, вы можете открыть портор удаленного отладки, добавив на свой ProCFile. Для приложений Java вам нужно будет включить протокол протокола Java Debug (JDWP). Вы также можете использовать плагин Java Heroku CLI для запуска инструментов отладки, такие как VisualVM, JMAP и JStack. Смотрите Heroku Exec Documentation Для получения подробных инструкций.
После перераспределения вашего приложения пересылайте порту удаленного отладки в локальную систему, используя:
$ Heroku PS: вперед
В качестве примера здесь мы используем код Visual Studio для отладки запущенного Node.js dyno:
Отладка приложения Heroku в режиме реального времени с использованием визуального студийного кода
Мониторинг через дополнения
Если собственные решения не соответствуют вашим потребностям, вы можете выбрать из Сотни добавок которые обеспечивают дополнительную функциональность мониторинга. Мы отправим несколько из них здесь.
логирование
Регистрация надстройки Укажите дополнительные функции управления журналом, такие как поиск, индексирование, графики и создание предупреждений.
Существует несколько двухсторонних дополнений, доступных из сторонних услуг, таких как Sumo Logic и logz.io Отказ Кроме того, многие услуги могут автоматически разбирать журналы Heroku, что облегчает их поиску и отслеживать тенденции с течением времени с пользовательскими панелями и предупреждениями. Например, Solarwinds Loggly предлагает Предоплатаренная приборная панель для Heroku Журналы, дающие вам визуальный обзор кодов состояния HTTP и какие пути отсутствуют ресурсы.
Charting Top Domains, коды состояния HTTP и пути, приводящие к 404 ошибкам в Logglys
Мониторинг производительности приложений (APM)
Есть Несколько надсполнения мониторинга Доступно от продавцов, таких как Новый реликвийный APM и Скаут Отказ Эти дополнения позволяют собрать более подробные показатели производительности приложений, включая отдельные времена транзакции, вызовы базы данных, хиты кеша и время, проведенные в различных компонентах. Это может помочь вам определить причину проблем и ошибок производительности.
Например, Appoptics Показывает следующую поломку для запроса, прослеженного через приложение Node.js, показывающую разрыв во времени, проведенного в ожидании файловой системы по сравнению с маршрутизацией:
Отслеживание запроса Node.js в Solarwinds Appoptics
Вывод
Вы хотите управлять своими приложениями, чтобы быть таким же безболезненным. Есть несколько способов для мониторинга ваших приложений с облачными поставщиками, такими как Heroku, будь то через подробные метрики инфраструктуры или журналы.
Оригинал: «https://dev.to/heroku/observability-on-heroku-how-to-monitor-apps-on-a-managed-infrastructure-4i36»