Elasticsearch 插件用于 UBI:在 Kibana 中分析用户数据

在本文中,我们将向您展示如何使用 Elasticsearch 中的 UBI(用户行为洞察)标准捕获和分析用户分析数据。
您可以在本文中了解有关 UBI 的更多信息。
使用 UBI 收集器收集的数据可以在 Kibana 上用于构建仪表板,从而打开了解用户在我们应用程序中的行为的窗口。在本博客中,我们将探讨如何分析 Kibana 中的 UBI 数据,以深入了解我们的应用程序是如何使用的。

演示设置

我们可以按照以下步骤轻松重现本博客中的演示:

1)克隆代码库

git clone https://github.com/Alex1795/ubi-dashboard-elasticsearch_blog.git 
cd ubi-dashboard-elasticsearch_blog

2)安装所需的库:

pip install -r requirements.txt

3)运行设置脚本。确保事先设置以下环境变量:

  • ES_HOST
  • API_KEY
  • KIBANA_HOST
python setup.py

这就是你需要做的全部操作。如果一切顺利,你应该会在脚本执行中看到如下输出:

正如我们所见,脚本:

  • 创建了两个具有适当映射的索引
  • 向这些索引添加了 23 个文档
  • 将一些已保存的对象上传到 Kibana

现在,让我们看看这个脚本在后台到底做了什么。

理解已上传的数据

首先,在创建可视化之前,我们先在 Elasticsearch 中放入一些数据。

你可以在 Kibana DevTools 中手动重现该过程,分别复制映射和示例数据,并使用 PUT <index> 和 PUT _bulk API

ubi_events 索引

用户操作数据,每次点击都会生成文档(本例中),包括:

  • application:生成事件的客户端应用程序("search-ui")
  • action_name:执行的用户操作类型("click")
  • query_id:将该事件链接到相应的搜索查询会话
  • client_id:生成的唯一 ID,用于表示用户或会话,不泄露个人数据。它代替使用可识别数据(如电子邮件或用户名)生成。这种方法具有隐私优势,例如安全分析能力和安全数据共享,同时仍能实现会话连续性、行为分析或 A/B 测试等重要功能。
  • timestamp:事件发生的 ISO 8601 格式时间戳
  • message_type:事件类别,用于处理("CLICK_THROUGH")
  • message:事件发生的人类可读描述("Clicked Fahrenheit 451")
  • user_query:导致该事件的原始搜索词("fahrenheit")
  • event_attributes:包含详细事件上下文的嵌套对象:
    • object.device:用户使用的设备类型("mobile")
    • object.object_id:点击项的唯一标识
    • object.description:点击项的详细信息(书名、日期、作者)
    • object.position.ordinal:搜索结果中项的排名位置(第 1 位)
    • object.position.page_depth:项所在的结果页(第 1 页)
    • object.user.ip:用户 IP 地址
    • object.user.city/region/country:地理位置信息
    • object.user.location:精确的经纬度坐标

示例文档:

       {
         "application": "search-ui",
         "action_name": "click",
         "query_id": "2dd48446-7ca8-4510-89f4-2ebb67ed240b",
         "client_id": "8c1915fe-8ee0-4487-b801-3b1d67c25cf6",
         "timestamp": "2025-07-30T14:25:52.698Z",
         "message_type": "CLICK_THROUGH",
         "message": "Clicked Fahrenheit 451",
         "user_query": "fahrenheit",
         "event_attributes": {
           "object": {
             "device": "mobile",
             "object_id": "ZwoTM5gBPJ218VOaBpj4",
             "description": "Fahrenheit 451(1953-10-15) by Ray Bradbury",
             "position": {
               "ordinal": 1,
               "page_depth": 1
             },
             "user": {
               "ip": "192.168.1.100",
               "city": "New York",
               "region": "New York",
               "country": "United States",
               "location": {
                 "lat": 40.7128,
                 "lon": -74.006
               }
             }
           }
         }
       }

你可以在此处下载索引映射

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值