2.6. Jaeger 監視用の Fuse Online の設定
Jaeger は、分散サービス間のトランザクションをトレースするためのオープンソースソフトウェアです。これは、複雑なマイクロサービス環境の監視およびトラブルシューティングで特に役立ちます。
OperatorHub またはコマンドラインスクリプトを使用して Fuse Online をインストールする場合、Fuse Online インストールは OperatorHub の存在を検出し、OperatorHub のサブスクリプション機能を使用して Jaeger をインストールします。OperatorHub が利用できないという制限された状況では、Fuse Online は独自のインストール機能を使用して Jaeger をインストールします。
デフォルトの Fuse Online 環境では、必要な Jaeger コンポーネントがすべて設定されます。任意で、Fuse Online カスタムリソースを編集して、クライアントのみ/非依存のサーバー設定、またはハイブリッド Jaeger クライアントおよび Jaeger Operator 設定を指定できます。
デフォルトの Jaeger 設定
基本的な追加設定なしの設定には、すべての Jaeger コンポーネントが含まれます。Jaeger の監視機能を試して、Jaeger の動作について学ぶことができます。デフォルト設定では、メモリーのみの制限されたバックエンドストレージ機能を提供します。
デフォルトの Jaeger 設定で Fuse Online をインストールすると、以下のような結果になります。
- Fuse Online コンポーネントには Jaeger 通信 URL があります。
- Jaeger Operator がインストールされます。
- Jaeger カスタムリソースは、アクティビティー監視のデフォルト設定で設定されます。
デフォルトの Jaeger 設定を使用した Fuse Online インストールには、以下の syndesis カスタムリソース仕様があります。
apiVersion: syndesis.io/v1beta2
kind: Syndesis
metadata:
name: app
spec:
addons:
jaeger:
enabled: true
clientOnly および operatorOnly が指定されていない場合 (デフォルトで false に設定されている場合)、Fuse Online は提供される Jaeger バックエンドだけでなく、Jaeger サーバー設定によって提供されるデフォルトのメモリーのみのストレージも使用します。
クライアントのみ/非依存のサーバー設定
クライアントのみ/非依存のサーバー設定では、Fuse Online と外部に設定された Jaeger バックエンドとの間の通信用にクライアント URL コネクションのみが設定されます。Jaeger バックエンドのすべての要素は外部にあり、Fuse Online 環境および syndesis-operator には依存しません。これには、Jaeger Operator および Jaeger カスタムリソースが含まれます。
クライアントのみの Jaeger 設定をインストールするには、以下のように Fuse Online をインストールする前にカスタムリソースを編集します。
-
clientOnlyをtrueに設定して、Jaeger エージェント機能 を追加します。 -
queryUriを、個別にインストールされた Jaeger バックエンドの query コンポーネント の URI に設定します。 -
collectorUriを、個別にインストールされた Jaeger バックエンドの collector コンポーネント の URI に設定します。
以下に例を示します。
apiVersion: syndesis.io/v1beta2
kind: Syndesis
metadata:
name: app
spec:
addons:
jaeger:
enabled: true
clientOnly: true
queryUri: http://jaeger-query-hostname:443/api
collectorUri: http://jaeger-collector-hostname:14268/api/traces
ハイブリッド Jaeger クライアントおよび Operator の設定
ハイブリッド Jaeger クライアントおよび Jaeger Operator 設定では、Fuse Online は Jaeger Operator と Jaeger クライアント機能をインストールします。Jaeger カスタムリソースがインストールされていない。Jaeger サーバー設定を定義する独自の Jaeger カスタムリソースをインストールする必要があります。これにより、Fuse Online が提供する機能を利用し、独自の環境用に Jaeger 設定をカスタマイズすることができます。たとえば、データストレージに Elasticsearch または Cassandra を使用できます。
ハイブリッド Jaeger クライアントと Jaeger Operator 設定をインストールするには、以下を行います。
Fuse Online をインストールする前に、以下の例のようにカスタムリソースを編集します。
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true operatorOnly: true以下の例のように、Jaeger カスタムリソース
syndesis-jaegerに名前を付けます。apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: syndesis-jaeger ... spec: ....注記: Jaeger カスタムリソースに別の名前を使用する場合は、Client-only/independent サーバー設定セクションに記述されているように、Syndesis カスタムリソースで
queryUriおよびcollectorUriを設定します。
syndesis-jaeger という名前の Jaeger カスタムリソースが作成されると、Jaeger インスタンスは Fuse Online インテグレーションからデータを収集します。デフォルトでは、このデータは Fuse Online のアクティビティーログに記録されません。Fuse Online アクティビティーログにこのデータを表示するには、次のサービスを作成します。
oc create -f - <<EOF
apiVersion: v1
kind: Service
metadata:
labels:
app: syndesis
syndesis.io/app: syndesis
syndesis.io/type: infrastructure
syndesis.io/component: jaeger
name: noauth-syndesis-jaeger-query
spec:
ports:
- name: query
port: 443
protocol: TCP
targetPort: 16686
selector:
app: jaeger
app.kubernetes.io/name: syndesis-jaeger
EOF