Хотя простые электронные письма с оповещениями о бюджете являются относительно простым способом получения обновлений по счетам, могут быть случаи, когда вам захочется создать более сложные оповещения, включающие более настраиваемую логику. Здесь следует рассмотреть два подхода:
Используйте 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 или облачных функций. Вы можете просмотреть информацию об использовании этих продуктов (например, количество прочтений документов, отправленных байтов или вызовов функций), которая повлияет на ваши счета.
После того, как вы научитесь визуализировать использование ресурсов в обозревателе метрик, мы рекомендуем создать политику оповещений для наиболее важных для вас показателей. Вот несколько примеров политик оповещений:
Если количество прочтений документа за 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 Functions for Firebase для развертывания своих функций, общий процесс немного проще (см. документацию Firebase ). Вы также можете просмотреть это видео , чтобы увидеть образец пошагового процесса.
После того как вы получили эти данные, вы можете отреагировать на них несколькими способами. Вот несколько вариантов:
Отправка оповещений на каналы Slack , каналы Discord или отправка текстовых сообщений, когда ваши расходы достигли определенного порога.
Анализ ваших расходов по сравнению с историческими данными и предупреждение вас, если что-то кажется необычным.
Внесение изменений в приложение с помощью Remote Config , если уровни выставления счетов стали слишком высокими.
Полное отключение проекта Firebase путем программного удаления службы выставления счетов из вашей учетной записи.