背景OpenTelemetry プローブOpenTelemetry (略して Otel、最新バージョンは 1.27) は、テレメトリ データ (メトリック、ログ、トレース情報など) を収集、処理、エクスポートするための一連のツール、API、SDK を提供する、可観測性のオープン ソース プロジェクトです。アプリケーション テレメトリ データ (トレース、メトリック、ログなど) の収集はプローブを通じて行われます。プローブは通常、ライブラリの形式でアプリケーションに統合され、監視とデバッグを支援するために重要な情報を自動的にキャプチャします。 OpenTelemetry プローブは、市場のほとんどのプログラミング言語をサポートしています。プローブ(通常は計装と呼ばれます)の設置は、手動と自動の方法に分けられます。
どちらにも長所と短所があります。手動計測は、テレメトリ データ収集に対する高度なカスタマイズと正確な制御が必要なシナリオに適しています。自動インストルメンテーションは、特に標準フレームワークとライブラリを使用するアプリケーションで、迅速な起動と簡素化された統合に適しています。 OpenTelemetry Operator の紹介OpenTelemetry Operator[2]は、Kubernetes環境でのOpenTelemetryコンポーネントの導入と管理を簡素化するために設計されたKubernetes Operatorです。 OpenTelemetry Operatorは、CRD(OpenTelemetryCollector[3]、Instrumentation[4]、OpAMPBridge[5])を通じてKubernetesクラスターにOpenTelemetry Collectorを自動的にデプロイし、管理します。ワークロードに OpenTelemetry プローブを自動的にインストールします。 今日は、OpenTelemetry Operator を使用してプローブを自動的にインストールし、リンク トラッキングを実装する方法を体験します。 デモ建築これはデモ用のアーキテクチャです。 Otelは複数の言語で計測SDKを提供しています[6]。この記事では、Java と Go のアプリケーションを使用します。これら 2 つの言語では、完全自動および半自動の注入インストールが使用されます。
写真 イェーガーデモンストレーションのため、jaegertracing/all-in-one イメージを使用して Jaeger をデプロイします。このイメージには、Jaeger コレクター、メモリ ストレージ、クエリ サービス、UI などのコンポーネントが含まれており、開発とテストに非常に適しています。 OTLP(OpenTelemetry Protocol)[9]のサポートは環境変数COLLECTOR_OTLP_ENABLEDによって有効になり、OTELは8にあります。 cert-managerをインストールするOtel Operator は証明書管理に cert-manager に依存しています。オペレーターをインストールする前に、cert-manager をインストールする必要があります。 OpenTelemetry OperatorのインストールOtel Operatorをインストールするには、次のコマンドを実行します。 OpenTelemetry Collector を構成するCR OpenTelemetryCollector を作成して、Otel のコレクターを構成します。ここで設定するのは次の通りです:
CR OpenTelemetryCollector を作成した後、Otel Operator はデプロイメントと複数のサービスを作成します。 コレクターのデプロイメントには、デプロイメント、デーモンセット、ステートフルセット、サイドカーの4つのデプロイメントモデル[10]があります。デフォルトはデプロイメントです。 計測の設定Instrumentation は、Otel プローブのインストールと構成を自動化する Otel Operator の別の CRD です。
詳細な設定手順については、Instrumentation APIドキュメント[11]を参照してください。 Java サンプル アプリケーション正しいプローブを挿入できるように、Otel Operator にアプリケーション タイプを通知するには、Pod に instruments.opentelemetry.io/inject-java: "true" という注釈を付けます。 Otel Operator が otel 初期化コンテナを Pod に挿入していることがわかります。 写真 そして、一連の環境変数が構成のために Java コンテナに挿入されます。 写真 Go サンプル アプリケーション前述のGo言語の自動インジェクションのデモは半自動方式を採用しており、本記事のタイトルと矛盾しており埋め込みます。私はOtelプローブを手動でインストールするシンプルなGoアプリケーション[12]を作成しました。ご興味がございましたら、ソースコードをご覧頂けます。 Pod を表示すると、環境変数を通じて注入された Otel 構成も確認できます。 テスト
Jaeger UI を開きます。 ビンゴ! アクセス リンク情報を確認するには、Jaeger UI にアクセスしてください。 写真 参考文献[1] Javaはjavaagentを通じてプローブの自動インストールを実装しています: https://opentelemetry.io/docs/instrumentation/java/automatic/ [2] OpenTelemetryオペレーター: https://opentelemetry.io/docs/kubernetes/operator/ [3] OpenTelemetryCollector: https://github.com/open-telemetry/opentelemetry-operator/blob/main/docs/api.md#opentelemetrycollector [4] インストルメンテーション: https://github.com/open-telemetry/opentelemetry-operator/blob/main/docs/api.md#instrumentation [5] OpAMPBridge: https://github.com/open-telemetry/opentelemetry-operator/blob/main/docs/api.md#opampbridge [6] 複数言語でのインストルメンテーションSDK: https://opentelemetry.io/docs/instrumentation/ [7] GoインストルメンテーションSDKを手動でインポートする: https://github.com/addozhang/http-sample/blob/main/otel.go [8] 自動注入設定: https://github.com/open-telemetry/opentelemetry-operator/blob/main/README.md#opentelemetry-auto-instrumentation-injection [9] OTLP(オープンテレメトリープロトコル): https://opentelemetry.io/docs/specs/otlp/ [10] コレクターデプロイメントの4つのデプロイメントモード: https://github.com/open-telemetry/opentelemetry-operator#deployment-modes [11] インストルメンテーションAPIドキュメント: https://github.com/open-telemetry/opentelemetry-operator/blob/main/docs/api.md#instrumentation [12] シンプルなGoアプリケーション: https://github.com/addozhang/http-sample |
<<: クラウド移行に関する注意事項 |企業のスムーズなクラウド移行を実現するためのコンピューティングパワーインフラストラクチャを理解するための図
>>: オペレーション兄弟!なぜ Kafka は再び「タイムアウト」したのでしょうか?
2008年1月はまだ終わっていませんが、Baiduは更新活動を増やし、その深さを強化しています。これ...
この記事をご覧になっている皆さんは、QQを使ったことがあり、友達とチャットするときに多かれ少なかれ絵...
Typecho は、非常に優れた軽量ブログ システムです。WordPress の時代である今日、村長...
ほとんどのウェブマスターにとって、自分のウェブサイトが K-ed されるのは非常に辛いことです。それ...
近年、クラウド コンピューティングはエンタープライズ アプリケーションの新しい標準となっています。ク...
[51CTO.com からのオリジナル記事] IDC の最新のクラウド サービス ガイドでは、Paa...
budgetvmはどうですか? budgetvm の速度はどのくらいですか? budgetvm は良...
クラウド コンピューティングは 10 年以上前から存在し、テクノロジーのさまざまな側面を担ってきまし...
マイクロサービスと分散の関係と違いは何ですか?分散とは、さまざまなマシンをさまざまな場所に分散させ、...
3月18日、マイクロソフトのWindowsハードウェアエンジニアリング業界イノベーションサミット(W...
ウェブサイト プランナーが最初に行う必要があるのは、ウェブサイトを正確に位置付け、ターゲット顧客グル...
筆者は、オンラインになった日に含まれていたウェブサイトを持っており、その後頻繁にKステーションされて...
役に立つ情報が見つからなかったので、今日は inmotionhosting のサーバーを紹介したいと...
ウェブサイトの起源私は会社員で、現在30歳です。2012年以前は、いつもオンラインゲームをするのが好...
ここ1、2年、コンテナに代表されるクラウドネイティブ技術がIT業界で最もホットな話題となっています。...