乐趣区

关于前端:用户与产品竞品对比方案

背景

为了更好的 被动 感知用户级竞品 PK 指标,如:是火币关上速度快还是币安关上速度快呢?是火币 WebSocket 连贯快还是币安的快呢?

目前这些都是疑问句,啄木鸟感知地图里很重要一块就是竞品数据比照,当初咱们依赖第三方检测平台(如:Boce、听云),但数据不能很好的满足咱们需要,并且数据必定是间接在咱们本人手上最 平安,正所谓《数据在手,天下我有》。

指标

  • Docker 化部署
  • 插件化治理
  • 任务调度式收集
  • 自定义指标

架构图

运行环境

基于 Docker 运行,运行时为 Node.js,能够实现:

  1. 基于 Puppeteer 无头浏览器式收集数据,如:性能指标、WebSocket 指标、接口指标等
  2. 基于 Ping 实现:域名可用性、TTL、丢包率的探测

购买多个节点服务器,如:阿里云 ECS 1U1G 北京、杭州、上海等节点装置 Woodpecker Docker Agent,其实能够了解为“肉鸡”的概念,咱们在近程的 Master 里治理这些 Agent 装置的插件、状态,并在工作触发时候发到对应的节点中,由节点实现数据采集、上报的工作。

留神的是,Agent 中只是在 ECS 中运行着一个 Docker 容器,而 Master 治理 / 操作的也是这个容器,不会对宿主做操作,不会越权(如:SSH ECS,咱们认为这些操作是 OPS 解决的领域)。

Master

1. 插件治理

以代码模式(Node.js)分模块治理,在工作里抉择插件,并配置插件所需参数,插件列表如:

  1. Ping 插件

    • 配置:域名 /IP、超时、次数
  2. 网站页面性能指标插件

    • 配置:链接、视图宽高、UserAgent
  3. Huobi Global WebSocket 专测
  4. Binance WebSocket 专测
  5. 其实能做的很多很多 …
2. Agent 治理

查看所有 Agent 的状态、散布,对其装置 / 卸载插件,并对其进行地区散布、标签等信息管理。

3. 工作治理

以工作队列式向对应 Agent 发送数据,工作配置大略如:

  • 工作名称
  • 所属 Agent,如:bj01、sg03、hz03
  • 工作距离:单次、1s、1m、1h、1h
  • 执行插件:

    1. Ping – {url: ‘www.baidu.com’, timeout: 1000, count: 5}
    2. Web Performance – {url: ‘https://www.huobi.me/zh-cn/ex…’}
    3. Web Performance – {url: ‘https://www.baidu.com’}
    4. Global WebSocket
    5. Binance WebSocket

Agent

应用 Docker 后盾运行一个容器,如:

docker run \\
    -d \\
    --name woodpecker-agent \\
    -p 8080:8080 \\
    -e ACCESS\_KEY\= 生成的令牌 \\
    hub.Woodpecker.vip/pk/agent:v1.0.0

该 Agent 提供的 OpenAPI:

  • IP:8080/open/v1/status – 以后 Agent 状态
  • IP:8080/open/v1/plugin/install – 装置插件,上传插件数据到 Agent
  • IP:8080/open/v1/task/exec – 应用数据执行工作

Woodpecker

日志收集服务,由 Agent 采集完后推送到该服务,由该服务入库。

留神

  1. 以上均应用内网传输,如:Master -> Agent -> Woodpecker -> DB
  2. 频繁采集第三方网站时可能面临被封 IP 的危险
退出移动版