Некоторое время назад я смотрел в использование AWS синтетики создать канареец Чтобы измерить/отслеживать время безотказной работы API и убедитесь, что я был одним из первых людей, чтобы заметить, если оно упало. Это довольно легко настроить канареесть, и она работала как ожидалось.
Тем не менее, было несколько падений, которые я вижу с помощью синтетических канарцев. Первый, который, вероятно, будет разрешен AWS в ближайшее время, состоит в том, что нет никакой поддержки Cloudbation, SDK или CDK для этой услуги. Второе — это стоимость канарцев. Как мне писать это, Стоимость одного канаренного прогона составляет $ 0,0012 (по крайней мере, в большинстве регионов Соединенных Штатов). Канарская банка, срабатывающая один раз в 5 минут, что означает 8760 раз в месяц. Эта одиночная канарейка стоила бы 10,512 долларов в месяц. Я ни в коем случае не пытаюсь заставить людей избежать использования этой услуги, но если стоимость является главной проблемой, я думаю, что есть гораздо более дешевая альтернатива, которую вы можете легко создавать.
Решение, которое я в настоящее время использую, более или менее, просто ошеломленный канарник; Он закрепляет мою API один раз в 5 минут от функции лямбда, которая вызвана правилом события CloudWatch. Используя те же 8760 прогонов в месяц, правило CloudWatch будет стоить $ 0,00876 в месяц ( рассчитывается с использованием стоимости 1,00 долл. США на миллион мероприятий ) и A лямбда будет стоить $ 0,02 в месяц, не включая бесплатный уровень Отказ Также взять все ценообразование с зерном соли; Я все еще изучаю все цены на AWS, и я слышал, что никогда не совсем простым расчетом, но я пытаюсь ссылаться на ценовые страницы AWS. Если бы ценообразование, которую я нашел, все правильные, синтетика стоило бы около 365 раз больше, чем эта кишка, используя CloudWatch событий и функцию лямбда.
Я собрал шаблон, который создает всю инфраструктуру, которую я только что упомянул, которые можно найти здесь Отказ Код, который входит в лямбда, в конечном итоге зависит от вас, но я также написал небольшой сценарий, который должен был пойти с этим шаблоном, которые можно найти здесь Отказ Общая идея состоит в том, что лямбда должен сделать запрос на API, который вы хотите отслеживать, а затем либо регистрировать ошибку или успех. Я предлагаю использовать GloudWatch Insights или просто журналы для мониторинга того, что происходит со временем, и вы также можете настроить тревоги CloudWatch для этого. У меня есть эти журналы, идущие на приборную панель, которая со временем рисует время работы. Имея все это встроенные шаблоны, также означает, что вы можете добавить, удалить или обновлять эту инфраструктуру через трубопровод. Пока синтетика не станет доступной как IAC и отбивает ценообразование, это, вероятно, будет альтернативной, которую я использую.
Оригинал: «https://dev.to/thomasstep/creating-your-own-canary-for-an-api-51n1»