Docker を使用した JMeter+Grafana+Influxdb 監視プラットフォームの構築に関する詳細なチュートリアル

Docker を使用した JMeter+Grafana+Influxdb 監視プラットフォームの構築に関する詳細なチュートリアル

Jmeter がネイティブの結果表示機能を提供していることは誰もが知っています。ネイティブの結果表示ツールがあるのに、なぜ他のツールを使用して表示する必要があるのでしょうか。豊富な表示コンテンツに加えて、主な理由もいくつかあります。
Jmeter によって提供される結果表示プラグイン自体はパフォーマンスを大量に消費するため、正式なストレス テストでは無効にする必要があります。ただし、スクリプトの実行中に結果をリアルタイムで表示する必要があるため、これを実現するには外部ツールを使用する必要があります。
さらに、実際のストレス テスト プロセスでは、Jmeter グラフィカル モードはデバッグにのみ適しており、ストレス テストには使用しないことに注意してください。グラフィカル ストレス テスト方式では、クライアントのパフォーマンスが消費され、ストレス テスト プロセス中にクライアントの問題が発生するとメモリ オーバーフローが発生しやすくなります。担当者は、コマンドラインから実行するためのヒントも提供しました。次のコマンドを実行します:

jmeter -n -t [jmx ファイル] -l [結果ファイル] -e -o [Web レポート フォルダーへのパス]

-n は JMeter を非 GUI モードで実行することを意味します。

-t は実行する JMeter テスト スクリプト ファイル (通常は jmx で終わるファイル) を示します。

-l は結果が記録されるファイルを示し、デフォルトでは jtl で終わります。-e はテストが完了した後にテスト レポートが生成されることを示します。

-o は生成された結果フォルダーの場所を指定します。

実施原則

次に、Docker を利用して InfluxDB と Grafana を使用し、パフォーマンス可視化監視プラットフォームを構築する方法について詳しく説明します。
InfluxDB のコンセプト: InfluxDB は、外部依存関係なしで Go 言語で記述されたオープンソースの分散型時系列、イベント、およびインジケーター データベースです。現在、データベースは主に、DevOps 監視データ、APP メトリック、IoT センサー データ、リアルタイム分析データなど、大量のタイムスタンプ付きデータを格納するために使用されています。
InfluxDB の概念的な特徴:

  • 非構造化 (スキーマレス): 任意の数の列を指定できます。
  • メトリックの保存時間を設定できます。
  • 統計を容易にするために時間関連の関数(最小、最大、合計、カウント、平均、中央値など)をサポートします。
  • ストレージ ポリシーをサポート: データの削除と変更に使用できます。 (influxDB はデータを削除および変更するためのメソッドを提供しません);
  • 継続的クエリをサポートします。これは、一定の時間にデータベース内で自動的に開始される一連のステートメントです。ストレージ戦略と併用すると、InfluxDB のシステム使用量を削減できます。
  • ネイティブ HTTP サポート、組み込み HTTP API。
  • SQL のような構文をサポートします。
  • クラスター内のデータのコピー数の設定をサポートします。
  • データの定期的なサンプリングと別の測定への書き込みをサポートし、さまざまな粒度でデータを保存することが容易になります。

Grafana のコンセプト: Graphite、Elasticsearch、OpenTSDB、Prometheus、InfluxDB に適した、豊富なインジケーター ダッシュボードとグラフィック エディターを備えたオープン ソース ソフトウェア。簡単に言えば、オープンソースの WEB 可視化プラットフォームです。

JMeter は、ストレス テスト中に統計指標データをリアルタイムで Influxdb データベースに送信するバックエンド リスナーを導入しています。Grafana (オープン ソースの WEB ビジュアル ダッシュボード) データ ソースを Influxdb に接続してビジュアル ダッシュボードを作成し、テスト指標データをリアルタイムで取得します。

InfluxDBをインストールする

docker で influxdb イメージをインストールしてプルします: docker pull influxdb
influxdbコンテナを実行します: docker run --name my_influxdb -p 8086:8086 influxdb

コンテナに入ります: docker exec -it container id /bin/bash

データベースjmeterを作成する

流入
データベースを表示します。
データベース jmeter を作成します。
データベースを表示します。
jmeter を使用します。
jmeter から * を選択します。
出口;

Grafanaをインストールする

Grafana イメージをプルします: docker pull grafana/grafana

コンテナを実行します: docker run --name my_grafana -p 3000:3000 grafana/grafana

Grafana にアクセス: http://ip:3000

ユーザー名とパスワードは両方とも「admin」です

入力後にデータベースを追加する

入力後データベースを設定する

保存してテスト

表示テンプレートを構成する

多くのテンプレートがあり、プレビューして適切なものを選択してダウンロードできます。ダウンロードアドレス: https://grafana.com/grafana/dashboards

jsonファイルをダウンロード

インポートの準備

ダウンロードしたjsonファイルをインポートするだけです。

設定が完了したら、パネルに入ります

ここでリフレッシュレートを設定できます

Jmeter を設定する

Jmeter スクリプトを作成します。

バックエンドリスナーの設定

スクリプトを実行した後、結果を表示できます。

これで、Docker を使用した JMeter+Grafana+Influxdb 監視プラットフォームの構築に関するこの記事は終了です。Docker を使用した JMeter+Grafana+Influxdb 監視プラットフォームの構築の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • PrometheusとGrafanaを使用したMySQLサーバーのパフォーマンス監視の詳細な説明
  • Grafanaのインストールと使用に関する詳細なチュートリアル
  • Grafana を使用して Docker コンテナの監視チャートを表示し、電子メールアラートルールを設定する (図)
  • Prometheus+Grafana を使用した Springboot アプリケーションの監視に関するチュートリアルの詳細な説明
  • Grafana+Prometheus を使用して MySQL サービスのパフォーマンスを監視する
  • docker ベースで Prometheus+Grafana を構築する手順の詳細説明
  • Influx+Grafana のカスタム Python データ収集の概要といくつかの落とし穴
  • SpringBoot+Prometheus+Grafanaでアプリケーション監視とアラームを実装するための詳細な手順
  • Linux で Grafana をインストールし、InfluxDB モニタリングを追加する方法
  • Prometheus+Grafanaによるnginxの監視方法を分析する
  • PrometheusはGrafanaディスプレイを使用してMySQLを監視します
  • Ubuntu で Grafana を使用して Docker を監視する方法
  • Docker 環境で JMeter+Grafana+influxdb ビジュアル パフォーマンス監視プラットフォームを構築するチュートリアル
  • dockerを使用してGrafana+Prometheus構成をデプロイする
  • ELKとGrafanaが共同でnginxログを分析するための視覚的なモニタリングを開発
  • Grafana のパスワードを忘れても大丈夫です。Grafana の管理者パスワードをリセットする 2 つの方法

<<:  elementui での el-cascader カスケードセレクタの実践

>>:  MySQLデスクトップツールSQLyogのリソースとアクティベーション方法は、白黒のコマンドラインに別れを告げます

推薦する

リストループスクロールを実現するための HTML+CSS+JavaScript サンプルコード

説明: 指定された時間内に前のノードのコンテンツを置き換えるタイマーを設定します。 1. キーコード...

Linux Bash スクリプトを使用してユーザーを識別する方法の例

多くの場合、bash スクリプト内またはスクリプト自体内で直接 sudo を使用してコマンドを実行す...

MySQLは挿入を使用して複数のレコードを挿入し、データを一括で追加します。

table1 に 5 つのレコードを挿入する場合、次のコードは誤りです。 テーブル1に(id,na...

Angularフレームワークのビュー抽象定義の詳細な説明

序文「大規模なフロントエンド プロジェクト向け」に設計されたフロントエンド フレームワークである A...

JavaScript Promise の徹底解説

目次1. Promise とは何ですか? 2. なぜ Promise が存在するのでしょうか? 3つ...

MySQLグループクエリ最適化方法

MySQL はほとんどの場合、GROUP BY クエリと DISTINCT クエリを同様に処理します...

5分でReactルーティングについてお教えします

目次ルーティングとは純粋コンポーネントの基本的な使用純粋なコンポーネントの使用に関する注意事項ルーテ...

ZabbixはSNMPに基づいてLinuxホストを監視します

序文: Linux ホストは、エージェント プログラムをインストールする場合でも、SNMP を使用す...

ウェブデザインの教育または学習プログラム

セクションコース内容営業時間1 ウェブデザインの概要2 2 HTML 基本タグとフォーマットタグ 2...

Vue 監視属性のグラフィック例の詳細な説明

目次リスナープロパティとは何ですか?リスニングプロパティと計算プロパティの違いは何ですか?監視プロパ...

正規表現に基づくあいまい文字列置換を実装するMySQLの方法の分析

この記事では、例を使用して、MySQL を使用して正規表現に基づくあいまい文字列置換を実装する方法を...

vue+element カスタムクエリコンポーネント

この記事では主に Vue プロジェクトを紹介します。要素の導入を前提として、コンポーネントを 2 回...

CSS3 背景コントロールプロパティと色遷移を使用してグラデーション効果を実現します。

CSS3 背景画像関連互換性: IE9+背景クリップ 背景画像描画領域background-cli...

SQL 実装 LeetCode (185. 部門内で最も給与の高い上位 3 名)

[LeetCode] 185. 部門別給与上位3位従業員テーブルにはすべての従業員が保持されます。...

CocosCreatorプロジェクト構造の仕組みの詳細な説明

目次1. プロジェクトフォルダ構造1. アセットフォルダ2. 図書館3. ローカル設定(ローカル) ...