GCP 中 Stackdriver 中的 DialogFlow 日志没有 json_payload

No json_payload for DialogFlow logs in Stackdriver in GCP

最近,我尝试通过启用以下选项从 StackDriver 检索 DialogFlow 日志(即包含有关会话 information/interaction 的所有内容)以执行我的仪表板自定义分析:

但是,在我检查了 DialogFlow 日志条目的格式之后,似乎只有 unstructured text_payload 可用(即)并且没有 结构化 json_payload.

痛苦的是我无法轻易地解析 text_payload 以从中获取我想要的数据。因此,我的问题是:

  1. 可以通过启用我错过的一些设置来使用 json_payload 吗?
  2. 如果由于某种原因 json_payload 不可用,是否有任何易于用于数据检索的替代格式?或者我可以在 text_payload?
  3. 上使用的任何解析器

提前致谢。


Dialogflow 请求的日志条目格式:

{ "textPayload": "Dialogflow Request : {"session":"44885105","query_input":"{\n \"event\": {\n \"name\": \"WELCOME\", \n \"参数\": {\n }\n }\n}","时区":"Australia/Sydney"}", "insertId": "gnp3xsg27351ns", “资源”:{ “类型”:“全球”, “标签”: { "project_id": "ai-hackathon-2020-lrwc" } }, “时间戳”:“2020-08-07T04:11:29.737Z”, “严重性”:“信息”, “标签”: { "request_id": "05f6f343-a646-42e0-8181-48c2e853e21b-0820055c", “协议”:“V2”, “类型”:“dialogflow_request” }, "logName": "projects/ai-hackathon-2020-lrwc/logs/dialogflow_agent", “追踪”:“44885105”, “接收时间戳”:“2020-08-07T04:11:29.800030654Z” }

Dialogflow 响应的日志条目格式: { “textPayload”:“Dialogflow 响应:id:“05f6f343-a646-42e0-8181-48c2e853e21b-0820055c”\nlang:“en”\nsession_id:“44885105”\n时间戳:“2020-08-07T04:11 :29.747Z"\nresult {\n source: "agent"\n resolved_query: "WELCOME"\n action: "input.welcome"\n score: 1.0\n parameters {\ n }\n 上下文 {\n 名称:“defaultwelcomeintent-followup”\n 生命周期:2\n 参数 {\n }\n }\n 元数据 {\n intent_id:“22498e9a-efcf-43e0 -a945-36a7ef4c702d"\n intent_name: "默认欢迎意图"\n webhook_used: "false"\n webhook_for_slot_filling_used: "false"\n is_fallback_intent: "false "\n }\n fulfillment {\n 语音:"嘿,美好的一天!你想报告什么样的问题?"\n messages {\n lang: "en"\n type {\n number_value: 0.0\n }\n speech {\n string_value:“嘿,美好的一天!你想报告什么样的问题?"\n }\n }\n }\n}\nstatus {\n code: 200\n error_type: "success"\n}\n ", "insertId": "gnp3xsg27351nt", “资源”:{ “类型”:“全球”, “标签”: { "project_id": "ai-hackathon-2020-lrwc" } }, “时间戳”:“2020-08-07T04:11:29.789Z”, “严重性”:“信息”, “标签”: { “类型”:“dialogflow_response”, “协议”:“V2”, “request_id”:“05f6f343-a646-42e0-8181-48c2e853e21b-0820055c” }, "logName": "projects/ai-hackathon-2020-lrwc/logs/dialogflow_agent", “追踪”:“44885105”, “接收时间戳”:“2020-08-07T04:11:29.800030654Z” }

我在 Processing payloads 上查看了这个文档,发现当日志行是一个序列化的 JSON 对象并且启用了 detect_json 选项时,输出插件会转换日志进入结构化 (JSON) 有效载荷。默认情况下,此选项在 App Engine 灵活环境中为 VM 实例 运行 和 Google Kubernetes Engine.Whereas 启用,默认情况下在 App Engine 上的 VM 实例 运行 中未启用标准环境。

但是,可以自定义代理的配置以支持从其他资源中摄取结构化日志。 Streaming structured (JSON) log records to Cloud Logging 上的文档可能会有帮助。

由 custom-configured 日志代理流式传输的日志记录的负载可以是单个非结构化文本消息 (textPayload) 或结构化 JSON 消息 (jsonPayload)。