查看 2022 年 Google I/O 大会上介绍的 Firebase 新动态。了解详情

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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