乐趣区

xprober-分布式cs-ping-http框架

## 我写的分布式 c /s ping & http 探测代码
## 地址 [https://github.com/ning1875/xprober](https://github.com/ning1875/xprober) 

## xprober 特点

– 基于公有混合云 ec2 的 ping 监控,可以得到不同 region 之间的网络延迟

– 可以从不同 region 对 http 接口发起探测,可以 trace 一个 http 请求的各个 stage 的耗时

– icmp target 可由 存活 agent 上报 / 可以在配置文件中指定

– http target 在配置文件中指定

## 预览图

### http 探测结果

### 互 ping 结果

# 项目说明

xprober 是分布式 c / s 架构接口检测框架:

  • Ping 监控:基于不同区域之间的公共云混合云 ec2 检测
  • Ping 监视:根据代理启动来建立目标池,可以获取两个区域的 Ping 结果作为彼此的源和目标
  • 目标源:同时,它还支持服务器端配置文件以指定目标
  • Http 监视:它可以获取从不同区域到目标接口在不同 http 阶段花费的时间

服务器端逻辑

  • *   RPC 接收代理 agent IP 报告
    *   定时器将探测目标池刷新到本地缓存中
    *   server 根据 agent rpc 信息返回给其探测目标池
    *   rpc 接收数据
    *   更新到本地缓存
    *   定时器数据处理
    *   公开 prome http 指标

建造

$ git clone https://github.com/ning1875/xprober.git
# build agent
$ cd  xprober/pkg/cmd/agent && go build -o xprober-agent main.go 
# build server
$ cd ../server/ && go build -o xprober-server main.go` 

启动服务

# for server 
xprober-server --config.file=xprober.yml
# for agent 
xprober-agent --grpc.server-address=$server_rpc_ip:6001

与 promtheus 集成

将以下文本添加到 promtheus.yaml 的 scrape_configs 部分

scrape_configs:

  - job_name: net_monitor
    honor_labels: true
    honor_timestamps: true
    scrape_interval: 10s
    scrape_timeout: 5s
    metrics_path: /metrics
    scheme: http
    static_configs:
    - targets:
      - $server_rpc_ip:6002

与 grafana 集成

在 common / metrics.go 中查看指标名称并将其添加到 grafana 仪表板

退出移动版