1.1 Locustでトラフィックを発生させる

5分

1. トラフィックを発生させる

Online Boutique のデプロイメントには、Locust が動作するコンテナが含まれており、これを使用してウェブサイトに対する負荷トラフィックを生成し、メトリクス、トレース、スパンを生成することができます。

Locust は、EC2インスタンスのIPアドレスの82番ポートで利用できます。ウェブブラウザで新しいタブを開き、 http://<EC2-IP>:82/ にアクセスすると、Locust が動作しているのが確認できます。

Locust Locust

Spawn rate を 2 に設定し、Start Swarming をクリックすると、アプリケーションに緩やかな負荷がかかり続けます。

Spawn Rate Spawn Rate

Statistics Statistics


それでは、 Dashboards → All Dashboards → APM Services → Service を開きましょう。

そのためには、アプリケーションの Environment 名を知る必要があります。このワークショップでは、<hostname>-workshop のような Environment 名で定義されています。

ホスト名を調べるには、AWS/EC2インスタンス上で以下のコマンドを実行します:

echo $(hostname)-workshop
bdzx-workshop

前のステップで見つけた Environment を選択し、「frontend」サービスを選択し、時間を「Past 15 minutes」に設定します。

APM Dashboard APM Dashboard

この自動生成されたダッシュボードでは、RED (Rate, Error & Duration) メトリクスを使用して、サービスの状態を監視することができます。このダッシュボードでは、パフォーマンスに関連したさまざまなチャートのほか、基盤となるホストやKubernetesポッド(該当する場合)の相関情報も提供されます。

ダッシュボードの様々なチャートを見てみましょう。


2. Splunk APM のメトリクスを確認する

画面左のメニューからAPMをクリックするとAPM Overviewダッシュボードが表示されます。

select APM select APM

右側の Explore を選択し、先ほど見つけた Environment を選択し、時間を15分に設定します。これにより、自動的に生成されたOnline BoutiqueアプリケーションのDependency/Service Mapが表示されます。

以下のスクリーンショットのように表示されます:

Online Boutique in APM Online Boutique in APM

ページの下部にある凡例では、依存関係/サービスマップでの表記について説明しています。

APM Legend APM Legend

  • サービスリクエスト、エラーレート、ルートエラーレート。
  • リクエストレート、レイテンシー、エラーレート

また、このビューでは、全体的なエラー率とレイテンシー率のタイムチャートを見ることができます。

3. OpenTelemetry ダッシュボード

Open Telemetery Collector がデプロイされると、プラットフォームは自動的に OpenTelemetry Collector のメトリクスを表示するダッシュボードを作成します。

左上のナブメニューから、 Dashboards → OpenTelemetry Collector を選択し、メトリクスとスパンが送信されていることを確認しましょう。

OpenTelemetry Collector dashboard OpenTelemetry Collector dashboard

4. OpenTelemetry zpages

送信されたトレースをデバッグするには、zpages 拡張機能を使用できます。zpages は OpenTelemetry Collector の一種で、トラブルシューティングや統計用のライブデータを提供します。これらは、EC2インスタンスのIPアドレスのポート 55679 で利用できます。Webブラウザで新しいタブを開き、 http://{==EC2-IP==}:55679/debug/tracez と入力すると、zpages の出力を見ることができます。

zpages zpages

また、シェルプロンプトから、テキストベースのブラウザを実行することもできます。

lynx http://localhost:55679/debug/tracez