Настроить расширенные оповещения и логику биллинга

В то время как простые письма бюджета оповещений являются относительно простым способом получить обновление счетов, может быть случаи , когда вы хотите создать более сложные оповещения , которые включают в себя более настроенную логику. Вот два подхода, которые следует учитывать:

  • Используйте облачный мониторинг для создания более сложных и своевременных предупреждений

  • Используйте уведомление Pub / Sub для выставления счетов вместе с соответствующей облачной функцией для создания настраиваемого поведения в ответ на изменения в ваших расходах.

Хотя оба этих метода требуют дополнительной работы с вашей стороны, они дают вам возможность точно контролировать, какие типы предупреждений вы получаете и как на них реагировать.

На этой странице представлен обзор каждого из этих подходов.

Создавайте более сложные оповещения с помощью облачного мониторинга

Простые электронные письма с предупреждением о бюджете сообщают вам, когда ваш общий счет достигает определенных пороговых значений. Однако вам также может быть интересно узнать, неожиданно ли увеличиваются отдельные услуги, прежде чем они смогут существенно повлиять на ваш бюджет. Для более сложных случаев использования, подобных этому, мы рекомендуем изучить Cloud Monitoring, который является инструментом Google Cloud, доступным для вашего проекта Firebase.

Облачный мониторинг полезен для нескольких различных типов предупреждений:

  • Если ресурс, на который опирается ваш проект, недоступен (как для Firebase, так и для облачных сервисов Google, но даже для внешних сервисов, таких как AWS)

  • Если такие сервисы, как Cloud Functions, реагируют дольше, чем ожидалось

  • Если ваша корзина Cloud Storage, экземпляр базы данных Realtime или экземпляр Cloud Firestore отклоняет слишком много запросов (это означает, что ваши правила безопасности Firebase могут быть неправильными).

  • Если количество ресурсов, используемых некоторыми из ваших продуктов Firebase, превысило определенный порог

Оповещения, созданные с помощью облачного мониторинга, обычно отправляются быстрее, чем простые электронные письма с предупреждением о бюджете, которые обычно отправляются один раз в день. Оповещения могут принимать форму SMS-сообщений, сообщений канала Slack, уведомлений PagerDuty, веб-перехватчиков и т. Д. Эти параметры позволяют отправлять оповещения с более высоким и более действенным уровнем видимости.

Использование облачного мониторинга

Для того, чтобы начать работу с Cloud мониторинга, мы рекомендуем начать с Метрикой проводником , который позволяет создавать графики пользовательских метрик в пределах вашего проекта Firebase / Google Cloud и визуализировать их использование.

В частности, вы можете просматривать ресурсы, такие как облачное хранилище, база данных в реальном времени или экземпляры облачных функций. Вы можете просмотреть информацию об использовании этих продуктов (например, количество прочитанных документов, отправленных байтов или вызовов функций), которая повлияет на ваш биллинг.

После того, как вы комфортно визуализируя ваше использование ресурсов в метриках проводника, рекомендуется создать оповещения политика по метрикам вы заботитесь о большинстве. Вот несколько примеров политик оповещения:

  • Если количество документов, прочитанных за 30-минутный период времени, превышает определенное значение

  • Если использование определенного ресурса (например, вызова функции) кажется слишком быстро увеличивающимся в течение определенного периода времени

Создайте дополнительную логику выставления счетов

Уведомления о бюджете отправляются автоматически по электронной почте, когда ваш бюджет достигает определенных пороговых значений, но для более сложных предупреждений или программных реакций на увеличение расходов вы можете подумать о настройке дополнительной пользовательской логики на основе сообщений Google Cloud Pub / Sub.

Например, вы можете отправлять оповещения на каналы Slack или с помощью текстового сообщения или вносить программные изменения в свое приложение или проект в зависимости от уровня затрат.

Pub / Sub - это служба передачи сообщений, которая позволяет другим службам отправлять сообщения - обычно в форме данных JSON - асинхронным образом через каналы, известные как темы Pub / Sub. Вы можете настроить авторизованные службы, такие как Cloud Functions, для прослушивания сообщений в этих темах и соответствующих действий с данными.

Обратите внимание, что уведомления Pub / Sub для выставления счетов отправляются примерно раз в 20 минут независимо от того, изменилось ли ваше использование биллинга, и они не имеют состояния (что означает, что они не предоставляют контекста относительно того, что им предшествовало). Если вы хотите отслеживать необычный рост расходов с течением времени или сравнивать свои расходы с предыдущим циклом, вам нужно будет самостоятельно управлять этими историческими данными, используя такую ​​базу данных, как Cloud Firestore или Realtime Database.

Использование тем Pub / Sub с облачными функциями

Вы можете настроить Pub / Sub тему для ваших данных счетов, посетив бюджет , связанный с проектом Firebase в Google Cloud Console (под биллинг> Бюджеты и оповещения), затем нажмите на флажок для подключения блока Pub / Sub тему в этот бюджет . Это создаст тему Pub / Sub, которую вы сможете прослушать позже. Подробные инструкции смотрите в полной документации .

После того, как вы создали тему выставления счетов Pub / Sub, вы можете написать облачную функцию, чтобы прослушивать эту тему и соответствующим образом обрабатывать данные. Данные отправляются в виде данных JSON и включают полезную информацию, такую ​​как сумма, которую вы уже потратили, размер вашего бюджета и дата начала текущего платежного цикла.

В документации Google Cloud есть полная информация о том, как получить эти данные с помощью облачной функции. Однако, если вы используете облачные функции для Firebase для развертывания функций, общий процесс немного проще (проверьте документацию Firebase ). Вы можете также обратиться к этому видео для образца пошагового процесса.

После того, как вы получили эти данные, вы можете отреагировать на них разными способами. Вот несколько вариантов: