ホームページ  >  記事  >  ウェブフロントエンド  >  Opentelemetryの基本概念

Opentelemetryの基本概念

WBOY
WBOYオリジナル
2024-08-19 17:14:33753ブラウズ

Opentelemetry

Distributed System、Micro Serviceが乱舞する世界でシステムの動作を確認したり、エラーを追跡することはとても大変でした。このような環境では、複数のサービスが共通の形式のdataを送信し、それを連結してシステムを分析する必要が多くなりました。

Opentelemetry(以下otel)は、最新のソフトウェアトレンドでObservabilityを増やすために作成されたフレームワークです。 APIやコンベンション、ツールキットなどを提供します。

しかし、ただのサービス一つでもログを見るのはちょっと楽なようで、設定もあまり難しくなくて(奇妙なことをしなければ…)導入してみるのも悪くない。

Observability

otelを理解するには、Observabilityを知る必要があります。

明確に定義するのは曖昧ですが、「なぜこのようなことが起こったのですか?」に対する答えを出す能力と定義することができるようです。
そうするためには、プログラムが「well instrumented」されている必要があります。

Instrumentation

Opentelementryを実装してみるとたくさん出会う表現です。韓国語では「計測」という意味なのに、あれこれよく測定して記録しておくと思えばいいようです。

計測するものには、例えば複数のSignal(Telemetry Dataとも呼ばれる)があるが、Logs、Traces、Metricsがこのシグナルに属します。 (これらのシグナルは次にまた登場するでしょう)

Opentelemetry(続いて)

OtelはVendor- and tool-agnostic で、広範囲に使用できます。 Observability backends として何をする必要が強制されません。 Otel規格を満足するオープンソースを使えばよいのです。

Otelを使うために、少し(?)の概念やAPIなどを学ぶだけです。

Opentelemetryについて知る必要がある少しの概念

Otelを構成する要素を覚えておく必要があります。

Distributed tracing

  • Log、Span、Trace

  • Context propagation

  • Signals

  • Collector

  • Distributed Tracing

  • Distributed Systemでリクエスト要求時に起こったことを追跡することです。 Otelが大切に扱うことです。分散システムとは、1つの要求がAサービス、Bサービス、Cサービスを介して完了するシステムのことです。

Log, Span, Trace

Log

Logは、私たちがコーディングしながら常に撮るそのログのようなものです。 Timestampがあり、その時刻に書かれます。システムの行動を解釈するのに多くの助けを与えます。

しかし、ログ自体でコードを把握するのは難しいです。より文脈的な情報を含める必要があります。ログはSpanまたはTraceに関連付ける必要があります。

スパン

Spanはアクションの単位です。特定の動作の名前、時間に関連するデータ、spanに含まれるlogs span attributeと呼ばれる特性があります。

たとえば、http.request.method、url.pathなどの属性があります。

Trace

どのRequestの開始から完了までをTraceといいます。このトレースには、1つのシステムではなく複数のシステムのSpanを含めることができます。

最初のSpanをRoot Spanといいます。

通常Waterfall diagramとして記述します。

Context propagation

コンテキスト情報を伝播し続け、関連するSignal同士およびTrace同士が接続できるようにします。

Opentelemetry의 기본 개념Propagationは、このコンテキスト情報Objectをシリアル化、逆シリアル化しながら、サービスとプロセスの間を通過します。通常はW3C TraceContext Propagatorを使用してください。

Signals

シグナルはOtelの収集要素です。合計4つで、Log、Metric、Trace、Baggageがあります。

Log

上記のログです。特定の時間に取られたメッセージが含まれています。

Metric

サービスで測定すべき数値を測定するためのデータです。例えば、何が何回呼ばれたのか、キューがいつまで満たされたのかなどの数値を測定するために記録しなければならないことです。

Trace

上記のTraceと同じです。

Baggage

Key value storeでコンタクトのようにPropagationされる情報です。主にユーザーIDなどの追加情報を保存します。

Collector

Opentelemetry의 기본 개념

Opentelemetry Collectorと呼ばれます。 Collectorはアプリケーションからテレメトリデータを受け取り、処理し、テレメトリリポジトリにエクスポートする役割を果たします。

コレクタなしで直接アプリケーションからリポジトリにテレメトリデータを撃っても構いませんが、コレクタを1つ置いておき、テレメトリデータの処理はコレクタに任せておき、アプリケーションは私のやることをお勧めします。

configurationも多様にでき、collectorでspan tail filteringなどができるなどcollectorを書けば利点が多いです。

以上がOpentelemetryの基本概念の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。