Создать базу данных для хранения результатов работы JMeter
clickhouse-client --query="CREATE DATABASE jmeter"
Создать таблицу, в которую будут загружаться исходные данные из csv-лога.
use jmeter
CREATE TABLE `csv` (
`timeStamp` UInt32,
`elapsed` UInt32,
`label` String,
`responseCode` String,
`responseMessage` String,
`threadName` String,
`dataType` String,
`success` String,
`failureMessage` String,
`bytes` UInt32,
`sentBytes` UInt32,
`grpThreads` UInt32,
`allThreads` UInt32,
`URL` String,
`Latency` UInt32,
`IdleTime` UInt32,
`Connect` UInt32
) ENGINE = Log
Загрузить в таблицу csv результаты работы Apache.JMeter
cd ~/Project/jmeter-loadtestweb/target/jmeter/results
clickhouse-client --format_csv_delimiter="," --query="INSERT INTO jmeter.csv FORMAT CSVWithNames" < jmeter-loadtestweb.csv
Создать таблицу, с дополнительными колонками time и date
CREATE TABLE `jmeter` (
`time` DateTime,
`date` Date,
`timeStamp` UInt32,
`elapsed` UInt32,
`label` String,
`responseCode` String,
`responseMessage` String,
`threadName` String,
`dataType` String,
`success` String,
`failureMessage` String,
`bytes` UInt32,
`sentBytes` UInt32,
`grpThreads` UInt32,
`allThreads` UInt32,
`URL` String,
`Latency` UInt32,
`IdleTime` UInt32,
`Connect` UInt32
) ENGINE = MergeTree("date", ("time", "timeStamp", "label", "threadName"), 8192)
Перелить в таблицу jmeter содержимое таблицы csv
insert into "jmeter"
select
toDateTime("timeStamp" / 1000) as time,
toDate("timeStamp" / 1000) as date,
*
from "csv"
Теперь таблицу jmeter можно использовать в Grafana для выполнения запросов и отображения графиков
Готовый плагин от Александра Бабаева
Нашел ещё готовое решение для Apache.JMeter и ClickHouse.
Проект плагина: https://gitlab.com/testload/jmeter-listener
Доска Grafana: https://grafana.com/dashboards/956
Подробная инструкция по настройке есть на странице доски для Grafana по ссылке выше.
Собранный плагин для Apache.JMeter: https://mvnrepository.com/artifact/cloud.testload/jmeter.pack-listener
<dependency>
<groupId>cloud.testload</groupId>
<artifactId>jmeter.pack-listener</artifactId>
<version>1.4</version>
</dependency>
wiki проекта: https://gitlab.com/testload/jmeter-listener/wikis/home