BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Googleが分散アプリケーションをトレースするため、ZipkinのStackdriver Traceとのインテグレーションをリリース

Googleが分散アプリケーションをトレースするため、ZipkinのStackdriver Traceとのインテグレーションをリリース

ブックマーク

原文(投稿日:2017/01/15)へのリンク

Google Cloud PlatformはオープンソースのZipkinサーバをリリースした。Zipkin互換クライアントによって、Google独自のStackdriver Trace分散型トレースサービスにトレース情報を送信して分析することができる。このZipkin / Stackdriver Traceの統合は、Stackdriver Traceが公式にサポートしていない言語やフレームワークで書かれたアプリケーションやサービスの開発者を対象としている。また、現在Zipkinが組み込まれたアプリケーションの所有者で、Stackdriver Traceの高度な分析ツールを使いたい人を対象としている。

Google Stackdriverとは、クラウドプラットフォーム上のアプリケーションの監視、ログ、および診断サービスのことである。どのようなクラウドプラットフォームから取得したデータでもStackdriver APIに送信することができるが、Stackdriverの機能はGoogle Cloud Platform(GCP)内の多くのサービスと高度に統合されている(そして、GCPを利用する顧客は無料で利用できる)。Google Stackdriverはいくつかのツールで構成されており、分散トレースサービスのStackdriver Traceを含んでいる。Stackdriver Traceは、オリジナルがGoogle Dapper分散トレースシステムであり、そこから派生である。

Stackdriver Traceを使用すると、計測機能が組み込まれた分散(マイクロサービス)システムを通して要求のフローを追跡し、アプリケーションの遅延を分析し、パフォーマンスのボトルネックを特定することができる。Stackdriver Traceは、初めはGoogle App Engineプロジェクトに重点を置いていた。しかし、現在、Node.jsJavaGo用の計測ライブラリや、APIを通して仮想マシンやコンテナ上で動作するアプリケーションをサポートしている (Rubyと.NETはまもなくサポート予定)。

もう1つの普及している分散型トレースシステムは、最初にTwitterによって作成されたZipkinで、Dapperの論文からインスピレーションを得ている。この成果は2012年にオープンソース化され、以降、コミュニティ主導のOpen Zipkinプロジェクトに進展した。これにより、CNCF支援のプロジェクトであるOpen Tracing APIが形成されているに至った。Zipkinは、アプリケーションからのトレースをキャプチャするためのさまざまな計測ライブラリを提供している。また、Webインタフェースを通してトレースを保存および提示するバックエンドシステムも提供している。現在、Java、.Net、Node.js、Python、Ruby、Goで利用可能なZipkinクライアントがあり、さまざまな一般的なWebフレームワークとのインテグレーションに組み込まれている。GCPのブログによると、Zipkinは広く使われており、Twitter、Yelp、Salesforceはこのプロジェクトの主な貢献者である。

Google Cloud Platformブログでは、新しいStackdriver Trace Zipkin Connectorが既存のZipkinバックエンドの代替品であり、引き続き同じZipkin互換トレーサを使用していることが述べられている。そのため、Zipkinバックエンドを設定、管理、またはメンテナンスする必要がなくなった。代わりに、新しいコレクタをZipkinトレーサを備えた各サービスと並行して実行することができる。

Stackdriver Trace and Zipkin Integration

この現在のStackdriver-Zipkin v0.2.0のリリースにはいくつかの既知の制限がある。

  1. Zipkinトレーサは、正しいZipkinのtimeとdurationのセマンティクスをサポートしなければならない。
  2. ZipkinトレーサとStackdriver Trace計測ライブラリは、同一のトレースに対して、スパンを追加することはできない。それらが異なるフォーマットを使って、サービス間のトレースコンテキストを伝播するためである。これは、1つのライブラリでキャプチャされたトレースには、他のタイプのライブラリに組み込まれているサービスのスパンが含まれないことを意味する。つまり、Stackdriver TraceとZipkinの両方を備えたサービスコードを通過するトレースは、標準のStackdriverレポートの外部に統合する必要がある。
  3. 最初のリリースでは、Zipkinサーバへの書き込み操作のみがサポートされている。しかし、Google Cloud Platformのブログで、読み取り機能がないことが障害となる場合、開発者はGitHub経由でissueやプルリクエストを作成できることが述べられている

Google Stackdriver Trace Zipkin Collectorコードは、GoogleCloudPlatform GitHubリポジトリからダウンロードできる。設定、および、分散トレーサからトレースデータを収集する手順については「Using Stackdriver Trace with Zipkin」ガイドを参照のこと。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT