首页 / 透明度

透明度

本页说明本站公布的访问量是如何统计的。访问数据来自 Cloudflare Analytics Engine。

每当有人访问本站,就计为一次访问。访问量从 Workers Analytics Engine 读取。

一次访问如何计入统计

  1. 1 有人打开网站 每当有人访问本站,就计为一次访问。
  2. 2 网站通知 Cloudflare 访问数据发送至 Cloudflare,供其记录。
  3. 3 Cloudflare 存储此次访问 Workers Analytics Engine 将此次访问保存为一个数据点。
  4. 4 读取总数并显示 网站读取总数,并将其显示为访问量。
  1. 1

    有人打开网站

    每当有人访问本站,就计为一次访问。

  2. 2

    网站通知 Cloudflare

    访问数据发送至 Cloudflare,供其记录。

  3. 3

    Cloudflare 存储此次访问

    Workers Analytics Engine 将此次访问保存为一个数据点。

  4. 4

    读取总数并显示

    网站读取总数,并将其显示为访问量。

访问数据写入 Cloudflare,再读取并显示在页面上。

Workers Analytics Engine 是 Cloudflare 用于存储统计数据的服务,无需预先限定类别,数据便可持续扩展。Cloudflare 将其描述为可大规模处理、不限基数的分析服务。Worker 通过内置 API 写入数据点,之后可使用同一账户,通过 HTTP SQL API 以 SQL 查询这些数据点。这里使用的 SQL 方言与 Cloudflare 另一项 Analytics SQL API 所用的方言不同。

dataset 是存储单位。Cloudflare 将 dataset 比作 SQL 中的表:每一行和每一列都应保持含义一致。dataset 的名称在 Worker 配置中指定,并绑定到 Worker。Worker 开始写入数据时,表就会出现,无需另行声明各列。

一个数据点就是一个事件,对应一行数据。Worker 记录事件时,Cloudflare 会添加 timestamp。其余数据均由 Worker 提供,而且每次都必须按相同顺序提交。Cloudflare 将这些按顺序排列的位置称为字段。

字段就是这个顺序中的一个位置。第一个字符串始终对应第一个字符串字段,第二个数字始终对应第二个数字字段。数据库不会在值旁边存储名称,而是记录它所在的位置。顺序一变,字段的含义也随之改变。查询时,这些位置就成为列。字符串字段为 blob1 至 blob20,数值字段为 double1 至 double20,采样键为 index1。每一行还包含 timestamp、dataset 和 _sample_interval。查询可以根据当前需要为字段起别名,例如 blob1 AS city,但存储的字段仍是 blob1。

什么是字段

  1. 按顺序排列的文本 供日后分组使用的标签,例如地点。
    blob1, then blob2, up to blob20 此字段在 Cloudflare 中的名称。
  2. 按顺序排列的数字 供求和或计算平均值使用的度量值。
    double1, then double2, up to double20 此字段在 Cloudflare 中的名称。
  3. 一个索引 事件流量过大、需要采样时,Cloudflare 所依据的键。
    index1 此字段在 Cloudflare 中的名称。
  4. 由 Cloudflare 添加的时间 事件写入的时刻。
    timestamp 此字段在 Cloudflare 中的名称。
  5. 由 Cloudflare 添加的采样对应事件数 这条存储记录所代表的原始事件数量。
    _sample_interval 此字段在 Cloudflare 中的名称。
  1. 按顺序排列的文本

    供日后分组使用的标签,例如地点。

    存储为 blob1, then blob2, up to blob20

  2. 按顺序排列的数字

    供求和或计算平均值使用的度量值。

    存储为 double1, then double2, up to double20

  3. 一个索引

    事件流量过大、需要采样时,Cloudflare 所依据的键。

    存储为 index1

  4. 由 Cloudflare 添加的时间

    事件写入的时刻。

    存储为 timestamp

  5. 由 Cloudflare 添加的采样对应事件数

    这条存储记录所代表的原始事件数量。

    存储为 _sample_interval

每个字段的位置固定不变。查询可以根据当前需要为 blob1 起别名,但存储的字段仍是 blob1。

字段分为三类。Blob 字段存储字符串。Cloudflare 将其称为用于分组和筛选的维度,其他系统则称其为标签。每个数据点最多可包含二十个 Blob 字段,总大小不得超过 16 千字节。Double 字段存储数字,也就是需要求和或取平均值的度量值。每个数据点最多可包含二十个 Double 字段。索引是一个长度不超过 96 字节的字符串。写入接口接受一个索引列表,但只有列表中恰好包含一个索引时,Cloudflare 才会存储该数据点。如果包含第二个索引,这个数据点就不会被记录。

数据量极大时,Analytics Engine 会对数据采样,以保持查询速度。采样可能发生在写入和读取阶段,并以索引为依据。事件量大的索引可能会被采样,事件量较小的索引则可能保留全部数据。每条存储的记录都包含 _sample_interval,表示该行代表的原始事件数。统计总次数时,将 _sample_interval 相加;对某项度量值求和时,先将该值乘以 _sample_interval,再求和;计算平均值时,将加权总和除以这些采样间隔值的总和。

每次调用 Worker 最多可写入 250 个数据点。数据保留三个月。