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サンプルを使用したトレースの生成

  1. 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
        
  2. 「General Service」パネルから、サービスリストを確認できます。

    Service List
    サービスリスト
  3. メインコンテンツで「Trace」タブを選択します。左側のサイドバーにトレースリストが表示され、右側のパネルにトレースの詳細が表示されます。

    Trace View
    トレースビュー
  4. トレースは一連のスパンで構成されており、各スパンは、/productpageリクエストの実行中に呼び出されたBookinfoサービス、または内部Istioコンポーネント(例:istio-ingressgateway)に対応します。

SkyWalkingの公式デモアプリケーションの探索

このチュートリアルでは、Bookinfoサンプルアプリケーションを使用します。このサンプルアプリケーションでは、サービスにSkyWalkingエージェントはインストールされておらず、すべてのトレースはサイドカープロキシによって生成されます。

SkyWalkingの言語エージェントについて詳しく知りたい場合は、SkyWalkingチームが言語エージェントと統合されたデモアプリケーションも提供しています。これにより、より詳細なトレースや、プロファイリングなどの言語エージェント固有の機能を利用できます。

クリーンアップ

  1. 実行中のistioctlプロセスがある場合は、Ctrl-Cまたは以下のコマンドを使用して削除してください。

    $ killall istioctl
    
  2. 後続のタスクを実行しない場合は、Bookinfoクリーンアップの手順を参照して、アプリケーションをシャットダウンしてください。

この情報は役に立ちましたか?
改善のための提案はありますか?

フィードバックありがとうございます!