Хотя простые электронные письма с уведомлениями о бюджетных изменениях — это относительно лёгкий способ получать обновления по счетам, иногда может потребоваться создание более сложных уведомлений с более индивидуальной логикой. Вот два подхода, которые стоит рассмотреть:
Используйте Cloud Monitoring для создания более сложных и своевременных оповещений.
Используйте уведомления Pub/Sub для выставления счетов вместе с соответствующей облачной функцией, чтобы создать настраиваемое поведение в ответ на изменения ваших расходов.
Хотя оба этих метода требуют от вас больше усилий, они позволяют точно контролировать, какие именно оповещения вы получаете и как на них реагировать.
На этой странице представлен обзор каждого из этих подходов.
Создавайте более сложные оповещения с помощью Cloud Monitoring
Простые электронные письма с оповещениями о превышении бюджета позволяют узнать, когда общая сумма ваших расходов достигла определенных пороговых значений. Однако вас также может заинтересовать информация о неожиданном увеличении расходов на отдельные услуги — до того, как это успеет существенно повлиять на ваш бюджет. Для более сложных сценариев использования, подобных этому, мы рекомендуем изучить Cloud Monitoring — инструмент Google Cloud , доступный для вашего проекта Firebase.
Cloud Monitoring полезен для обработки различных типов оповещений:
Если ресурс, от которого зависит ваш проект, недоступен (как для Firebase, так и для сервисов Google Cloud , но даже и для внешних сервисов, таких как AWS).
Если такие сервисы, как Cloud Functions отвечают дольше, чем ожидалось,
Если ваш сегмент Cloud Storage , экземпляр Realtime Database или экземпляр Cloud Firestore отклоняют слишком много запросов (это может указывать на некорректность ваших Firebase Security Rules ),
Если объем ресурсов, используемых некоторыми из ваших продуктов Firebase, превысил определенный порог,
Оповещения, созданные с помощью Cloud Monitoring обычно отправляются быстрее, чем простые электронные письма с уведомлениями о бюджетных проблемах, которые, как правило, рассылаются раз в день. Оповещения могут отправляться в виде SMS-сообщений, сообщений в каналах Slack, уведомлений PagerDuty, веб-хуков и многого другого. Эти варианты позволяют отправлять оповещения с более высоким уровнем видимости и возможностью принятия мер.
Использование Cloud Monitoring
Для начала работы с Cloud Monitoring мы рекомендуем использовать Metrics Explorer , который позволяет создавать графики пользовательских метрик в вашем проекте Firebase/ Google Cloud и визуализировать их использование.
В частности, вы можете просмотреть такие ресурсы, как экземпляры Cloud Firestore , Realtime Database или Cloud Function. Вы можете просмотреть информацию об использовании этих продуктов (например, количество прочитанных документов, отправленных байтов или вызовов функций), которая может повлиять на ваши счета.
После того, как вы освоите визуализацию использования ресурсов в Metrics Explorer, мы рекомендуем создать политику оповещений для наиболее важных для вас показателей. Вот несколько примеров политик оповещений:
Если количество просмотренных документов за 30 минут превышает определенное значение
Если использование определенного ресурса (например, вызов функции) кажется слишком быстро возрастающим в течение определенного периода времени,
Создайте дополнительную логику выставления счетов.
Функция оповещений о превышении бюджета автоматически отправляет электронные письма, когда ваш бюджет достигает определенных пороговых значений, но для более сложных оповещений или программных реакций на увеличение расходов вы можете рассмотреть возможность настройки дополнительной пользовательской логики на основе сообщений Google Cloud Pub/Sub .
Например, вы можете отправлять оповещения в каналы Slack или по SMS, а также вносить программные изменения в ваше приложение или проект в зависимости от уровня затрат.
Pub/Sub — это сервис обмена сообщениями, позволяющий другим сервисам отправлять сообщения — обычно в формате JSON — асинхронно через каналы, известные как темы Pub/Sub . Вы можете настроить авторизованные сервисы, такие как Cloud Functions , для прослушивания сообщений в этих темах и соответствующей обработки данных.
Обратите внимание, что уведомления Pub/Sub о выставлении счетов отправляются примерно раз в 20 минут, независимо от того, изменилось ли ваше потребление, и они не имеют состояния (то есть не предоставляют контекста о том, что им предшествовало). Если вы хотите отслеживать необычное увеличение расходов с течением времени или сравнивать свои расходы с предыдущим циклом, вам потребуется самостоятельно управлять этими историческими данными, используя базу данных, такую как Cloud Firestore или Realtime Database .
Использование тем Pub/Sub с Cloud Functions
Вы можете настроить тему Pub/Sub для ваших платежных данных, перейдя в бюджет, связанный с вашим проектом Firebase, в консоли Google Cloud (в разделе «Биллинг» > «Бюджеты и оповещения »), а затем установив флажок « Подключить тему Pub/Sub к этому бюджету» . Это создаст тему Pub/Sub , которую вы сможете прослушивать позже. Подробные инструкции см. в полной документации .
После создания темы для выставления счетов по схеме Pub/Sub вы можете написать облачную функцию, которая будет прослушивать эту тему и обрабатывать данные соответствующим образом. Данные отправляются в формате JSON и содержат полезную информацию, такую как сумма уже потраченных средств, сумма бюджета и дата начала текущего расчетного цикла.
В документации Google Cloud подробно описано, как получать эти данные с помощью Cloud Function. Однако, если вы используете Cloud Functions for Firebase для развертывания своих функций, общий процесс немного проще (см. документацию Firebase ). Вы также можете посмотреть это видео , чтобы увидеть примерный пошаговый процесс.
Получив эти данные, вы можете отреагировать на них несколькими способами. Вот несколько вариантов:
Отправка уведомлений в каналы Slack , Discord или текстовых сообщений, когда ваши расходы достигают определенного порога.
Анализ ваших расходов в сравнении с историческими данными и оповещение в случае возникновения каких-либо отклонений.
Вносите изменения в приложение через Remote Config , если уровень выставления счетов стал слишком высоким.
Полностью отключите свой проект Firebase, программно удалив платежную систему из своей учетной записи.