分散トレース
サービスグラフでは、分散トレーシングビューを使用して、次のことができます。
-
サービス全体のパフォーマンスを分析します。
-
選択したサービスとその相互依存サービス間の通信フローを視覚化します。
-
エラーを示すサービスを特定し、エラーのあるサービスをトラブルシューティングする
-
選択したサービスとその相互依存サービス間のトランザクションの詳細を表示します。
前提条件
サービスのトレース情報を表示するには、次の操作を行う必要があります。
-
east-west トラフィックを送信しながら、アプリケーションが次のトレースヘッダーを維持していることを確認します。
-
1.7.23 より前のCICビルドの場合、CPX
NS_DISTRIBUTED_TRACING
YAMLファイルをおよび値として更新しますyes
-
1.7.23 以降の CIC ビルドでは、ConfigMap を使用する必要があります。
ConfigMaps を使用すると、Pod から設定を分離し、ワークロードを移植することができます。ConfigMaps を使用すると、ワークロード構成を簡単に変更および管理でき、構成データを Pod 仕様にハードコードする必要性を軽減できます。
ConfigMapサポートでは、Citrix ingress controller ポッドを実行したまま構成を自動的に更新できます。更新後に Pod を再起動する必要はありません。詳細については、 Ingress コントローラーに対する ConfigMap のサポートを参照してください。
ConfigMap を使用すると、分散トレース、イベント、監査ログなどを有効または無効にできます。コンフィグマップを使用するには、次の手順に従います。
-
必要なパラメータを使用して YAML ファイルを作成します。
次の YAML ファイルの例では、分散トレースが有効になり、監査ログ、イベント、トランザクションなどのその他の変数が無効になっています。
apiVersion: v1 kind: ConfigMap metadata: name: cic-configmap namespace: default data: LOGLEVEL: 'debug' NS_PROTOCOL: 'http' NS_PORT: '80' NS_HTTP2_SERVER_SIDE: 'ON' NS_ANALYTICS_CONFIG: distributed_tracing: enable: 'true' samplingrate: 100 endpoint: server: <ADM-AgentIP> / <ADM-AppserverIP> timeseries: port: 5563 metrics: enable: 'true' mode: 'avro' auditlogs: enable: 'false' events: enable: 'false' transactions: enable: 'false' port: 5557 <!--NeedCopy-->
注
0 から 100
Samplingrate
までの値を指定できます。Citrix ADMには、上記のトレーストランザクション数が表示されます。 -
以下を使用して ConfigMap を展開します。
kubectl create -f <configmap-yaml>.yaml
-
CPX YAML ファイルを編集し、
envFrom
またはargs
を使用して次の引数を指定します。envFrom: - configMapRef: name: cic-configmap <!--NeedCopy-->
または
-
任意の変数の値を変更する場合は、ConfigMap で値を編集します。この例では、他のすべての変数を
false
からtrue
に変更しています。apiVersion: v1 kind: ConfigMap metadata: name: cic-configmap namespace: default data: LOGLEVEL: 'debug' NS_PROTOCOL: 'http' NS_PORT: '80' NS_HTTP2_SERVER_SIDE: 'ON' NS_ANALYTICS_CONFIG: distributed_tracing: enable: 'true' samplingrate: 100 endpoint: server: <ADM-AgentIP> / <ADM-AppserverIP> timeseries: port: 5563 metrics: enable: 'true' mode: 'avro' auditlogs: enable: 'true' events: enable: 'true' transactions: enable: 'true' port: 5557 <!--NeedCopy-->
-
次のコマンドを使用して ConfigMap を再適用します。
kubectl apply -f <yaml-file>.yaml
-
サービストレースの詳細の表示
サービスグラフでサービスをクリックし、[ トレース情報] を選択します。
選択したサービスの [トレースの概要] ページが表示されます。
[ トレースの概要 ] には、次の情報が表示されます。
-
提案と演算子を使用したトランザクションを検索できる拡張検索 (1)。詳細については、「 アドバンスサーチ」を参照してください。
-
1 時間、12 時間、1 日、1 週間、1 ヶ月、カスタム時間 (2) などの期間を選択できる期間リスト。
-
「タイムラインの詳細」グラフ。ドラッグして選択して、特定の期間 (3) の結果を表示できます。
-
各メトリックからオプションを選択できる [フィルタ] パネル (4)。
-
選択したサービスのトランザクション詳細 (5)。
取引の詳細の表示
トランザクションをクリックして、詳細情報をドリルダウンします。次のような、選択したサービスの取引詳細を表示できます。
-
開始日時
-
終了時間
-
SSL メトリック
-
相互依存サービスとの通信(各サービスとのエラーおよび応答時間とともに)。
次の例は、catalogue-store-service
からのエラーを示しています。詳しくは、[トレースの詳細を表示 ] をクリックします。
「トレースの詳細」ページが表示されます。
1 — トランザクションの開始時間、応答時間、サービスの合計、および合計スパンが表示されます。
2 — 依存関係間のサービスと通信した、選択したサービスの詳細を表示します。各トランザクションをクリックすると、詳細を表示できます。
3 — 各サービスのトランザクションの詳細を表示します。
例の画像によると、catalogue-store-service
はエラーを示しました.catalogue-store-service
で利用可能なトランザクションをクリックします 。
product-catalogue-service
とcatalogue-store-service
の間のトランザクションの詳細は、HTTP 応答を 500と示します。これらの詳細情報を使用して、管理者として、誤ったサービスを分析し、product-catalogue-service
を解決方法としてトラブルシューティングできます。
また、フィルターパネルの各指標からオプションを選択して、結果を フィルター することもできます。たとえば、すべての 5xx トランザクションを表示する場合は、[ 応答コード ] をクリックし、[ 500] を選択します。
-
クライアント RTT:パケットがクライアントから転送される時間。
-
サーバ RTT: パケットがサーバから転送される時間。
-
アプリの応答時間: アプリケーションの平均応答時間
-
データ転送時間:データ転送サイズと、サービスとの間で送信が行われる速度。
-
場所: クライアントの場所
-
ブラウザ:クライアントが使用するブラウザのタイプ。例:Chrome、Firefoxです。
-
クライアントOS:ブラウザからのユーザーエージェントの詳細に基づくクライアントOS。
-
デバイス:ブラウザからのユーザーエージェントの詳細に基づくデバイス。例:タブレット、モバイル。
-
要求タイプ: 取引要求タイプ。例:GET。
-
応答コード:サーバーから受信した応答コード。例:501、404、200。
-
応答コンテンツ・タイプ: 取引コンテンツ・タイプ。クライアント要求がtext/htmlの場合、サーバーからの応答はtext/htmlでなければなりません。
-
SSL プロトコル: クライアントが使用する SSL プロトコルのバージョン。例:SSLv3。
-
SSL 暗号の強度: SSL 証明書キーサイズ (高、中、低) に基づく暗号の強度。
-
SSL キーの強度: SSL 暗号の強さは、SSL 証明書のキーサイズから計算されます。キーの長さは、SSL アルゴリズムのセキュリティを定義します。例:2048
-
SSL フロントエンドの失敗理由: フロントエンド SSL ハンドシェイクのエラーメッセージ。例: SSL CLIENTAUTH FAILURE