RIPE Atlasを調べていたら、Globalpingというサービスを見つけたので、利用してみました。
Globalpingとは
- Globalpingはネットワークテストを世界中のプローブから実施できるサービス
- ping、traceroute、DNSルックアップ、MTR、HTTPリクエストが可能
- プローブは企業や個人によってホスティングされている
- Web UI、CLI、REST APIを通じて利用可能
- 立ち上げは2023年5月、jsDelivrがオープンソースプロジェクトとして立ち上げ
- jsDelivrは、JavaScriptなどのOSSを配信するCDNネットワークです
つまり、世界中からpingやHTTPリクエスを実行できるサービスですね。今の所、RIPE AltasのようにWebから履歴を閲覧したりする機能はないようです。この辺りはPrometheusやZabbixなどに組み込むことにより、計測し、時系列で分析することは可能ですね。
実行方法
一番簡単に試すとしたら、Web UIからの実行でしょう。試してみて下さい。
CLIの場合は、以下の引数となります。
➜ globalping ping 8.8.8.8
> Falkenstein, DE, EU, Hetzner Online GmbH (AS24940)
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=5.17 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=4.96 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=116 time=4.91 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 4.910/5.011/5.166/0.111 ms
ロケーションを指定したり、回数を指定したりできます。ソースコードを確認してみましたが、pingはpingコマンドをそのまま利用している様でした。
➜ globalping ping 8.8.8.8 from Japan --limit 3
> Chiba, JP, AS, Oracle Corporation (AS31898)
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=120 time=1.03 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=120 time=1.10 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=120 time=1.04 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 1.028/1.052/1.095/0.030 ms
> Tokyo, JP, AS, xTom Japan Corporation (AS3258), u-gbzret4d
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=60 time=1.26 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=60 time=1.24 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=60 time=1.32 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 1.239/1.271/1.320/0.035 ms
> Osaka, JP, AS, Oracle Corporation (AS31898)
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=120 time=0.826 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=120 time=0.814 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=120 time=0.827 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1008ms
rtt min/avg/max/mdev = 0.814/0.822/0.827/0.005 ms
CLIのドキュメントが充実しており、一通りの操作はこちらで確認できるでしょう。
レートリミット
利用にあたっては、レートリミットが課されています。
- 無登録
- 1時間あたり250テスト
- 登録済み
- 1時間あたり500テスト
先ほど実行した、globalping ping 8.8.8.8 from Japan --limit 3だと3テストを消費します。
また、クレジットという概念があり、クレジットがあるとテスト回数の上限を超えた場合でも、クレジット残高 に応じてテスト回数を超えてテストが実行可能になります。
クレジットを増やすには、
- スポンサーになる
- 1ドルごとに2000クレジット
- Githubスポンサーで寄付するたびにクレジットが付与されます
- プローブをホストする
- 1プローブが1日稼働ごとに150クレジット/日
となっています。私の場合は今、2プローブほどホストしているので毎日300クレジットもらえてます。よって、 1日で最大実行可能なテストは500*24+300=12,300テストとなります。また、クレジットに有効期限はなく、利用しなければ 残高として蓄積されていく様です。
レートリミットの状態は、CLIで確認可能です。
# 登録済みユーザーの状態
➜ globalping limits
Authentication: token (xxx)
Creating measurements:
- 500 tests per hour
- 0 consumed, 500 remaining
Credits:
- 0 credits remaining (may be used to create measurements above the hourly limits)
# 6クレジット消費さている状態
➜ globalping limits
Authentication: token (xxx)
Creating measurements:
- 500 tests per hour
- 4 consumed, 496 remaining
- resets in 28 minutes
Credits:
- 294 credits remaining (may be used to create measurements above the hourly limits)
2つ登録してみたところ、1日後に300クレジット付与されていました。

Probeのホスティング
ProbeはDockerで実行します。
docker run -d --log-driver local --network host --restart=always --name globalping-probe globalping/globalping-probe
上記は未登録状態のため、クレジットがもらえません。クレジットが欲しい場合は、サインアップの上、ダッシュボードから登録コマンドを 確認すると、TOKENを含めたコマンドが確認できるのでそちらを利用します。
また、月10ドル以上の寄付でハードウェアプローブも入手可能です。
最後に
現時点で日本にはeyeball Network(エンドユーザを抱えるISP)は6個の様です。
RIPE Atlas以外にも世界中のネットワークからpingなどの測定が可能なOSSプロジェクトが増えました。今後もProbeが増えていくといいですね。