如何通过Dataproc作业UUID追踪GCP计费及资源使用情况
一、集群运行时长与资源占用费用
获取作业关联集群信息
用Dataproc命令行工具查询作业详情,提取关联的集群名称:gcloud dataproc jobs describe <你的作业UUID> --region=<集群所在区域>输出结果中的
clusterName字段即为作业运行的集群名称。计算集群运行时长
查询集群的创建与删除时间,计算实际运行时长:gcloud dataproc clusters describe <集群名称> --region=<集群所在区域>从输出的
createTime和deleteTime字段计算时间差。如果是为该作业专属创建的临时集群,整个集群运行时长即为作业相关的计费时长;如果是共享集群,需结合作业的startTime和endTime(从jobs describe结果中获取),计算作业运行时段内的集群资源占用费用。确认集群资源规格
从clusters describe结果中获取实例类型、节点数量等信息,结合GCP Dataproc按实例小时数计费的标准,估算集群部分的费用。
二、BigQuery数据使用与费用
关联Dataproc作业与BQ操作
Dataproc访问BQ时会生成对应的BQ作业,可通过Cloud Logging关联两者:gcloud logging read "resource.type=bigquery_job AND labels.dataproc_job_id=<你的作业UUID>" --region=<区域>从日志中提取BQ作业ID(
job_id字段)。查询BQ数据扫描量
用BQ命令行工具查看该BQ作业的详细数据使用情况:bq show --job_id=<BQ作业ID> --format=prettyjson输出中的
statistics.totalBytesProcessed即为扫描的数据量,结合BQ按TB扫描量计费的标准计算费用。批量筛选BQ操作
若日志未直接关联,可通过BQ信息架构表,按作业时间段、执行BQ操作的Dataproc集群服务账号筛选:SELECT job_id, total_bytes_processed, creation_time, end_time FROM `region-<区域>.INFORMATION_SCHEMA.JOBS_BY_PROJECT` WHERE creation_time BETWEEN '<作业开始时间>' AND '<作业结束时间>' AND user_email = '<Dataproc集群服务账号邮箱>'
三、临时存储费用
确认临时存储位置
Dataproc作业默认使用名为dataproc-<UUID>-temp-<区域>的Cloud Storage桶作为临时存储,可从作业详情或集群配置中获取桶路径。查询存储使用量
用GSutil命令查看临时桶的存储容量与操作次数:# 查看总存储量 gsutil du -s gs://<临时桶路径> # 查看操作日志(需提前开启存储日志) gsutil ls -L gs://<日志存储桶>/storage/v1/b/<临时桶名称>/o/结合Cloud Storage按存储容量、读写操作次数计费的标准计算费用。
四、整合计费明细
使用Cloud Billing命令行工具,直接筛选与该作业UUID关联的所有计费项:
gcloud beta billing reports query \ --project=<你的项目ID> \ "SELECT service.description, cost, usage.amount, usage.unit, resource.labels.dataproc_job_id WHERE resource.labels.dataproc_job_id = '<你的作业UUID>' AND start_time >= '<作业开始时间>' AND end_time <= '<作业结束时间>'"
该命令会返回所有关联的费用条目,包括Dataproc集群、BQ、Cloud Storage等服务的费用明细。
内容的提问来源于stack exchange,提问作者SomeRandomUser

