启用日志记录后,您需要负责设置日志的路由、存储和保留方式。如果您超出免费的使用和保留量限制,则可能会产生额外的 Google Cloud 日志提取和保留费用。请参阅 Google Cloud Observability 价格。
不过,您可以使用下文中介绍的以下任一方法来控制日志记录费用。
减少日志记录用量
您可以通过排除特定日志条目来限制提取的日志数据量。如需了解详情,请参阅排除日志。
以下示例展示了常见的车队引擎场景,以及如何滤除特定日志消息以降低费用。
按方法过滤
您可以滤除只读方法,因为这些方法通常不需要用于数据分析或问题排查。
以下命令会更新 _Default
日志存储分区,以排除 GetVehicle
日志。
gcloud logging sinks update _Default \
--add-exclusion=name=ExcludeFleetengineGetVehicle,\
filter='jsonPayload.@type:"type.googleapis.com/maps.fleetengine.v1.GetVehicleLog"'
以下命令会更新 _Default
日志存储分区,以排除 GetTrip
日志。
gcloud logging sinks update _Default \
--add-exclusion=name=ExcludeFleetengineGetTrip,filter=\
'jsonPayload.@type:"type.googleapis.com/maps.fleetengine.v1.GetTripLog"'
创建调试属性
您只能通过设置 debug
属性来减少特定车辆的日志。现在,系统会排除不含 debug
属性的所有车辆。
以下命令会更新 _Default
日志存储分区,以从 UpdateVehicle
日志中排除不含 debug
属性的车辆。
gcloud logging sinks update _Default \
--add-exclusion=name=ExcludeFleetengineNonDebug,\
filter='resource.type="fleetengine.googleapis.com/Fleet"
log_name:"logs/fleetengine.googleapis.com%2Fupdate_vehicle"
jsonPayload.@type="type.googleapis.com/maps.fleetengine.v1.UpdateVehicleLog"
NOT jsonPayload.response.attributes.key="debug"'
过滤空的受限使用日志
启用后,受限使用日志会为每个常规日志创建一个子日志,即使操作未填充受限字段也是如此。滤除这些空的受限日志可以降低费用。
以下命令会更新 RestrictedLogs
日志存储分区,以排除空的受限 UpdateVehicle
日志。
gcloud logging sinks update RestrictedLogs \
--add-exclusion=name=ExcludeFleetengineEmptyRestrictedVehicleLogs,\
filter='resource.type="fleetengine.googleapis.com/Fleet"
log_name:"logs/fleetengine.googleapis.com%2Fupdate_vehicle_restricted"
NOT jsonPayload.request.vehicle.currentRouteSegment:*
NOT jsonPayload.response.currentRouteSegment:*
NOT jsonPayload.response.waypoints:*'
导出或转送日志
您可以将日志路由到其他 Google Cloud 或外部目的地,以避免产生默认的提取和存储费用。请务必关闭日志提取功能(如下一部分所述),以免产生提取费用。
请参阅 Cloud Logging 导出和导出日志。
关闭日志提取
如果您不打算使用 Fleet Engine 日志,可以通过关闭提取功能来避免可能产生的 Cloud Logging 费用。默认情况下,Fleet Engine 日志会路由到 _Default 日志存储分区。
以下命令会更新“_Default”日志存储分区,使其不会提取 Fleet Engine 日志。
gcloud logging sinks update _Default \
--log-filter='NOT LOG_ID("cloudaudit.googleapis.com/activity")
AND NOT LOG_ID("externalaudit.googleapis.com/activity")
AND NOT LOG_ID("cloudaudit.googleapis.com/system_event")
AND NOT LOG_ID("externalaudit.googleapis.com/system_event")
AND NOT LOG_ID("cloudaudit.googleapis.com/access_transparency")
AND NOT LOG_ID("externalaudit.googleapis.com/access_transparency")
AND NOT resource.type:"fleetengine.googleapis.com"'