我支持基于Google Cloud Platform构建的数据管理解决方案。随着我们的产品的成熟,越来越多的团队和个人正在采用它,这意味着更多的人正在存储和搜索数据并增加成本。我们需要更好地了解每个用户/工作流程对我们造成的损失,以便我们最终可以开始使用我们的服务收费。
我已经拥有Google云平台项目的结算数据,我们的解决方案在运行时会导出到BigQuery。我发现有关该项目的70-80%的Google Cloud Platform账单都归功于App Engine(作为产品),因此我目前专注于分割App Engine的成本。这是一天(来自BigQuery)项目的App Engine成本的简要视图:
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
{{1}的条目反映2017-08-20发生的费用,而不是2017-08-19,对吧?
现在,我了解将这些App Engine成本与App Engine活动相关联并不是一个精确的映射 - Google Cloud Platform不会针对每个操作进行计费,并且我会猜测共享资源成本(请如果我错了,请纠正我!) - 但我还是想得到合理的估计。我的第一次尝试涉及检查Google's logged estimated cost per request。因此,我为App Engine请求日志创建了一个接收器并等待数字滚入。但是,使用此方法在给定日期内所有请求的总估计成本非常低:
2017-08-20 08:00:00 UTC
产量
SELECT SUM(protoPayload.cost) AS cost_total
FROM [my-data-management-solution:request_log.appengine_googleapis_com_request_log_20170820];
这几乎占App Engine总成本的1.5%!
问题2: Row cost_total
1 3.2711573326337837
(s)(来自Google Cloud Platform结算导出)请求日志费用估算值是对应还是有贡献?
我的App Engine成本中约有95%归功于后端实例resource_type
。我对它们的内容进行了一些粗略的研究(包括this video声称Google正在远离整个后端/前端实例的区别)。我假设(或者可能已经读过)Google依赖于任何秘密算法来启动,关闭和管理这些实例。就这样......
问题3(重大问题):如何才能了解单个用户/工作流操作(仅限于通过App Engine确定)可以对App Engine总成本产生多少影响,或者最低限度Google云端项目的App Engine后端实例成本?是否有可能没有像用户活动回归成本和创建ML模型那样的东西?是否有机会深入了解这个黑盒子(从缩放和定价角度来看)是如何工作的,或者认为App Engine的成本与用户活动有些直接相关?
我们的数据管理解决方案使用了自己的身份概念,我并不期待Google能够巧妙地弄明白这一点。我现在可以通过解析Stackdriver日志将resource_type
项链接到用户,我将计算用户工作流关联或从其他工具获取它们。
为了以防万一,开箱即用的东西有什么可以做的吗?一个StackOverflow评论提到Potamus,但是存储库不再可用,并且几乎没有关于它开始时做什么的任何信息。
如果App Engine成本分割不是什么大问题,那么云存储等其他产品如何?这将是我的下一个目标,尽管将云存储成本(实际的,可能可忽略的存储成本和更昂贵的I / O成本)与App Engine活动相关联的挑战在这一点上似乎更不合理。
答案 0 :(得分:0)
完全理解您对资源使用的兴趣,希望这会有所帮助!
您可以通过GCP云控制台中的API资源管理器创建(和管理)标签,这应该可以明确资源使用情况。 标签实体可以与团队/成本中心,用户,环境等相关联,以便清楚地了解资源使用情况。链接资源提供了更多详细信息:GCP_Using Labels
您还可以使用export-to-BigQuery& amp;创建计费数据的可视化表示形式,以便进一步分析。 Data Studio。链接的媒体文章是一个很棒的概述。 Medium_Visualizing GCP Billing Data using BQ and Data Studio
干杯, 琥珀