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のリソースとアクティベーション方法は、白黒のコマンドラインに別れを告げます

推薦する

Intelli Idea で Tomcat 設定が見つからない問題の解決方法

2日前に新しい会社に入社しました。その会社ではIntelli Ideaを使っています。Eclipse...

JSONオブジェクトのキーを置き換える最良の方法

JSON (JavaScript Object Notation、JS Object Notatio...

Vue の高度な使用方法チュートリアル 動的コンポーネント

目次基本的な説明AST 解析レンダリング機能通常コンポーネントと動的コンポーネントの比較ファクトリ関...

js を使用して QR コードを生成するサンプル コード

以前、プロジェクトでQRコードをスキャンして情報を表示する機能を開発する必要がありました。インターネ...

Nginx で Angular プロジェクトを展開する際の落とし穴

コンパイル後にAngularプロジェクトをNginxにデプロイする方法をオンラインで検索すると、ほと...

MySQLのUPDATE文の落とし穴を記録する

背景最近、オンライン操作中に DML ステートメントを実行しました。これは絶対確実だと思っていました...

MySQL 基本チュートリアル パート 1 MySQL5.7.18 のインストールと接続チュートリアル

この記事から、MySQL を紹介し学習するための新しい一連の記事がスタートします。なぜ MySQL ...

Vue3はフロントエンドのログを出力するためにaxiosインターセプターを使用する

目次1. はじめに2. axiosインターセプターを使用してフロントエンドログを出力する1. はじめ...

JavaScriptエラーキャプチャの詳細な説明

目次1. 基本的な使い方とロジック2. 特徴3. エラーオブジェクト4. キャッチアンドスロー戦略の...

JavaScriptカスタムオブジェクトメソッドの概要

目次1. オブジェクトを使用してオブジェクトを作成する2. コンストラクタを使用してオブジェクトを作...

LinuxベースのApacheウェブサイトサービス構成の詳細な説明

オープンソース ソフトウェアである Apache は、最も広く使用されている Web アプリケーショ...

HTML 名、ID、クラス (フォーマット/アプリケーション シナリオ/機能) などの違いの紹介。

ページには多くのコントロール (要素またはタグ) があります。これらのタグをより便利に操作するには、...

要素 el-button ボタンコンポーネントの使用の詳細な説明

1. 背景ボタンは非常によく使われており、Element のボタン機能は非常に包括的です。この記事で...

jsオブジェクト指向カプセル化カスケードドロップダウンメニューリストの実装手順

この例で開発されたカスケード ドロップダウン メニューは、既存の JSON データに基づいて作成され...

データベースインデックスの知識ポイントの概要

目次ファーストルックインデックスインデックスの概念インデックスファイルの構成インデックスの役割SQL...