Как наиболее точно связать затраты проекта Google Cloud Platform с активностью App Engine?
Я поддерживаю решение для управления данными, построенное на платформе Google Cloud. По мере развития нашего продукта все больше и больше команд и отдельных лиц принимают его, а это означает, что все больше людей хранят и ищут данные, а также увеличивают расходы. Нам нужно лучше понять, сколько каждый из этих пользователей / рабочих процессов стоит нам, чтобы мы могли в конечном итоге начать взимать с них плату за использование наших услуг.
У меня уже есть данные для выставления счетов по проекту Google Cloud Platform, на котором работает наше решение, экспортированное в BigQuery. Я заметил, что 70-80 процентов нашего счета Google Cloud Platform для рассматриваемого проекта связано с App Engine (как продукт), поэтому в настоящее время я сосредоточен на разделении затрат App Engine. Вот сжатое представление затрат App Engine на проект за один день (из BigQuery):
Row product resource_type start_time end_time cost usage_amount usage_unit
1 App Engine Simple Searches 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 0.1473 3946.0 requests
2 App Engine Flex Instance RAM 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 0.6816 3.710851743744E14 byte-seconds
3 App Engine Search Document Storage 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 0.505028 8.0921704558464E15 byte-seconds
4 App Engine Code and Static File Storage 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 0.0 5.96811043008E13 byte-seconds
5 App Engine Datastore Entity Writes 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 0.085804 67669.0 requests
6 App Engine Other Search Ops 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 0.0 1732.0 requests
7 App Engine Out Bandwidth 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 0.273014 3.516638423E9 bytes
8 App Engine Datastore Read Ops 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 1.494541 2540902.0 requests
9 App Engine Search Document Indexing 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 0.05012 3.7645832E7 bytes
10 App Engine Datastore Storage 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 1.72891 2.7716055728688E16 byte-seconds
11 App Engine Flex Instance Core Hours 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 5.0496 345600.0 seconds
12 App Engine Task Queue Storage 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 0.0 5.14512E8 byte-seconds
13 App Engine Datastore Small Ops 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 0.0 16166.0 requests
14 App Engine Backend Instances 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 206.080588 1.4870202339153E7 seconds
15 App Engine Frontend Instances 2017-08-20 07:00:00 UTC 2017-08-20 08:00:00 UTC 1.35596 198429.126958 seconds
Вопрос 1: Кстати, для всех, кто знаком с экспортом биллинга Google Cloud Platform, есть запись с start_time
2017-08-20 07:00:00 UTC
а также end_time
2017-08-20 08:00:00 UTC
отражает расходы, понесенные в 2017-08-20, а не 2017-08-19, верно?
Теперь я понимаю, что привязка этих затрат App Engine к активности App Engine не будет точным сопоставлением - Google Cloud Platform не будет выставлять счета за действие, и будут фиксированные и, я думаю, общие ресурсы (пожалуйста, исправьте меня, если Я ошибаюсь!) - но я все же хотел бы получить разумную оценку. Моя первая попытка состояла в том, чтобы проверить зарегистрированную оценочную стоимость Google на запрос. Поэтому я создал приемник для журналов запросов App Engine и ждал, когда будут добавлены числа. Однако общая оценочная стоимость всех запросов в данный день с использованием этого подхода очень низкая:
SELECT SUM(protoPayload.cost) AS cost_total
FROM [my-data-management-solution:request_log.appengine_googleapis_com_request_log_20170820];
доходность
Row cost_total
1 3.2711573326337837
Это едва составляет 1,5% от общих затрат App Engine!
Вопрос 2: Что resource_type
(s) (из экспорта биллинга Google Cloud Platform) соответствуют ли оценки затрат журнала запросов или способствуют ли они?
Около 95% моих затрат на App Engine связано с серверными инстансами resource_type
, Я провел небольшое беглое исследование того, что они из себя представляют (включая это видео, в котором утверждалось, что Google отходит от всех различий между бэкэндом и внешним интерфейсом). Я предполагаю (или, возможно, читал), что Google использует любые секретные алгоритмы для ускорения, выключения и иного управления этими экземплярами. В качестве таких…
Вопрос 3 (большой вопрос): Как я могу получить некоторое представление о том, сколько отдельных действий пользователя / рабочего процесса (ограничено с помощью App Engine - все в порядке) способствуют общим затратам App Engine или минимальным затратам на внутренние компоненты App Engine для Google Cloud Проект? Возможно ли это без регрессии затрат на действия пользователя и создания модели ML? Является ли идея получить представление о том, как работает этот черный ящик (как с точки зрения масштабирования, так и с точки зрения ценообразования), или иным образом думать, что затраты App Engine в некоторой степени напрямую связаны с активностью пользователей вообще?
Дополнительная информация
Наше решение для управления данными использует собственную концепцию идентификации, и я не ожидаю, что Google волшебным образом это выяснит. Я могу в настоящее время ссылку
request_log
элементы для пользователей, анализируя журналы Stackdriver, и я отработаю связи между пользовательским рабочим процессом или получу их из другого инструмента.На всякий случай, есть что-нибудь, чтобы сделать что-то из этого из коробки? В одном комментарии Stackru упоминается Potamus, но репозиторий больше недоступен, и вряд ли есть какая-либо информация о том, с чего он начинал.
Если разделение затрат App Engine не имеет большого значения, как насчет других продуктов, таких как Cloud Storage? Это будет моей следующей целью, хотя задача связать затраты облачного хранилища (как фактические, потенциально незначительные, затраты на хранение и более дорогие затраты ввода-вывода) с активностью App Engine на данный момент кажется еще менее разумной.
1 ответ
Полностью понять ваш интерес к использованию ресурсов, надеюсь, это поможет!
Вы можете создавать (и управлять) метками через менеджер ресурсов API в облачной консоли GCP, это должно обеспечить ясность в использовании ресурсов. Объекты меток могут быть связаны с группами / центрами затрат, пользователями, средами и т. Д., Чтобы получить ясность в использовании ресурсов. Связанный ресурс предоставляет дополнительную информацию: GCP_Using Labels
Вы также можете создавать визуальные представления данных для выставления счетов для дальнейшего анализа, используя экспорт в BigQuery & Data Studio. Связанная средняя статья - это потрясающий обзор. Medium_Visualizing GCP Billing Data с использованием BQ и Data Studio
Ура, янтарь