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

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

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

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

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

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

Создавайте более сложные оповещения с помощью 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. Вы можете просматривать информацию об использовании этих продуктов (например, количество прочтений документов, отправленных байтов или вызовов функций), которая может повлиять на выставление счетов.

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

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

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

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

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

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

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 ). Вы также можете посмотреть это видео с пошаговым руководством по этому процессу.

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