Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
3dbb994
[wip] redistimeseries v1.4 support
filipecosta90 Dec 21, 2020
3006d29
[add] Added LoaderTestResult to persist ingestion benchmark results i…
filipecosta90 Jan 3, 2021
812e461
WIP adujst to new APIs
Mar 1, 2021
c8a2b19
More work to align RedisTimeSeries code to new TSBS framework
Mar 2, 2021
d09e8ab
[fix] Minor fixes on functional RTS script. showcasing the simulated …
filipecosta90 Mar 2, 2021
eb5e4d4
[wip] using radix to ingest. OSS cluster and standalone working.
filipecosta90 Mar 2, 2021
e9bf8f0
[wip] working on merging tsbs with upstream changes
filipecosta90 Mar 3, 2021
c35f420
Merge branch 'master' into redistimeseries-v1.4
filipecosta90 Mar 3, 2021
85cb7eb
[fix] fixed metric ingestion value for RTS
filipecosta90 Mar 4, 2021
5c2bdd2
[wip] wip on reducing using client work
filipecosta90 Mar 4, 2021
e338b96
[add] moved from client side work to server-side
filipecosta90 Mar 4, 2021
243ebdb
[wip] improved scripting around redistimeseries tests
filipecosta90 Mar 5, 2021
0466128
[add] Improved load script
filipecosta90 Mar 5, 2021
2ec34e6
[add] updated default timeframe for 4 full days
filipecosta90 Mar 5, 2021
bfd57ee
[add] added cluster flag to loader script
filipecosta90 Mar 8, 2021
ef4a248
[wip] Enabling cluster mode on rts query runner
filipecosta90 Mar 8, 2021
30d943e
use `MGET` for lastpoint query
Mar 9, 2021
9bb285c
[add] avoiding pipeline when we only have one command on the slice
filipecosta90 Mar 21, 2021
5b05cfc
[wip] wip on cluster slot issue
filipecosta90 Mar 21, 2021
60044c7
[fix] cluster slots upper limit on radix is exclusivegit add cmd/tsbs…
filipecosta90 Mar 21, 2021
5b15ccb
[fix] cluster slots upper limit on radix is exclusivegit add cmd/tsbs…
filipecosta90 Mar 21, 2021
bf41a79
[add] small update on RTS scripts
filipecosta90 Mar 26, 2021
09496e9
Merge branch 'master' into redistimeseries-v1.4
filipecosta90 Mar 26, 2021
14112b2
[wip] Improved scripts for RTS
filipecosta90 Mar 26, 2021
f65e197
[fix] Fixed influxdb runner
filipecosta90 Mar 26, 2021
f81978b
[fix] Fixed influxdb runner
filipecosta90 Mar 26, 2021
f4a4106
[fix] Fixed influxdb runner
filipecosta90 Mar 26, 2021
7c6fbba
[wip] Improved influx runner
filipecosta90 Mar 26, 2021
18dc6e2
[wip] Improved influx runner
filipecosta90 Mar 26, 2021
7ea41c2
[wip] Improved influx runner
filipecosta90 Mar 26, 2021
8da87fd
[wip] Improved influx runner
filipecosta90 Mar 26, 2021
a4343e6
[wip] Fixing influxdb query runner
filipecosta90 Mar 26, 2021
afc3e86
[wip] Fixing influxdb query runner
filipecosta90 Mar 26, 2021
1b8f021
[fix] Fixed influx runner
filipecosta90 Mar 26, 2021
4e576f1
[fix] Fixed influx runner
filipecosta90 Mar 26, 2021
836aa73
[add] Added helper to run rate-limited queries on RTS
filipecosta90 Mar 26, 2021
2193049
[add] updated rate-limit script
filipecosta90 Mar 26, 2021
667c485
[add] updated redistimeseries loader
filipecosta90 Mar 26, 2021
2ca4e35
[add] updated redistimeseries loader
filipecosta90 Mar 26, 2021
b08b09c
[add] updated redistimeseries loader
filipecosta90 Mar 26, 2021
4cb66c6
[fix] Removed spurius prints from RTS query runner
filipecosta90 Mar 26, 2021
5e067d5
[wip] enabling run_queries_timescale to be run on remote host
filipecosta90 Mar 27, 2021
1064d12
[fix] Removed spurius prints from RTS query runner
filipecosta90 Mar 27, 2021
d5003b1
[fix] Removed spurius prints from RTS query runner
filipecosta90 Mar 27, 2021
9a1efdb
[add] added rate limited timescaledb runner matching influx rps
filipecosta90 Mar 27, 2021
49cd3cc
[wip] testing --hash-workers features on rts
filipecosta90 Mar 28, 2021
5492d98
[wip] testing --hash-workers features on rts
filipecosta90 Mar 28, 2021
bd8e966
[wip] working with interleaved group ids for using multiple ingestion…
filipecosta90 Apr 1, 2021
147a289
[wip] Ignoring ts.create on multi group ingest
filipecosta90 Apr 1, 2021
5fb5d2f
[wip] Ignoring ts.create on multi group ingest
filipecosta90 Apr 1, 2021
ad66b4c
[wip] Ignoring ts.create on multi group ingest
filipecosta90 Apr 1, 2021
2e0de5a
[wip] Improving loader logic
filipecosta90 Apr 4, 2021
5d49190
[add] wip on hashing series per worker
filipecosta90 Apr 4, 2021
71519d0
[add] included release utils for redistimeseries runners
filipecosta90 Apr 23, 2021
5e76315
Merge remote-tracking branch 'origin/resultset' into redistimeseries-…
filipecosta90 Apr 23, 2021
648ae7f
[add] Added publish redistimeseries make rules
filipecosta90 Apr 23, 2021
f4653f2
Merge branch 'master' into resultset
filipecosta90 Apr 25, 2021
30c2770
[wip] wip results for benchmark run
filipecosta90 Apr 25, 2021
f5d1513
[fix] Fixed build deps(gopsutil) on darwin arm64
filipecosta90 Apr 25, 2021
e3f6b85
[add] Enabled results output for query runners
filipecosta90 Apr 25, 2021
4f01fde
Merge remote-tracking branch 'origin/fix.darwin.arm64' into redistime…
filipecosta90 Apr 25, 2021
aed2228
Merge remote-tracking branch 'origin/resultset' into redistimeseries-…
filipecosta90 Apr 25, 2021
8420921
[add] Fixed query exporting
filipecosta90 Apr 25, 2021
e016c16
[fix] Increased dial timeout to 120secs due to long running queries
filipecosta90 May 17, 2021
80e708d
[add] Enabled to load with different timeseries compressions
filipecosta90 Jul 5, 2021
1c77d5b
[add] re-enabled debug print
filipecosta90 Jul 6, 2021
4e3cf28
[add] enabled high-cpu-1 and high-cpu-all queries
filipecosta90 Jul 6, 2021
2f19e18
[fix] high-cpu-* queries
filipecosta90 Jul 6, 2021
7fbf4ae
[wip] using selected_labels for lastpoint
filipecosta90 Jul 6, 2021
8bcba26
Create go.yaml for GitHub workflow (#171)
Jul 13, 2021
297acbf
Merge branch 'master' into redistimeseries-v1.4
filipecosta90 Jul 26, 2021
2a0fe05
[add] moving back from turbo_gorilla to gorilla
filipecosta90 Aug 1, 2021
161c39d
victoriametrics: follow-up after https://github.com/timescale/tsbs/pu…
hagen1778 Aug 16, 2021
1eb7705
Questdb benchmark support (#157)
patrickSpaceSurfer Aug 24, 2021
82c3d5a
Updated RTS generate queries script
filipecosta90 Jan 12, 2022
bcc0013
Add QuestDB to makefile (#181)
puzpuzpuz Jan 19, 2022
22f834b
updated influx load and query runners to allow authorization header
filipecosta90 Feb 24, 2022
a930b88
Updated creator.go on influx loader to include Authorization token wh…
filipecosta90 Feb 24, 2022
5ae32ef
Updated redistimeseries connection to use RedisTimeSeries v1.6 features
filipecosta90 Jun 25, 2022
69be47c
Merge remote-tracking branch 'tsbs/master' into redistimeseries-v1.4
filipecosta90 Jun 25, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Golang CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-go/ for more details
version: 2
jobs:
build: # test with redisearch:latest
docker:
- image: circleci/golang:1.13

working_directory: /go/src/github.com/RedisTimeSeries/tsbs
steps:
- checkout
- run: |
make redistimeseries
make test-rts

#
# build-multiarch-docker:
# machine:
# enabled: true
# steps:
# - checkout
# - run: |
# echo "$DOCKER_REDISBENCH_PWD" | base64 --decode | docker login --username $DOCKER_REDISBENCH_USER --password-stdin
# - run:
# name: Build
# command: |
# make docker-release
# no_output_timeout: 20m

workflows:
version: 2
build_and_package:
jobs:
- build:
filters:
tags:
only: /.*/
# - build-multiarch-docker:
# filters:
# tags:
# only: /.*/
# branches:
# only: master
24 changes: 24 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# ignore .git and .cache folders
.git
.editorconfig
.gitignore
.dockerignore
.travis.yml
coverage.txt
AUTHORS.md
CONTRIBUTING.md
LICENSE
NOTICE
README.md

*.out
*.log
.DS_Store
.idea
.vscode
**/bin
**/docs
**/scripts

# High Dynamic Range (HDR) Histogram files
*.hdr
21 changes: 21 additions & 0 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Go

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.15

- name: Test
run: go test -v -race ./...
13 changes: 12 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,17 @@
.DS_Store
.idea
.vscode
*~

bin

# High Dynamic Range (HDR) Histogram files
*.hdr
*.hdr

/docs/responses
coverage.txt

bin/

results/
dist
37 changes: 35 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ GOTEST=$(GOCMD) test
GOGET=$(GOCMD) get
GOMOD=$(GOCMD) mod
GOFMT=$(GOCMD) fmt
DISTDIR= ./dist

.PHONY: all generators loaders runners lint fmt checkfmt

Expand All @@ -25,7 +26,8 @@ loaders: tsbs_load \
tsbs_load_prometheus \
tsbs_load_siridb \
tsbs_load_timescaledb \
tsbs_load_victoriametrics
tsbs_load_victoriametrics \
tsbs_load_questdb

runners: tsbs_run_queries_akumuli \
tsbs_run_queries_cassandra \
Expand All @@ -36,7 +38,8 @@ runners: tsbs_run_queries_akumuli \
tsbs_run_queries_siridb \
tsbs_run_queries_timescaledb \
tsbs_run_queries_timestream \
tsbs_run_queries_victoriametrics
tsbs_run_queries_victoriametrics \
tsbs_run_queries_questdb

test:
$(GOTEST) -v ./...
Expand Down Expand Up @@ -64,3 +67,33 @@ lint:

fmt:
$(GOFMT) ./...

release-redistimeseries:
$(GOGET) github.com/mitchellh/gox
$(GOGET) github.com/tcnksm/ghr
GO111MODULE=on gox -osarch "linux/amd64 darwin/amd64" -output "${DISTDIR}/tsbs_run_queries_redistimeseries_{{.OS}}_{{.Arch}}" ./cmd/tsbs_run_queries_redistimeseries
GO111MODULE=on gox -osarch "linux/amd64 darwin/amd64" -output "${DISTDIR}/tsbs_load_redistimeseries_{{.OS}}_{{.Arch}}" ./cmd/tsbs_load_redistimeseries


redistimeseries: tsbs_generate_data tsbs_generate_queries tsbs_load_redistimeseries tsbs_run_queries_redistimeseries

publish-redistimeseries: release-redistimeseries
@for f in $(shell ls ${DISTDIR}); \
do \
echo "copying ${DISTDIR}/$${f}"; \
aws s3 cp ${DISTDIR}/$${f} s3://benchmarks.redislabs/redistimeseries/tools/tsbs/$${f} --acl public-read; \
done

publish-redistimeseries-queries:
@for f in $(shell ls /tmp/bulk_queries); \
do \
echo "copying $${f}"; \
aws s3 cp /tmp/bulk_queries/$${f} s3://benchmarks.redislabs/redistimeseries/tsbs/queries/devops/scale100/devops-scale100-4days/$${f} --acl public-read; \
done

publish-redistimeseries-data:
@for f in $(shell ls /tmp/bulk_data_redistimeseries); \
do \
echo "copying $${f}"; \
aws s3 cp /tmp/bulk_data_redistimeseries/$${f} s3://benchmarks.redislabs/redistimeseries/tsbs/devops/bulk_data_redistimeseries/$${f} --acl public-read; \
done
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ Current databases supported:
+ CrateDB [(supplemental docs)](docs/cratedb.md)
+ InfluxDB [(supplemental docs)](docs/influx.md)
+ MongoDB [(supplemental docs)](docs/mongo.md)
+ RedisTimeSeries [(supplemental docs)](docs/redistimeseries.md)
+ QuestDB [(supplemental docs)](docs/questdb.md)
+ SiriDB [(supplemental docs)](docs/siridb.md)
+ TimescaleDB [(supplemental docs)](docs/timescaledb.md)
+ Timestream [(supplemental docs)](docs/timestream.md)
Expand Down Expand Up @@ -75,6 +77,8 @@ cases are implemented for each database:
|CrateDB|X||
|InfluxDB|X|X|
|MongoDB|X|
|RedisTimeSeries|X|
|QuestDB|X|X
|SiriDB|X|
|TimescaleDB|X|X|
|Timestream|X||
Expand Down Expand Up @@ -132,7 +136,7 @@ Variables needed:
1. an end time. E.g., `2016-01-04T00:00:00Z`
1. how much time should be between each reading per device, in seconds. E.g., `10s`
1. and which database(s) you want to generate for. E.g., `timescaledb`
(choose from `cassandra`, `clickhouse`, `cratedb`, `influx`, `mongo`, `siridb`,
(choose from `cassandra`, `clickhouse`, `cratedb`, `influx`, `mongo`, `questdb`, `siridb`,
`timescaledb` or `victoriametrics`)

Given the above steps you can now generate a dataset (or multiple
Expand Down
50 changes: 50 additions & 0 deletions cmd/tsbs_generate_queries/databases/questdb/common.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package questdb

import (
"fmt"
"net/url"
"time"

"github.com/timescale/tsbs/cmd/tsbs_generate_queries/uses/devops"
"github.com/timescale/tsbs/cmd/tsbs_generate_queries/utils"
"github.com/timescale/tsbs/pkg/query"
)

// BaseGenerator contains settings specific for QuestDB
type BaseGenerator struct {
}

// GenerateEmptyQuery returns an empty query.QuestDB.
func (g *BaseGenerator) GenerateEmptyQuery() query.Query {
return query.NewHTTP()
}

// fillInQuery fills the query struct with data.
func (g *BaseGenerator) fillInQuery(qi query.Query, humanLabel, humanDesc, sql string) {
v := url.Values{}
v.Set("count", "false")
v.Set("query", sql)
q := qi.(*query.HTTP)
q.HumanLabel = []byte(humanLabel)
q.RawQuery = []byte(sql)
q.HumanDescription = []byte(humanDesc)
q.Method = []byte("GET")
q.Path = []byte(fmt.Sprintf("/exec?%s", v.Encode()))
q.Body = nil
}

// NewDevops creates a new devops use case query generator.
func (g *BaseGenerator) NewDevops(start, end time.Time, scale int) (utils.QueryGenerator, error) {
core, err := devops.NewCore(start, end, scale)

if err != nil {
return nil, err
}

devops := &Devops{
BaseGenerator: g,
Core: core,
}

return devops, nil
}
Loading