如何在Stackdriver Logging中记录Cloud ML Engine的Predict请求与响应
当然可以实现这个需求!Cloud ML Engine默认只记录请求元数据,要把请求输入和预测响应也加入日志,你需要在自定义的预测函数里手动添加日志逻辑,具体操作如下:
1. 在预测函数中嵌入自定义日志
直接用Python内置的logging模块,在处理请求和生成预测结果的环节,把内容打印到日志里就行。示例代码如下:
import logging # 确保日志级别为INFO,确保这类日志能被Stackdriver捕获 logging.basicConfig(level=logging.INFO) def predict(request): # 解析请求中的输入数据 request_json = request.get_json() input_data = request_json.get('instances', []) # 记录请求输入内容 logging.info(f"request:{input_data}") # 替换为你实际的模型预测逻辑 prediction_result = your_model.predict(input_data) # 记录预测响应内容 logging.info(f"prediction:{prediction_result.tolist()}") # 返回符合要求的响应格式 return {"predictions": prediction_result.tolist()}
2. 确认日志输出配置
Stackdriver Logging会自动捕获容器的stdout和stderr输出,而Python的logging模块默认将日志输出到stderr,所以不需要额外配置就能被抓取到。如果后续没看到日志,可以检查代码里的日志级别是否设置正确——要是设成了WARNING或更高,INFO级别的日志就不会被输出。
3. 验证日志效果
部署修改后的模型,调用一次predict接口,然后打开Stackdriver Logging界面,搜索request:或prediction:关键词,就能看到你想要的详细日志内容了。
内容的提问来源于stack exchange,提问作者Gayatri
相关产品推荐
相关产品推荐

