Skip to content

Latest commit

 

History

History
94 lines (81 loc) · 4.13 KB

README.jp.md

File metadata and controls

94 lines (81 loc) · 4.13 KB

Gatling Commander

Gatling Commanderとは?

Gatling Commanderは、Gatling Operatorを使用した負荷試験実施における一連の作業を自動化するCLIツールです。
Gatling Operatorとは、オープンソースの負荷試験ツールであるGatlingを利用して、自動分散負荷試験を行うためのKubernetes Operatorです。

特徴

負荷試験シナリオを設定ファイルに記述すれば、自動的に負荷試験を実施し結果を記録することができます。

Gatling Commanderにより次の作業が自動化されます。

  • 負荷試験ごとのシナリオに応じたGatlingオブジェクトの作成
  • Gatling Imageのビルド
  • 過負荷時の負荷試験自動停止
  • 負荷試験ごとにGatling Report、コンテナメトリクスを記録
  • 実行中の負荷試験の実施状況確認

またGatling Commanderでは、設定ファイルに複数の負荷試験シナリオを記述可能です。

設定ファイルの作成後に、gatling-commanderコマンドを実行すると、Gatling Commanderは全ての負荷試験を実施し、結果をGoogle Sheetsに書き込みます。
また、負荷試験の完了ステータスをSlack通知するように設定することも可能です。

設定ファイルの各フィールドの説明はUser Guideに記載しています。

以下は設定ファイル(config/config.yaml)の記入例です。

gatlingContextName: gatling-cluster-context-name
imageRepository: gatling-image-stored-repository-url
imagePrefix: gatlinge-image-name-prefix
imageURL: "" # (Optional) specify image url when using pre build gatling container image
baseManifest: config/base_manifest.yaml
gatlingDockerfileDir: gatling
startupTimeoutSec: 1800 # 30min
execTimeoutSec: 10800 # 3h
slackConfig:
  webhookURL: slack-webhook-url
  mentionText: <@targetMemberID>
services:
  - name: sample-service
    spreadsheetID: sample-sheets-id
    failFast: false
    targetPercentile: 99 # (%ile)
    targetLatency: 500 # (ms)
    targetPodConfig:
      contextName: target-pod-context-name
      namespace: sample-namespace
      labelKey: run
      labelValue: sample-api
      containerName: sample-api
    scenarioSpecs:
      - name: case-1
        subName: 10rps
        testScenarioSpec:
          simulationClass: SampleSimulation
          parallelism: 1
          env:
            - name: ENV
              value: "dev"
            - name: CONCURRENCY
              value: "10"
            - name: DURATION
              value: "180"
      - name: case-2
        subName: 20rps
        testScenarioSpec:
          simulationClass: SampleSimulation
          parallelism: 1
          env:
            - name: ENV
              value: "dev"
            - name: CONCURRENCY
              value: "20"
            - name: DURATION
              value: "180"

必須条件

Gatling CommanderはGatling Operatorを使った負荷試験での利用を前提としています。
利用時はまず、Gatling OperatorのQuick Start Guideを参考にGatling Operatorを利用可能な環境を構築してください。

Google Cloud以外の環境での利用

Gatling Operatorがサポートしている実行環境のうち、Gatling Commanderでは現状Google Cloudでの利用のみサポートしています。

クイックスタート

ドキュメント

Contributing

IssueやPull Requestの作成など、コントリビューションは誰でも歓迎です。コントリビューターはContributor Covenantを遵守することを期待します。

License

Gatling CommanderはMITライセンスを適応してオープンソースとして公開しています。LICENSE を参照してください。