12.7 分散システムの動作を確認するには

近年ではユーザーからは1つに見えても、内部で複数のサービスに分割して実装するマイクロサービスが増えています。ユーザーからのリクエスト1回に対して、複数のサービスが連携してレスポンスを返していることもあります。何かが期待通りに動作しない場合、それらのうちどのサービスに問題があるかを発見する必要があります。ログを見ながら1つずつ確認して発見することもできますが、時間も手間もかかります。

このようなシステムであっても、単一のシステムと同じように状態が見られるようになっていることを「オブザーバビリティがある」と表現します。監視できる状態です。分散システムはsshでサーバーに接続してログをtailするだけでは全体像を把握できません。代わりにテレメトリーと呼ばれる手法を用います。

note

「テレメトリー」は、野生動物の観測に使われている言葉を借用した用語です。

環境技術解説: テレメトリー(環境展望台)

https://tenbou.nies.go.jp/science/description/detail.php?id=87

テレメトリーを行うソフトウェアとして、OSSのOpenTelemetryがあります。Goだけではなく、Java、.Net、JavaScript、Pythonなど多くの環境に対応しています。OpenTelemetryは次の3分野から構成されています。

  • 複数のシステムにまたがった処理を見える化する「分散トレース」

  • サービスの負荷や使用しているリソース量を把握する「メトリクス」 ...