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

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

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

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

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

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

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

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

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

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

  • Если такие службы, как облачные функции, отвечают дольше, чем ожидалось

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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