ブログ
OpenTelemetry デモのフロントエンド刷新(Go から Next.js へ)
Wednesday, November 16, 2022 in 2022
OpenTelemetry プロジェクトには多くの Special Interest Group(SIG)がありますが、その1つが OpenTelemetry コミュニティデモ SIG です。 この SIG は、分散システムを OpenTelemetry で計装する方法を示すために使用される、計装済みのマイクロサービス群とフロントエンド Web アプリケーションを管理しています。 Web アプリケーションの主な目的は、使用するプログラミング言語、プラットフォーム、OS に関係なく、アプリケーショ …
OpenTelemetry OpAMP を使ってサービスのテレメトリーを動的に変更する
Wednesday, October 19, 2022 in 2022
サービスのテレメトリーはどの程度詳細であるべきでしょうか。 サービスはすべてのトレース、メトリクス、ログを常に100%出力すべきでしょうか。 サービストラフィックのうち、どの程度をサンプリングすべきでしょうか。 この問いに対する答えは「場合による」だと考えます。 求められるテレメトリーデータは、開発から継続的デプロイに至るサービスライフサイクルの中で変化します。 クライアントがエラーに直面したときや、サービスが大規模にスケールされたときにも変化します。 サービスのテレメトリー設定やサンプリングレ …
GCP でサンプル設定を使った Collector Builder の利用
Monday, October 17, 2022 in 2022
OpenTelemetry Collector はテレメトリーデータの処理とエクスポートに使える汎用的なツールです。 モジュラー設計のおかげで、多くの異なるソースからのインジェストと、同様に多くのオブザーバビリティバックエンドへのルーティングをサポートしています。 この設計は、個別のレシーバー、プロセッサー、エクスポーターに基づいており、サードパーティによる新しいバックエンドサポートの開発を可能にしています。 また、ユーザーがユースケースに合わせてカスタマイズしたテレメトリーパイプラインを設定す …
OpenTelemetry によるテイルサンプリング:なぜ有用か、どう実装するか、何を考慮すべきか
Monday, September 26, 2022 in 2022
テイルサンプリングは、オブザーバビリティのコストを抑えつつ、分散システムの問題を特定するのに役立ちます。 この記事では、OpenTelemetry Collector を使用したテイルサンプリングの実装方法を説明します。 また、サンプリング戦略を策定する際に考慮すべき、一般的な懸念点と OpenTelemetry 固有の懸念点についても紹介します。 サンプリングとは何か、なぜ行うべきか 分散トレーシングでは、分散システム内のあるサービスから別のサービスへ移動するリクエストを観測できます。 サービ …
OpenTelemetry のバグを OpenTelemetry で修正した方法
Thursday, September 22, 2022 in 2022
OpenTelemetry は、ソフトウェアの問題の根本原因を素早く見つけるためのものです。 最近、OpenTelemetry のある機能を使って、別の機能のバグの根本原因を特定し修正するという経験をしました。 このブログ記事では、この興味深い経験を共有します。 これにより、言語固有の実装における小さな違いが興味深い影響をもたらしうること、また Java と Python にはコンテキスト伝搬の問題をデバッグするための機能があることを学べます。 問題 バグの説明 ブログ記事 Learn how …
クラスター間通信のための Collector の公開
Thursday, September 08, 2022 in 2022
OpenTelemetry Collector を外部に公開するには、現時点ではいくつかの設定手順が必要です。 このブログ記事の目的は、異なる Kubernetes クラスター間にある 2 つの Collector 間で安全な通信を確立する方法を紹介することです。 CRD の詳細や依存関係のインストールについては、この記事では扱いません。 概要 Collector を公開するにあたって、まず思い浮かぶのは TLS によるユーザーデータの安全な伝送です。 しかし、認可されていないサービスからのデー …
OpenTelemetry で Apache Kafka クライアントを計装する
Tuesday, September 06, 2022 in 2022
今日、Apache Kafka は分散環境における神経系として選ばれています。 さまざまなサービスが Apache Kafka をメッセージングシステムとして、さらにはイベントストリーミングやデータストリーミングプラットフォームとして利用し、互いに通信しています。 クラウドネイティブなアプローチでマイクロサービスを開発する場合、ワークロードの実行には Kubernetes もよく使われます。 このシナリオでは、Strimzi のようなプロジェクトを使用することで、Kubernetes 上に …
指数ヒストグラム: 設定不要でより優れたデータを
Wednesday, August 24, 2022 in 2022
ヒストグラムはオブザーバビリティツールベルトの中でも強力なツールです。 OpenTelemetry は、計測の分布を効率的に取得・送信し、パーセンタイルのような統計的計算を可能にするヒストグラムの能力を重視し、サポートしています。 実際には、ヒストグラムにはいくつかの種類があり、それぞれバケットとバケットカウントの表現方法に独自の戦略を持っています。 OpenTelemetry の最初の安定版メトリクスリリースには明示的バケットヒストグラムが含まれており、現在は新しい指数バケットヒストグラムオ …
Go ウェブアプリの計装
Tuesday, August 23, 2022 in 2022
このブログ記事では、事前知識なしで OpenTelemetry Go を使ってトレースを作成し可視化する方法をハンズオン形式で学びます。 まず、Mongo と Gin フレームワークを使用したシンプルな To-Do アプリを作成します。 そして、トレーシングデータを Jaeger Tracing に送信して可視化します。 関連するすべてのファイルは、この GitHub リポジトリ にあります。 Hello world: OpenTelemetry Go の例 まず、To-Do サービスを作成し …
OpenTelemetry で NGINX を計装する方法を学ぶ
Monday, August 22, 2022 in 2022
Apache HTTP Server と NGINX は最も人気のあるウェブサーバーです。 あなたのアプリケーションでもどちらか一方を使用している可能性が高いでしょう。 以前のブログ記事では、Apache HTTP Server 用の OpenTelemetry モジュールを使用して、Apache HTTP Server にオブザーバビリティを追加する方法を学びました。 このブログ記事では、NGINX のオブザーバビリティを得る方法を学びます! NGINX 用モジュールのインストール 以下では …