首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GCP中的堆栈驱动程序中没有针对DialogFlow日志的DialogFlow

在GCP中的堆栈驱动程序中没有针对DialogFlow日志的DialogFlow
EN

Stack Overflow用户
提问于 2020-08-09 03:42:05
回答 2查看 477关注 0票数 1

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

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

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

  1. 可以通过启用一些我错过的设置来获得json_payload吗?
  2. 如果由于某种原因无法使用json_payload,那么有什么其他格式可以很容易地用于数据检索吗?或者我可以在text_payload上使用的解析器?

提前谢谢。

对话框请求的日志输入格式:

{ "textPayload":“对话框请求:{”会话“:”44885105“,"query_input":"{\n \”事件\:{\n \“名称\”:\“欢迎”,\n \“参数\”:{\n } }\n },“时区”:“澳大利亚/悉尼”},"insertId":"gnp3xsg27351ns",“资源”:{ "type":“全局”,“标签”:{ "project_id":“ai-hackath-2020-lrwc”},“时间戳”:"2020-08-07T04:11:29.737Z",“严重性”:"INFO",“标签”:{ "request_id":request_id协议:"V2","type":"dialogflow_request“},“"projects/ai-hackathon-2020-lrwc/logs/dialogflow_agent",”:"logName":"44885105","receiveTimestamp":"2020-08-07T04:11:29.800030654Z“}

对话框响应的日志输入格式:"05f6f343-a646-42e0-8181-48c2e853e21b-0820055c"\nlang:{ "textPayload":“对话框流响应: id: "en"\nsession_id:”44885105“\n时间戳:”2020-08-07T04:11:29.747Z“\n源:”代理“\n resolved_query:”欢迎“\n动作:"input.welcome"\n得分: 1.0\n参数{\n }N上下文{\n名称:“默认十二意图-后续”\n生命周期: 2\n参数{\n }\n元数据{\n intent_id:“22498e9a-EFCF-43e0-A 945-36a7ef4c702d”\n intent_name:“默认欢迎意向”webhook_used:"false"\n webhook_for_slot_filling_used:"false"\n is_fallback_intent:"false"\n is_fallback_intent:“false”\n is_fallback_intent\n履行{\n个演讲:“嘿,好日子!您想报告什么样的问题?\n消息{\n lang:"en"\n类型{\n number_value: 0.0\n }\n string_value:“嘿,好日子!你想报道什么样的问题?“\n }\n状态{\n代码: 200\n error_type:“成功”\n }\n“,"insertId":"gnp3xsg27351nt",”资源“:{ "type":”全局“,”标签“:{ "project_id":”ai-hackath-2020-lrwc“},”时间戳“:"2020-08-07T04:11:29.789Z",”严重性“:"INFO",“标签”:{“类型”:"dialogflow_response",“协议”:"V2","request_id":"projects/ai-hackathon-2020-lrwc/logs/dialogflow_agent",},"logName":“跟踪”:"44885105","receiveTimestamp":"2020-08-07T04:11:29.800030654Z“}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-11 23:43:19

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

但是,可以自定义代理的配置,以支持从其他资源中摄取结构化日志。关于流结构化(JSON)日志记录到云日志记录的文档可能会有所帮助。

自定义配置日志代理流的日志记录的有效负载可以是单个非结构化文本消息(textPayload),也可以是结构化JSON消息(jsonPayload)。

票数 1
EN

Stack Overflow用户

发布于 2022-06-21 09:33:55

您可以使用解析对话框流日志模块,如下所示:

  1. 首先,删除对话框流实现响应:对话框流实现请求:对话框流请求:和对话框流响应:

对于前三个,只需使用JSON.parse()解析最后一个带有解析-对话框流-日志模块的模块,如我所做的这个简单函数所示。(提高效率可以使其变得更好)

代码语言:javascript
复制
async function parsePayload(odj){
let result = await odj.map((e)=>{
let a = e.textPayload;
let g;
let c;
let w = a.slice(0, 31);

if(w.includes(':')){
    let t = a.slice(0,21)
     g = a.replace(t, '{') + '}'
     try {
         c = parser.parse(g);  
         e.textPayload = c;
     } catch (error) {
          console.log('ERROR AT: ' + t) 
          try {
              g = a.replace(t, '');
              let df = JSON.parse(g)
               e.textPayload = df
           } catch (error) {
               console.log('cannot parse req')
           }
      }
        
      }else{
        let u = a.slice(0, 32)
        if(u.includes(':')){
            g = a.replace(u, '') 
            try {
                c = parser.parse(g);
                console.log(u)
                console.log(c)
            } catch (error) {
                console.log('ERROR AT: ' + u) 
                try {
                let dd = JSON.parse(g)
                e.textPayload = dd;
                } catch (error) {
                console.log('cannot parse')
                }
            }
        }else{
            let v = a.slice(0, 34);
            g = a.replace(v, '') 
            try {
                c = parser.parse(g);
            } catch (error) {
                console.log('ERROR AT: ' + v) 
                try {
                let dd = JSON.parse(g)
                e.textPayload = dd;
                } catch (error) {
                console.log('cannot parse')
                }
            }
            
        }
      }
    
      return e
})
return result

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63322254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档