产品分析 API

  • 引入于极狐GitLab 15.4,功能标志cube_api_proxy。默认禁用。
  • cube_api_proxy 移除并替换为 product_analytics_internal_preview 于极狐GitLab 15.10。
  • product_analytics_internal_preview 替换为 product_analytics_dashboards 于极狐GitLab 15.11。
在私有化部署的极狐GitLab 上,默认情况下此功能不可用。要使其在每个项目或整个实例中可用,管理员可以启用名为 cube_api_proxy功能标志。 在 JihuLab.com 上,此功能不可用。 此功能尚未准备好用于生产用途。
note 请先使用 API 定义 cube_api_base_urlcube_api_key 应用设置。

向 Cube 发送查询请求

生成可用于查询 Cube API 的访问令牌。例如:

POST /projects/:id/product_analytics/request/load
POST /projects/:id/product_analytics/request/dry-run
参数 类型 是否必需 描述
id integer yes 当前用户有读取权限的项目的 ID。
include_token boolean no 是否在响应中包含访问令牌。(仅在 Funnel 生成时需要)

请求主体

加载请求的主体必须是有效的 Cube 查询。

note 测量 TrackedEvents 时,您必须使用 TrackedEvents.* 作为 dimensionstimeDimensions。衡量 Sessions 时相同的规则也同样适用。

跟踪事件示例

{
  "query": {
    "measures": [
      "TrackedEvents.count"
    ],
    "timeDimensions": [
      {
        "dimension": "TrackedEvents.utcTime",
        "dateRange": "This week"
      }
    ],
    "order": [
      [
        "TrackedEvents.count",
        "desc"
      ],
      [
        "TrackedEvents.docPath",
        "desc"
      ],
      [
        "TrackedEvents.utcTime",
        "asc"
      ]
    ],
    "dimensions": [
      "TrackedEvents.docPath"
    ],
    "limit": 23
  },
  "queryType": "multi"
}

会话示例

{
  "query": {
    "measures": [
      "Sessions.count"
    ],
    "timeDimensions": [
      {
        "dimension": "Sessions.startAt",
        "granularity": "day"
      }
    ],
    "order": {
      "Sessions.startAt": "asc"
    },
    "limit": 100
  },
  "queryType": "multi"
}

向 Cube 发送元数据请求

返回 Analytics 数据的 Cube 元数据。例如:

GET /projects/:id/product_analytics/request/meta
参数 类型 是否必需 描述
id integer yes 当前用户具有读取权限的项目的 ID。

列出项目的 Funnel

列出项目的所有 Funnel。例如:

GET /projects/:id/product_analytics/funnels
参数 类型 是否必需 描述
id integer yes 当前用户具有开发者角色的项目的 ID。