Apache SkyWalking
このタスクを完了すると、アプリケーションの構築に使用する言語、フレームワーク、プラットフォームに関係なく、Apache SkyWalkingを使用したトレーシングにアプリケーションを参加させる方法を理解できます。
このタスクでは、サンプルアプリケーションとしてBookinfoサンプルを使用します。
Istioがトレーシングをどのように処理するかを学ぶには、分散トレーシングの概要セクションをご覧ください。
トレーシングの構成
IstioOperator
CRを使用してIstioをインストールした場合、次のフィールドを構成に追加します。
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultProviders:
tracing:
- "skywalking"
enableTracing: true
extensionProviders:
- name: "skywalking"
skywalking:
service: tracing.istio-system.svc.cluster.local
port: 11800
この構成により、IstioはデフォルトのトレーサーとしてSkyWalking Agentとともにインストールされます。トレースデータはSkyWalkingバックエンドに送信されます。
デフォルトのプロファイルでは、サンプリングレートは1%です。 テレメトリAPIを使用して、100%に増やします
$ kubectl apply -f - <<EOF
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: mesh-default
namespace: istio-system
spec:
tracing:
- randomSamplingPercentage: 100.00
EOF
SkyWalkingコレクターのデプロイ
SkyWalkingインストールドキュメントに従って、SkyWalkingをクラスタにデプロイします。
Bookinfoアプリケーションのデプロイ
Bookinfoサンプルアプリケーションをデプロイします。
ダッシュボードへのアクセス
テレメトリアドオンへのリモートアクセスには、ゲートウェイを介してIstioアドオンへのアクセスを構成する方法が詳しく説明されています。
テスト(および一時的なアクセス)の場合、ポートフォワーディングを使用することもできます。SkyWalkingをistio-system
名前空間にデプロイしたと仮定して、以下を使用します。
$ istioctl dashboard skywalking
Bookinfoサンプルを使用したトレースの生成
Bookinfoアプリケーションが起動して実行されたら、トレース情報を生成するために、
http://$GATEWAY_URL/productpage
に1回以上アクセスします。トレースデータを表示するには、サービスにリクエストを送信する必要があります。リクエストの数はIstioのサンプリングレートに依存し、Telemetry APIを使用して構成できます。デフォルトのサンプリングレートは1%であるため、最初のトレースが表示される前に少なくとも100件のリクエストを送信する必要があります。
productpage
サービスに100件のリクエストを送信するには、次のコマンドを使用します。$ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done
「General Service」パネルから、サービスリストを確認できます。
サービスリスト メインコンテンツで「Trace」タブを選択します。左側のサイドバーにトレースリストが表示され、右側のパネルにトレースの詳細が表示されます。
トレースビュー トレースは一連のスパンで構成されており、各スパンは、
/productpage
リクエストの実行中に呼び出されたBookinfoサービス、または内部Istioコンポーネント(例:istio-ingressgateway
)に対応します。
SkyWalkingの公式デモアプリケーションの探索
このチュートリアルでは、Bookinfoサンプルアプリケーションを使用します。このサンプルアプリケーションでは、サービスにSkyWalkingエージェントはインストールされておらず、すべてのトレースはサイドカープロキシによって生成されます。
SkyWalkingの言語エージェントについて詳しく知りたい場合は、SkyWalkingチームが言語エージェントと統合されたデモアプリケーションも提供しています。これにより、より詳細なトレースや、プロファイリングなどの言語エージェント固有の機能を利用できます。
クリーンアップ
実行中の
istioctl
プロセスがある場合は、Ctrl-Cまたは以下のコマンドを使用して削除してください。$ killall istioctl
後続のタスクを実行しない場合は、Bookinfoクリーンアップの手順を参照して、アプリケーションをシャットダウンしてください。