コンテンツにスキップ

ディメンション

このサイトのコンテキストでは、オブザーバビリティ空間を 6 つのディメンションに沿って考えます。 各ディメンションを独立して見ることは、合成的な視点から有益です。つまり、プログラミング言語などの開発者関連の側面や、コンテナや Lambda 関数などのランタイム環境などの運用上のトピックを含む、特定のワークロードに対して具体的なオブザーバビリティソリューションを構築しようとしている場合です。

o11y space

シグナルとは何ですか?

ここで言うシグナルとは、ログエントリ、メトリクス、トレースを含むあらゆる種類のオブザーバビリティデータとメタデータポイントのことです。 より具体的である必要がある場合を除き、「シグナル」という用語を使用し、コンテキストからどのような制限が適用される可能性があるかが明らかである必要があります。

次に、6 つのディメンションを 1 つずつ見ていきましょう。

デスティネーション

このディメンションでは、長期ストレージやシグナルを消費できるグラフィカルインターフェイスなど、あらゆる種類のシグナルデスティネーションを考慮します。開発者としては、サービスのトラブルシューティングのためにシグナルを発見、検索、相関付けできる UI や API にアクセスしたいと考えています。インフラストラクチャまたはプラットフォームの役割では、インフラストラクチャの状態を理解するためにシグナルを管理、発見、検索、相関付けできる UI や API にアクセスしたいと考えています。

Grafana スクリーンショット

最終的に、これは人間の視点から見て最も興味深いディメンションです。 しかし、メリットを享受できるようになるためには、まず少し作業を投資する必要があります。ソフトウェアと外部依存関係を計装化し、シグナルをデスティネーションにインジェストする必要があります。

では、シグナルはどのようにしてデスティネーションに到達するのでしょうか。ご質問いただきありがとうございます。それは...

エージェント

シグナルがどのように収集され、分析にルーティングされるか。シグナルは2つのソースから来る可能性があります。1つはアプリケーションのソースコード(言語のセクションも参照)、もう1つはデータストアに管理されている状態やVPCなどのインフラストラクチャなど、アプリケーションが依存するものです(インフラとデータのセクションも参照)。

エージェントは、テレメトリの一部で、シグナルを収集および取り込むために使用します。もう一方の部分は、データベースなどの計装されたアプリケーションおよびインフラです。

言語

このディメンションは、サービスやアプリケーションの記述に使用するプログラミング言語に関係しています。ここでは、X-Ray SDK や OpenTelemetry が instrumentation のコンテキストで提供するものなどの SDK やライブラリを扱っています。ログやメトリクスなどの特定のシグナルタイプについて、o11y ソリューションが選択したプログラミング言語をサポートしていることを確認する必要があります。

インフラストラクチャとデータベース

このディメンションでは、サービスが実行されている VPC などのインフラストラクチャや RDS、DynamoDB、SQS などのデータストアといった、アプリケーションの外部の依存関係のすべてを意味します。

共通点

このディメンションのすべてのソースが共通しているのは、アプリケーション(およびアプリケーションが実行されるコンピュート環境)の外部に位置しており、不透明なボックスとして扱わなければならないことです。

このディメンションには以下が含まれますが、これらに限定されません。

コンピュートユニット

コードをパッケージ化、スケジュール設定、実行する方法です。例えば、Lambda では関数がそれに該当し、ECSEKS では、それぞれタスク(ECS)内またはポッド(EKS)内で実行されるコンテナがユニットとなります。Kubernetes のようなコンテナ化された環境では、テレメトリのデプロイについて次の2つのオプションがよく利用できます。サイドカーとして、またはノード(インスタンス)ごとのデーモンプロセスとしてです。

コンピュートエンジン

このディメンションは、ベースとなるランタイム環境を指します。これは、EC2 インスタンスなどの場合はプロビジョニングおよびパッチ適用の責任がある一方で、Fargate や Lambda などのサーバーレスオファリングの場合はそうでない場合があります。使用するコンピュートエンジンに応じて、テレメトリの部分はすでにオファリングの一部となっている場合があります。たとえば、Fargate 上の EKS には Fluent Bit を介したログルーティングが統合されています。