OpenTelemetry の活用による Cloud Spanner オブザーバビリティの民主化
Google Cloud Japan Team
※この投稿は米国時間 2022 年 3 月 9 日に、Google Cloud blog に投稿されたものの抄訳です。
このたび、Cloud Spanner 用の OpenTelemetery レシーバをリリースいたしましたのでお知らせいたします。このレシーバは、Cloud Spanner のシステム テーブルから指標を簡単に処理し、可視化し、お好みの APM ツールにエクスポートする方法を提供します。また、Prometheus とのリファレンスのインテグレーションや Grafana ダッシュボードのサンプルを構築し、お客様がトラブルシューティングを必要とする場合にテンプレートとして利用できるようにしました。このレシーバはバージョン v0.41.0 から利用可能です。
データベースの管理者であれ、開発者であれ、データベースのパフォーマンスを理解し、何か問題が発生した場合(レイテンシの増加、エラー発生率の増加、スループットの低下など)に検出し、これらのシグナルの根本原因を特定するために役立つツールは大切です。Cloud Spanner は、データベースのパフォーマンスを簡単にモニタリングし、潜在的な問題を診断、修正できるオブザーバビリティ ツールの幅広いポートフォリオを提供します。
しかし、Cloud Spanner の指標を独自のオブザーバビリティ ツールで柔軟に利用したいと考えるお客様もいます。その場合は、Prometheus のような時系列データベースと Grafana ダッシュボードを組み合わせたオープンソースか、Splunk、Datadog、Dynatrace、NewRelic、AppDynamics などの商用アプリケーション モニタリング(APM)ツールのどちらかを利用する可能性があります。なぜなら、組織はすでに独自のオブザーバビリティ ツールに投資していて、別のベンダーや可視化コンソールに切り替えるには多大な労力が必要とされるため、乗り換えを希望していません。そこで、OpenTelemetry の出番です。
OpenTelemetry は、テレメトリ データ(トレース、指標、ログ)の計測、生成、収集、エクスポートのための、ベンダーに依存しないオブザーバビリティ フレームワークです。さまざまな言語にわたる多くのライブラリやフレームワークと統合され、大規模な自動計測機能を提供します。
OpenTelemetry レシーバ
OpenTelemetery レシーバはレシーバとエクスポータの関係で構築された OpenTelemetery コレクタのコンポーネントです。Cloud Spanner 用の新しいレシーバをインストールして対応するエクスポータを構成することにより、開発者は選択した APM ツールに指標をエクスポートできるようになりました。このアーキテクチャは、テレメトリ データの受信、処理、エクスポートの方法について、ベンダーにとらわれない実装を提供します。これにより、トレースや指標を独自のフォーマットで 1 つまたは複数のトレースや指標のバックエンドに送信する複数のエージェント / コレクタを実行、操作、維持する必要がなくなります。
Cloud Spanner にはシステム テーブル(クエリ、読み込み、トランザクションなど Spanner での操作について有益なインサイトを得るために問い合わせることができる組み込みのテーブル)の形で、多くのイントロスペクション ツールがあります。Cloud Spanner 向けの OpenTelemetry レシーバの導入により、開発者はこれらの指標を利用し、APM ツールで可視化できるようになりました。
リファレンス実装
リファレンス実装として、Prometheus(OpenTelemetery コレクタでエクスポート)と Cloud Monitoring の両方から指標を利用し、エンドツーエンドのデバッグ体験を可能にする一連のサンプル ダッシュボードを Grafana 上に作成しました。
注: お客様は、Prometheus のセルフ マネージド インスタンスをデプロイする代わりに、Google の Prometheus 向けのマネージド サービスを利用することもできるようになりました。本サービスを利用することで、Prometheus を大規模に手動で管理、運用することなく、Prometheus を使用してワークロードをモニタリングしたりアラートを送信したりできるようになります。このサービスの利用方法の詳細については、こちらをご覧ください。


前提事項
Prometheus をインストールおよび構成済みである。
OpenTelemetry バージョン v0.41.0(またはそれ以降)
ここでは、これらのコンポーネントの具体的な構成について説明します。
OpenTelemetry コレクタ
以下は、レシーバを有効にし、Prometheus が指標をスクレイピングするためのエンドポイントを設定するサンプル構成ファイルです。
[config.yml]
Prometheus
Prometheus では、以下のようにスクレイピングの構成を追加する必要があります。
[prometheus.yml]
Grafana
最後に、Grafana の構成とデータソース、ダッシュボードの追加を行います。リファレンス ダッシュボードでは、Cloud Monitoring と Prometheus の 2 つのデータソースを使用しています。このサンプル構成ファイルは、上記のダッシュボードで使用できます。
[datasource.yml]
サンプル ダッシュボード
Cloud Monitoring 指標を利用したモニタリング ダッシュボードです。




Google は、健全なオブザーバビリティ エコシステムによってお客様に最適なサービスが提供できると信じており、これは Google のオープンソース イニシアティブへの継続的な取り組みに反映されています。この実装について、OpenTelemetry コミュニティから以下のようなフィードバックをいただきました。
「OpenTelemetry は、2 つのオープンソース コミュニティ間の提案から、指標やその他のオブザーバビリティ シグナルの収集のための道しるべに成長しました。Google は、OpenTelemetry の標準を常にサポートすることで、コミュニティへのコミットメントを強化しています。この実装と対応するダッシュボードを使用することで、開発者はこれらの指標を好きなツールで利用できるようになり、Cloud Spanner で一般的な問題を非常に簡単にデバッグできるようになります。」 - Bogdan Drutu 氏、OpenTelemetry 共同創設者
今後の予定
Google Cloud は引き続きデベロッパーに柔軟なエクスペリエンスを提供し、オープン スタンダードを受け入れ、パートナー エコシステムをサポートし、オープンソース エコシステムへの重要な寄与者であり続けます。また、お客様がどこにいても最高の体験を得られるよう、コンソールで最高水準のクラウド ネイティブのオブザーバビリティ ツールを提供し続けていきます。
Google Cloud の Cloud Spanner のイントロスペクション機能については、こちらのブログ投稿をご覧ください。また Cloud Spanner 全般の詳細については、Google Cloud のウェブサイトをご覧ください。
- プロダクト マネージャー、Mohit Gulati- ソフトウェア エンジニア、Mayank Khanwalker