Эта статья была первоначально опубликована на Bizongo Engineering
Как инженер DEVOPS, мы часто любопытно спрашивали людей о том, что мы делаем ежедневно. Мой выходной ответ делает все, что нужно, чтобы гарантировать, что инфраструктура организации работает безупречно. Предоставление приборной панели, чтобы помочь каждому, у всех есть вид на птичьего полета на жизненно важных метриках.
Вы не можете гарантировать надежность, если вы не знаете, когда все сломаются.
Простые термины, наблюдая за приложениями для ключевых параметров и сопоставлять данные для обнаружения и устранения неполадок на любые ошибки, медлительность, тем самым улучшая время работы в приверженности к SLA.
Для мониторинга ключевых параметров через спектр, как
- Метрики хоста ( CPU, память, нагрузка, диск IO, сеть IO и т. Д. )
- Метрики приложений ( Пропускная способность, время отклика, аномалии, фоновые задания, такие как Sidekiq, частоты ошибок и т. Д. ) для API
- Есть данные, собранные в приборной панели временных серий для анализа тенденций.
- Запусковые оповещения, если какая-либо метрика превышает или падает ниже определенных порогов.
Чтобы включить любое из вышеперечисленного, мы поняли, что нам нужно иметь строгие критерии функций, чтобы быстро попасть на землю и быстро работать. Ниже приведен суть того, что мы искали:
- Особенности, такие как метрики хоста/приложения в простом для просмотра приборной панели.
- Оповещение через электронную почту, провисание и другие 3-й партийные интеграции, такие как JIRA, GitHub и пользовательские веб-крюки.
- Удержка данных и конфиденциальность соответствует правилам.
- Ценовые модели вместе с применимыми налогами.
Предыдущий провайдер Bizongo Site24x7 в то время как всесторонне рекомендуется, не соответствовал нашим требованиям в долгосрочной перспективе вместе с несколькими проблемами.
Учитывая критерии, перечисленные в сегменте выше — мы исключали с открытым исходным кодом, самих размещенные решения, такие как Prometheus , Netdata. В настоящее время, поскольку это будет дополнительный накладной расход, чтобы построить, отладки и улучшить их.
В ходе этой деятельности у нас были всеобъемлющие обсуждения с несколькими вышеупомянутыми поставщиками SAAS, а также доказательств демо-концепций. Наша первоначальная реакция экспериментировала с Ньюрелич , очень рекомендованный программной индустрией. Тем не менее, оказалось, что он экономически незвыносится для масштабирующей инфраструктуры Bizongo, несмотря на лучшие в классные особенности.
Следующий вариант, который мы рассмотрели, было Datadog что очень почти решили наши проблемы, но затем подняли опасения, похожие на Ньюрелику Так что нами не было активно проводиться в долгосрочной перспективе.
В конце концов, мы обнаружили Appsignal И после предварительного разговора со своей командой мы продолжили оценивать его в пробном режиме 30 дней. Мы установили его на нашей постановке окружающей среды и впоследствии одним из наших бэкэндов наших производственных услуг. Это было сделано для того, чтобы проверить его совместимость с нашим приложением и к счастью, ничто не пошло на юг. Между тем, мы также регулярно подняли поддержку запросов, как мы делаем для всех вышеуказанных поставщиков.
К концу испытательного периода мы заключили, что он выполнил все наши требования к мониторингу эффективности. Одним из заметных недостатков было только поддерживает только Ruby/Elixir Приложения на данный момент Но так как мы в первую очередь, в первую очередь рубин-рельсы, мы чувствовали, что это может быть упущено.
Тем не менее, такие функции, как доступные Цены Основываясь на запросах, чем серверах, частые выпуски новых версий, минимум 30-дневной удержания и звездной поддержки ( запросы направлены непосредственно для инженеров, которые строят его, чем техническую справку ).
- Для Backend Ruby Apps — через Appsignal Gem Authentication с помощью клавиши Push API ( лучшая практика, которую они рекомендуют, это не совершать его через код, но определяется как переменная среды appsignal_push_api_key )
- Дальше настраивание через
config/appsignal.yml
В каждом приложении можно сделать, чтобы определить среды ( QA, постановка, производство ) и параметры, которые должны быть включены или исключены. - После того, как сервер приложений ( PUMA, Unicorn, Passenger и т. Д. ) перезагружается, агент службы в качестве расширения GEM запускает релейные метрики.
- Для приложений Frontend/Non-Ruby — через агент с использованием менеджеров по пакетам ОС ( Мы автоматизировали это через Anbible для вновь обеспеченных серверов )
- Это может быть изменено через
/etc/appsignal-agent.conf
При этом агент работает на Plocalhost UDP Port 8125 для ретрансляционных метрик. - Кроме того, поскольку версии 1.0 драгоценного камня Ruby, пользовательские панели мошенничества могут быть созданы в формате YAML ( v2.8.x предоставляет метрики для Puma, Sidekiq без настроек )
- Как только вы настроите, ниже, как выглядит интерфейс ( изображения только для представления )
Сразу после Appsignal мы заметили несколько медленных API, которые были закреплены, чтобы улучшить их производительность от пары до миллисекунд. Кроме того, теперь у нас есть мониторинг платформы нашей инфраструктуры независимо от количества серверов, поскольку мы учтены только для трафика. Все это с точным оповещением, историческими данными, Nifty 3-й партийной интеграции ( Slack, Jira, Github, Pagerduty и т. Д. ) и действующие метрики.
Что вы используете для мониторинга вашей инфраструктуры и почему?
Оригинал: «https://dev.to/vinayhegde1990/effective-performance-monitoring-via-appsignal-536i»