15 лучших инструментов мониторинга API для вашего бизнеса
В условиях современной конкуренции предприятия не могут позволить себе что-то одно – неоптимальную производительность системы. Еще хуже, когда одна или несколько подсистем выходят из строя, а техническая команда об этом не знает. В таких критически важных отраслях, как банковское дело, биржевая торговля и т. д., каждая минута простоя может стоить миллионы долларов (или даже больше), а в других – может привести к фатальным последствиям для клиентов. Дошло до того, что узнать об ошибке раньше, чем это сделает ваш клиент, уже не просто разумно, а обязательно.
API, API, везде
В этом мире доминируют API, и вы, скорее всего, слышите и используете этот термин несколько раз в день. Если вы являетесь поставщиком услуг любого рода, у вас есть API, на которые полагаются другие, и есть API, которые вы используете для поддержания бизнеса (Google Maps API, SERP API и т. д.). Но это лишь верхушка айсберга. Для тех, кто занимается компьютерным программированием, интерфейс прикладного программирования (API) – это широкий термин, который охватывает не только карты и покупки. Если вы не понимаете, все в программной системе (да, буквально все) является API или предоставляет API.
Прежде чем мы перейдем к мониторингу API, давайте немного разберемся, что такое API и какую область нашей программной системы он охватывает. Это поможет вам сократить выбор и лучше решить, какие API вы хотите охватить и, следовательно, какие инструменты лучше подойдут для вашего уникального случая использования.
Что такое API?
Давайте начнем со стандартного определения из учебника, а затем углубимся в повседневную бизнес-лексику. Если мы спросим Википедию об API, она скажет следующее:
В компьютерном программировании интерфейс прикладного программирования (API) – это набор определений подпрограмм, протоколов взаимодействия и инструментов для создания программного обеспечения. В общем случае это набор четко определенных методов взаимодействия между различными компонентами. Хороший API облегчает разработку компьютерной программы, предоставляя все строительные блоки, которые затем собираются воедино программистом. API может быть предназначен для веб-системы, операционной системы, системы баз данных, компьютерного оборудования или программной библиотеки.
Вторая строка очень важна (выделено мной). API считаются не только веб-сервисы. Вызовы операционной системы, взаимодействие с системой баз данных, аппаратные сигналы, программные библиотеки (код, который может повторно использоваться другим кодом) – все это попадает в сферу действия API, поскольку все они представляют собой четко определенный, хорошо понятный интерфейс и набор протоколов. В любой день любой из этих API может перестать работать. Может быть, жесткий диск достиг предела операций ввода/вывода в секунду, или истек срок действия SSL-сертификата, или в последней версии используемого кода обнаружена незамеченная ошибка – все эти ситуации требуют постоянного мониторинга и немедленных действий, когда (желательно до) возникает проблема. Соответственно, в этой статье будут предложены инструменты, позволяющие контролировать ваше приложение во всех областях, а не только обмен данными между двумя системами.
Стоимость простоя API
Трудно определить, насколько вредно время простоя, но компания Gartner опубликовала исследование, в котором назвала цифру в 300 000 долларов в час. Конечно, это скромный средний показатель. Подумайте о потерях бизнеса, вызванных часом простоя, скажем, в сезон скидок “Черная пятница”.
Несмотря на то, что бизнес-сторону простоя API нельзя недооценивать, есть и скрытый ущерб, который в долгосрочной перспективе может оказаться еще больше – моральный дух команды. Разработчики любят автоматизацию и надежность систем (на самом деле, мы все любим это делать; представьте, что ваш почтовый сервер падает несколько раз в день!), и простои ломают их код и расстраивают их. Если они будут продолжаться, то вскоре проблемы начнут затрагивать другие бизнес-функции (продажи и маркетинг), которые устанут постоянно терять лицо перед клиентом. На моих глазах два предприятия едва не погибли из-за плохих внутренних систем мониторинга, и у меня не хватит духу увидеть это снова. 😐 От простоев невозможно избавиться: в реальном мире все может пойти не так в любой момент. Но благодаря наличию соответствующих систем мониторинга мы можем узнавать об ошибках по мере их возникновения, иногда даже раньше, чем это сделает заказчик! Учитывая это, давайте рассмотрим некоторые из лучших инструментов мониторинга API на рынке.
Uptrends
Комплексное решение для мониторинга всех видов API (помните наше широкое определение API?), Uptrends обеспечивает мониторинг веб-сайтов, API, серверов и многого другого. Компания заявляет о 25 000 довольных клиентов, среди которых такие имена, как Vimeo, Microsoft, Volkswagen и другие.
Уникальной особенностью Uptrends является тестирование на основе браузера. Сервис запускает приложение/веб-сайт в различных браузерах и предоставляет подробную информацию о его работе. Но время отклика и показатели – это только половина истории. Uptrends также предоставляет вам подробный отчет о производительности активов, чтобы вы точно знали, что и где является причиной узкого места. При возникновении ошибки сервис делает скриншот и отправляет его вам, чтобы вы могли точно увидеть, что происходит на другом конце уравнения 🙂 . В целом, Uptrends – это надежный и восхитительный сервис, которому доверяют многие крупные имена.
Dotcom-Monitor
Платформа Dotcom-Monitor позволяет настроить многозадачное устройство мониторинга с помощью HTTP/S-задачи. С его помощью вы можете контролировать веб-интерфейсы API на основе OAuth 2.0 на предмет доступности, производительности и правильности ответов. Воспроизводя один или несколько запросов конечного клиента и контролируя веб-сервис SOAP, агенты Dotcom-Monitor проверяют правильность обмена данными между API и веб-приложением.
Когда агент обнаруживает ошибку, он проверяет ее на соответствие фильтру устройства. Если ошибка не отфильтрована, устройство подает сигнал тревоги. Можно настроить несколько групп оповещений и установить индивидуальные расписания оповещений и параметры эскалации. Отчеты доступны в форматах CSV, PDF и TXT. В них отображаются многочисленные и полезные показатели, такие как время отклика, время простоя и средняя производительность по местоположению. Ценовые планы Dotcom-Monitor начинаются от 1,99 доллара в месяц и предлагают мониторинг веб-сервисов с поддержкой HTTP/S, Web API SOAP/REST, проверку сертификации SSL, проверку ответов, мгновенные оповещения, 30 мест мониторинга и другие функции.
Checkly
Checkly – это современное решение для мониторинга и тестирования, которое привлекло большое внимание, особенно в сообществе JavaScript с такими клиентами, как Vercel и Humio. Вы можете отслеживать веб-интерфейсы API, а также транзакции сайта, потоки в реальном браузере. Единая приборная панель показывает все, что вам нужно знать о корректности и производительности вашего приложения в любое время.
Мне очень нравится, как Checkly сочетает в себе простоту настройки и легкость использования с мощными инструментами для настройки проверок. Вместо простого пинга он использует полноценные настраиваемые HTTP-проверки для мониторинга API. Сюда также входят скрипты установки/исчезновения, что очень удобно, когда вы, например, хотите подписать запросы или очистить тестовые данные.
Еще одна особенность – мощный REST API, позволяющий организовывать и автоматизировать проверки, например, с помощью Terraform. Он также позволяет настраивать тонкие оповещения в сочетании с Opsgenie, Pagerduty или Slack. В целом, это отличное решение, которое я считаю наиболее интересным для современных DevOps-команд. Checkly предлагает бесплатный тарифный план для разработчиков, включающий 1-минутный интервал проверки и глобальное расположение центров обработки данных.
Better Uptime
Better Uptime – это современный сервис мониторинга, который объединяет API, мониторинг пинга и аптайма, управление инцидентами и страницы состояния в один красиво оформленный продукт.
Настройка занимает 3 минуты. После этого вы получаете звонок, электронное письмо или уведомление в Slack, когда конечная точка API работает некорректно. Основные возможности:
- API, Ping, HTTP(s), истечение срока действия SSL и TLD, проверка заданий Cron
- Неограниченное количество оповещений о телефонных звонках
- Удобное планирование вызовов
- Скриншоты и журналы ошибок инцидентов
- Slack, Teams, Heroku, AWS и 100+ других интеграций.
Sematext
Компания Sematext уже довольно хорошо известна среди команд DevOps благодаря своему набору инструментов мониторинга, предназначенных для обеспечения сквозной видимости приложений и веб-сайтов. Мониторинг API является частью их синтетической службы мониторинга, Sematext Synthetics. Sematext предлагает расширенную систему уведомлений о мониторинге API, которую можно настроить для работы с несколькими различными условиями на основе ошибок и метрик. Таким образом, вы можете настроить инструмент на двойную или тройную проверку перед отправкой оповещения. По сути, вы исключаете ложные срабатывания, получаете более точные оповещения и избегаете усталости от оповещений.
Кроме того, помимо простого, но мощного HTTP-монитора, который вы ожидаете от хорошего синтетического инструмента мониторинга и тестирования, Sematext выделяется своим комплексным монитором браузера, который позволяет собирать показатели веб-производительности и постоянно тестировать критические путешествия пользователей на вашем сайте на основе скриптовых взаимодействий пользователей с сайтом. Это означает, что вы можете тестировать не только время загрузки страницы, но и более глубокие аспекты, а также детально моделировать взаимодействие пользователя с сайтом, например, вход и регистрацию, добавление в корзину и выполнение поисковых запросов на сайте. Ряд распространенных вариантов взаимодействия с пользователем предусмотрен уже в комплекте.
Amazon CloudWatch
Если у вас есть инфраструктура на AWS, CloudWatch нельзя не порекомендовать. Помимо мониторинга приложений, CloudWatch также осуществляет мониторинг инфраструктуры, помогая вашей команде DevOps спокойно спать по ночам.
Согласно официальному описанию, CloudWatch предлагает:
- Мониторинг приложений
- Общесистемная видимость
- Оптимизация ресурсов
- Единое оперативное здоровье
Таким образом, пока вы используете только AWS, CloudWatch сможет отслеживать время работы приложений, производительность, использование ресурсов, пропускную способность сети, использование дисков/процессоров и так далее, предоставляя надежное решение для всех видов мониторинга. Пожалуй, самым значительным преимуществом CloudWatch является то, что вам практически не нужно ничего настраивать. Службы AWS генерируют соответствующие журналы и передают их непосредственно в CloudWatch, которые в итоге оказываются на аккуратной и простой для понимания панели.
С помощью панели управления вы можете не только считывать показатели (в то время как бесплатные тарифные планы предлагают точность до одной минуты, платные тарифные планы обеспечивают точность до одной секунды, что позволяет вести мониторинг в режиме реального времени), но и создавать пользовательские правила, настраивать сигналы тревоги и время их срабатывания, сканировать системные журналы с любой степенью детализации и многое другое. Конечно, не все работают на AWS, но большинство критически важных и известных цифровых компаний работают именно так, поэтому я решил, что CloudWatch должен быть представлен в этом списке. Я могу начать звучать как сломанный рог, но, честно говоря, если вы используете AWS, нет более простого способа настроить мониторинг, чем CloudWatch. Что касается цен, то и здесь Amazon не стал мелочиться. Здесь нет привязки к месяцу или году. Вы сами определяете, сколько вам нужно, и платите только за то, что используете. Но прежде всего посмотрите на предложение free-tier и скажите мне, что не стоит пользоваться этим сервисом 🙂 .
Rigor
Если вы живете метриками производительности и ставите клиентский опыт превыше всего, Rigor заслуживает внимания. Название выбрано удачно, так как с этим инструментом вы можете быть настолько строгими, насколько захотите 🙂 .
Одна из самых полезных функций Rigor – функциональное тестирование. Если вы не разбираетесь в жаргоне тестирования, не волнуйтесь: функциональное тестирование означает проверку всего потока транзакций, а не только фокусировку на одной конечной точке. В некотором смысле функциональное тестирование важнее модульного, поскольку оно неявно охватывает модульное тестирование и напрямую обеспечивает прогнозирование клиентского опыта.
Как вы можете видеть на изображении выше, этот функциональный тест состоит из семи правил, которые представляют собой транзакцию. Правило №1 – это запрос на поиск определенного исполнителя в API; затем, Правило №2 – это утверждение, то есть мы хотим убедиться, что искомый исполнитель доступен; если эти две проверки пройдены, система переходит к Правилу №3, и так далее. В приведенном выше примере функциональный тест ломается на правиле № 7, и заинтересованные стороны немедленно получают уведомление о том, что не хватает копий альбома “Funky Kingston”. Поговорим о том, что лучше сосредоточиться на бизнесе, чем беспокоиться о технологиях! Rigor – это серьезный сервис для серьезного бизнеса, который не против заплатить премию за что-то потрясающее, так что если вы относитесь к таковым, обязательно проверьте его.
Assertible
Assertible позиционирует себя как самый простой инструмент для мониторинга API и ориентирован в первую очередь на команды тестирования и QA. Так что если вы считаете, что у вас не хватает технической компетенции, чтобы возиться с JSON, XML и писать код, Assertible стоит посмотреть.
УТП Assertible – это увлекательность и простота: Ваши команды QA и тестирования могут создавать тесты и проверять/контролировать их с помощью интерфейса Assertible. Он отлично интегрируется с GitHub, так что ваша база знаний остается с вами, а также легко работает со Slack. Функции интеграции и обзора по всему кругу позволяют практически любому члену вашей команды (даже руководителям проектов) создавать тесты и просматривать показатели эффективности.
Конечно, ситуация на скриншоте выше может показаться немного нереальной (решение проблемы за одну минуту), но это возможно, если обратная связь будет четкой и мгновенной. Полное отсутствие необходимости в кодировании означает, что тесты можно создавать так быстро, как только ваши QA-команды успевают набирать текст, и применять их снова и снова. Это резко контрастирует с практикой “ручного тестирования”, применяемой в большинстве компаний, когда одному тестировщику может потребоваться несколько дней, чтобы охватить все приложение, и при этом упустить множество отличных деталей просто по недосмотру или из-за перенапряжения. Всего за 100 долларов в месяц (это, кстати, топовый тарифный план) Assertible позволяет контролировать до 50 веб-сервисов, 50 000 тестов и 20 членов команды. Если учесть, что QA постоянно работает над созданием и ручным прогоном тестов, то станет ясно, что Assertible предлагает экспоненциальную эффективность.
BlazeMeter
Когда речь заходит о сквозном тестировании и мониторинге приложений, BlazeMeter – это тот самый гигант, который съедает все остальное на обед. В то же время это решение не для слабонервных и не для тех, кто ищет простое решение для мониторинга API, которое не требует многого. BlazeMeter – это то, с чем вы вступаете в брак, а затем оно продолжает окупаться в течение всего срока службы приложения.
Самый большой плюс BlazeMeter – интеграция с Apache JMeter, который, пожалуй, является стандартным инструментом измерения производительности для крупных веб-приложений. Да, с BlazeMeter вы можете свободно выбирать фреймворки для тестирования с открытым исходным кодом и легко анализировать их с помощью простых панелей. Планы очень дорогие, и если ваше приложение может обслуживать до 5 000 одновременных пользователей, то использование BlazeMeter обойдется вам в 649 долларов в месяц. Для еще больших рабочих нагрузок предлагаются тарифные планы с фиксированной стоимостью, что является нормой, учитывая тип клиентов BlazeMeter: Pfizer, Adobe, GAP, NFL, Atlassian и другие. Нельзя сказать, что BlazeMeter нельзя использовать более простыми способами. Как и большинство других инструментов мониторинга API, он обеспечивает функциональное тестирование (они называют его “сценариями”), которое можно проводить с помощью интуитивно понятного графического интерфейса.
При этом BlazeMeter создан для разработчиков. Через специализированный инструмент тестирования Taurus BlazeMeter предоставляет DSL (Domain Specific Language), который можно использовать для написания общих тестов, которые можно запускать с помощью JMeter, Selenium и других популярных инструментов с открытым исходным кодом. И пусть вас не пугает упоминание DSL: это не что иное, как прославленный файл YAML (расширение .yml):
выполнение: - параллельность: 100 наращивание: 1m hold-for: 1m30s сценарий: simple сценарии: simple: think-time: 0.75 запросы: - http://blazedemo.com/
Потратьте немного времени на Taurus, и ваши разработчики будут благодарны вам за возможность писать сложные, многократно используемые тесты! В целом, BlazeMeter – это тяжеловес для тяжеловесов.
AppDynamics
В настоящее время компания AppDynamics входит в состав Cisco и давно и хорошо известна в сфере мониторинга веб-приложений. В настоящее время AppDynamics представляет собой набор инструментов для решения широкого спектра задач по производительности и мониторингу, стоящих перед современной SaaS-командой. Что касается чистого мониторинга API/микросервисов, пакет предлагает Microservice IQ. С помощью этого сервиса вы можете отслеживать и анализировать кластер микросервисов практически любого масштаба, сохраняя историю и позволяя соотнести ее с изменениями в кластере. Во всяком случае, это позволяет смоделировать влияние добавления/удаления узлов из кластера. То же самое относится и к мониторингу показателей в реальном времени, который может осуществляться на уровне кластера или узла, предоставляя вам как общую картину, так и мельчайшие детали, в зависимости от необходимости.
Как вы можете видеть на скриншоте, мониторинг Docker встроен прямо в систему, что по достоинству оценят команды, чья инфраструктура работает на Docker (почти все, то есть 🙂 ). Кроме того, доступны облачный мониторинг и мониторинг DevOps, которые работают с различными IaaS-провайдерами, такими как Amazon AWS, Azure, Pivotal и т. д. Непрерывная обратная связь доступна по всему конвейеру доставки, обеспечивая уверенность и прочную основу для вашей команды DevOps. Глазурь на торте – это интеграция машинного обучения в самое сердце системы. Например, иногда вы не знаете идеальных базовых показателей для своего приложения, но поскольку бизнес работает без сбоев, вы можете принять текущие показатели за базовые. Как же рассчитать базовую линию? Это непросто, если каждый час к вам поступают тысячи точек данных, но не в том случае, если работает эффективная система машинного обучения.
Как это может помочь бизнесу? Вот пример. Если вы знаете, что ваше базовое время безотказной работы составляет 98,5 %, а в настоящее время вы работаете на уровне 98,6 %, вы можете быть спокойны. Кроме того, доступ к реальным, жестким базовым показателям убережет вас от чрезмерного проектирования и дорогостоящих миграций, которые некоторые консультанты могут рекомендовать для достижения “шести девяток” (99,9999 % безотказной работы). Система ML также достаточно интеллектуальна, чтобы определить и сообщить о единственной причине сбоя в кластере микросервисов изнутри кода (это самая впечатляющая часть!), чтобы ваши команды знали, что именно нужно исправить. На скриншоте ниже показано, как система может проникнуть в REST-сервис на основе Java Spring и указать на боб, который дал сбой.
New Relic
По мнению многих, New Relic является лидером на рынке инструментов мониторинга производительности приложений, и на то есть веские причины. Его используют как крупные, так и небольшие компании – от гигантов из списка Fortune 500 до маленьких, проворных стартапов – и он предлагает отличное сочетание точности и детализации. Команда New Relic гордится своим глубоким пониманием DevOps, поэтому данное предложение создано для обеспечения полного представления о вашей инфраструктуре в режиме реального времени. Главным преимуществом New Relic является интуитивно понятный интерфейс всей системы, который позволяет вам мгновенно увидеть, как все работает и где именно находится узкое место, если таковое имеется. Сложно описать пользовательский интерфейс словами, поэтому вот скриншот:
Как видите, очень легко визуально проследить, как данные перетекают из системы в систему и как в результате этого изменяются показатели производительности. Неполадки и простои вызывают мгновенные оповещения, что позволяет устранить проблемы до того, как пострадает бизнес. New Relic охватывает не только DevOps. Можно также установить цели и правила для работы с клиентами и получить подробные отчеты, чтобы понять, где требуется дополнительная работа. Как известно любому digital-маркетологу, эта информация – на вес золота.
Изобретательным приборным панелям New Relic нет конца. Взгляните, например, на эту, которая отображает весь кластер приложений по узлам и предоставляет оперативную обратную связь о том, что происходит на каждом узле.
Независимо от того, является ли ваше приложение простым или сложным, New Relic может предложить много интересных сведений.
API Fortress
Следующим на очереди идет API Fortress, который призван стать швейцарским армейским ножом для мониторинга API для различных команд в организации, и делает это довольно хорошо.
Нацеленный как на тестировщиков, так и на разработчиков, API Fortress позволяет создавать визуальные, совместные тесты, как и любой другой современный инструмент для мониторинга API, а затем пройти немного дальше в плане удобства и возможностей. Больше всего мне нравятся две функции: нагрузочное тестирование и мокинг. Для разработчиков API Fortress может создать набор тестов на основе заданной спецификации API. Таким образом, если вы следуете Swagger, OpenAPI или RAML, половина работы уже сделана. API Mocking позволяет вашим разработчикам определить интерфейс нового API в виде имитирующего сервиса, на основе которого QA-команды могут немедленно приступить к созданию тестовых наборов. Больше никаких утомительных и долгих ожиданий завершения работы над реальным API, прежде чем QA сможет приступить к работе!
API Fortress также работает со всеми основными системами CI/CD, облегчая еще одну больную точку интеграции. Наконец, в API Fortress встроены надежное нагрузочное тестирование и мониторинг, что делает его полным пакетом для команд разработчиков и тестировщиков, позволяющим быстро тестировать и контролировать API.
API Science
С помощью API Science вы можете тестировать свои API с помощью API. Хотя это и звучит как причудливый способ сказать одно и то же, API Science имеет несколько новых функций, которые, вероятно, понравятся многим. Первая из них – полностековый мониторинг вашего стека API, что означает охват и внешних API. Много раз случалось так, что ваши API были работоспособны и отзывчивы, но те, от которых зависит ваш бизнес, не работали. Кроме того, в некоторых случаях нет объективных оснований утверждать, какой API не работал в то или иное время, и эта борьба может превратиться в своего рода холодную войну между двумя поставщиками API. В таких случаях API Science выступает в качестве неоспоримого промежуточного звена, которое может показать историческую доступность API.
Вторая интересная функция – распределенное тестирование API. API Science следит за вашими API из нескольких точек по всему миру и позволяет узнать, как ведет себя API в разных точках. Объедините весь этот пользовательский JavaScript в системе мониторинга, и вы получите практически идеальный инструмент для мониторинга API.
APImetrics
Благодаря полному сквозному покрытию мониторинг API API от APImetrics делает фантастическую работу, позволяя вам узнавать о проблемах еще до того, как о них сообщат ваши пользователи. Вы можете вести мониторинг из более чем 80 различных мест и получать оповещения в реальном времени прямо на ваш предпочтительный инструмент, включая электронную почту, Slack, Pager Duty и другие подобные инструменты. Кроме того, она позволяет проследить за функционированием API, будь то поиск DNS или время обработки данных на сервере, чтобы убедиться, что транзакции выполняются так, как нужно. Это довольно удобная функция, а если учесть, что APImetrics вообще очень прост в настройке, то все становится еще лучше. Этот сервис может обрабатывать любые типы API-запросов, задавать условия, определять утверждения и предоставлять сведения о различных областях, включая проблемы с подключением.
Moesif
Moesif – это ориентированный на пользователя инструмент, который отслеживает работу пользователей с вашими API. Он позволяет отслеживать проблемы с API, которые влияют на клиентов, и принимать упреждающие меры по их устранению.
Функция “Правила оповещения” позволяет отслеживать различные показатели и оповещать вас при нарушении порога, например, при резком увеличении числа посетителей сайта или повышении загрузки процессора. Вы можете интегрировать этот инструмент с такими средствами совместной работы, как Slack, чтобы получать оповещения на уровне всей команды. Функция “уведомление пользователя” позволяет получить список клиентов или посетителей, которые использовали ваш API, и их поведение, что может помочь вам в маркетинге, ретаргетинге и удержании клиентов. Вы также можете интегрировать Moesif с CRM-инструментами, такими как Hubspot и Salesforce, чтобы усилить автоматизацию маркетинга. Инструмент предлагает несколько готовых командных панелей для различных проектов или отделов, чтобы сосредоточиться на том, что для них важно. Moesif предлагает бесплатную пробную версию на 14 дней, а платные тарифные планы начинаются от 85 долларов в месяц.
Заключение
На этом мои лучшие рекомендации по мониторингу API подошли к концу. Я сделал все возможное, чтобы не ограничивать API узким определением, которым их чаще всего обозначают. В этом списке найдутся инструменты, которые подойдут всем – от владельцев бизнеса до разработчиков, тестировщиков, QA и менеджеров проектов.