ブログ
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 用モジュールのインストール 以下では …
K8s メタデータを活用したトラブルシューティングの改善
Wednesday, June 29, 2022 in 2022
注記 Kubernetes メタデータでテレメトリーを強化する方法に関する最新情報は、ドキュメントに掲載されています。 詳しくは Getting Started with Kubernetes を参照してください。 Kubernetes リソースのメタデータを OpenTelemetry トレースに付与すると、どのリソース(Pod など)に障害やパフォーマンスの問題が発生しているかを特定するのに役立ちます。 また、他のシグナルとの相関にも有用です。 たとえば、同じ Pod によって生成されたログ …
OpenTelemetry で Apache HTTP Server を計装する方法を学ぶ
Friday, May 27, 2022 in 2022
Apache HTTP Server を使用していて、ウェブサーバーを監視するためのオブザーバビリティツールを切実に必要としているなら、OpenTelemetry Module for Apache HTTP Server がまさに最適です。 このモジュールは、サーバーへの受信リクエストのトレースを可能にし、その受信リクエストに関与する多くのモジュール(mod_proxy を含む)のレスポンスタイムをキャプチャします。 これにより、各モジュールごとの階層的な時間消費を確認できます。 この記事では …
Knative における分散トレーシング
Tuesday, April 12, 2022 in 2022
この記事では、Knative における分散トレーシングの仕組みを学び、OpenTelemetry プロジェクトがこの環境でのトレーシングサポートをどのように容易にできるかを探ります。 Knative の内部構造を探り、すぐに利用できる分散トレーシング機能と、追加の計装が必要なシステムの部分を理解します。 Knative について Knative は CustomResourceDefinitions(CRD)のセットとして Kubernetes 上に構築されたサーバーレスプラットフォームです。 …