dbtester/config_dbtester_test.go

553 lines
29 KiB
Go

// Copyright 2017 CoreOS, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package dbtester
import (
"reflect"
"testing"
"github.com/coreos/dbtester/dbtesterpb"
)
func TestConfig(t *testing.T) {
cfg, err := ReadConfig("config_dbtester_test.yaml", false)
if err != nil {
t.Fatal(err)
}
expected := &Config{
TestTitle: "Write 1M keys, 256-byte key, 1KB value value, clients 1 to 1,000",
TestDescription: `- Google Cloud Compute Engine
- 4 machines of 16 vCPUs + 30 GB Memory + 300 GB SSD (1 for client)
- Ubuntu 16.10
- etcd v3.1 (Go 1.7.5)
- Zookeeper r3.4.9
- Java 8
- javac 1.8.0_121
- Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
- Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
- Consul v0.7.4 (Go 1.7.5)
`,
Control: Control{
PathPrefix: "/home/gyuho",
LogPath: "/home/gyuho/client-control.log",
ClientSystemMetricsPath: "/home/gyuho/client-system-metrics.csv",
ClientSystemMetricsInterpolatedPath: "/home/gyuho/client-system-metrics-interpolated.csv",
ClientLatencyThroughputTimeseriesPath: "/home/gyuho/client-latency-throughput-timeseries.csv",
ClientLatencyDistributionAllPath: "/home/gyuho/client-latency-distribution-all.csv",
ClientLatencyDistributionPercentilePath: "/home/gyuho/client-latency-distribution-percentile.csv",
ClientLatencyDistributionSummaryPath: "/home/gyuho/client-latency-distribution-summary.csv",
ClientLatencyByKeyNumberPath: "/home/gyuho/client-latency-by-key-number.csv",
ServerDiskSpaceUsageSummaryPath: "/home/gyuho/server-disk-space-usage-summary.csv",
GoogleCloudProjectName: "etcd-development",
GoogleCloudStorageKeyPath: "config-dbtester-gcloud-key.json",
GoogleCloudStorageKey: "test-key",
GoogleCloudStorageBucketName: "dbtester-results",
GoogleCloudStorageSubDirectory: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable",
},
AllDatabaseIDList: []string{"etcdv3", "zookeeper", "consul"},
DatabaseIDToTestGroup: map[string]TestGroup{
"etcdv3": {
DatabaseID: "etcdv3",
DatabaseTag: "etcd-v3.1-go1.7.5",
DatabaseDescription: "etcd v3.1 (Go 1.7.5)",
PeerIPs: []string{"10.240.0.20", "10.240.0.21", "10.240.0.22"},
PeerIPsString: "10.240.0.20___10.240.0.21___10.240.0.22",
DatabasePortToConnect: 2379,
DatabaseEndpoints: []string{"10.240.0.20:2379", "10.240.0.21:2379", "10.240.0.22:2379"},
AgentPortToConnect: 3500,
AgentEndpoints: []string{"10.240.0.20:3500", "10.240.0.21:3500", "10.240.0.22:3500"},
Etcdv3: Etcdv3{
SnapCount: 100000,
QuotaSizeBytes: 8000000000,
},
BenchmarkOptions: BenchmarkOptions{
Type: "write",
RequestNumber: 1000000,
ConnectionNumber: 0,
ClientNumber: 0,
ConnectionClientNumbers: []int64{1, 10, 50, 100, 300, 500, 700, 1000},
RateLimitRequestsPerSecond: 0,
SameKey: false,
KeySizeBytes: 256,
ValueSizeBytes: 1024,
StaleRead: false,
},
BenchmarkSteps: BenchmarkSteps{
Step1StartDatabase: true,
Step2StressDatabase: true,
Step3StopDatabase: true,
Step4UploadLogs: true,
},
},
"zookeeper": {
DatabaseID: "zookeeper",
DatabaseTag: "zookeeper-r3.4.9-java8",
DatabaseDescription: "Zookeeper r3.4.9 (Java 8)",
PeerIPs: []string{"10.240.0.25", "10.240.0.27", "10.240.0.28"},
PeerIPsString: "10.240.0.25___10.240.0.27___10.240.0.28",
DatabasePortToConnect: 2181,
DatabaseEndpoints: []string{"10.240.0.25:2181", "10.240.0.27:2181", "10.240.0.28:2181"},
AgentPortToConnect: 3500,
AgentEndpoints: []string{"10.240.0.25:3500", "10.240.0.27:3500", "10.240.0.28:3500"},
Zookeeper: Zookeeper{
TickTime: 2000,
InitLimit: 5,
SyncLimit: 5,
SnapCount: 100000,
MaxClientConnections: 5000,
},
BenchmarkOptions: BenchmarkOptions{
Type: "write",
RequestNumber: 1000000,
ConnectionNumber: 0,
ClientNumber: 0,
ConnectionClientNumbers: []int64{1, 10, 50, 100, 300, 500, 700, 1000},
RateLimitRequestsPerSecond: 0,
SameKey: false,
KeySizeBytes: 256,
ValueSizeBytes: 1024,
StaleRead: false,
},
BenchmarkSteps: BenchmarkSteps{
Step1StartDatabase: true,
Step2StressDatabase: true,
Step3StopDatabase: true,
Step4UploadLogs: true,
},
},
"consul": {
DatabaseID: "consul",
DatabaseTag: "consul-v0.7.4-go1.7.5",
DatabaseDescription: "Consul v0.7.4 (Go 1.7.5)",
PeerIPs: []string{"10.240.0.30", "10.240.0.31", "10.240.0.33"},
PeerIPsString: "10.240.0.30___10.240.0.31___10.240.0.33",
DatabasePortToConnect: 8500,
DatabaseEndpoints: []string{"10.240.0.30:8500", "10.240.0.31:8500", "10.240.0.33:8500"},
AgentPortToConnect: 3500,
AgentEndpoints: []string{"10.240.0.30:3500", "10.240.0.31:3500", "10.240.0.33:3500"},
BenchmarkOptions: BenchmarkOptions{
Type: "write",
RequestNumber: 1000000,
ConnectionNumber: 0,
ClientNumber: 0,
ConnectionClientNumbers: []int64{1, 10, 50, 100, 300, 500, 700, 1000},
RateLimitRequestsPerSecond: 0,
SameKey: false,
KeySizeBytes: 256,
ValueSizeBytes: 1024,
StaleRead: false,
},
BenchmarkSteps: BenchmarkSteps{
Step1StartDatabase: true,
Step2StressDatabase: true,
Step3StopDatabase: true,
Step4UploadLogs: true,
},
},
},
DatabaseIDToTestData: map[string]TestData{
"etcdv3": {
DatabaseID: "etcdv3",
DatabaseTag: "etcd-v3.1-go1.7.5",
DatabaseDescription: "etcd v3.1 (Go 1.7.5)",
PathPrefix: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5",
ClientSystemMetricsInterpolatedPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-client-system-metrics-interpolated.csv",
ClientLatencyThroughputTimeseriesPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-client-latency-throughput-timeseries.csv",
ClientLatencyDistributionAllPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-client-latency-distribution-all.csv",
ClientLatencyDistributionPercentilePath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-client-latency-distribution-percentile.csv",
ClientLatencyDistributionSummaryPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-client-latency-distribution-summary.csv",
ClientLatencyByKeyNumberPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-client-latency-by-key-number.csv",
ServerMemoryByKeyNumberPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-server-memory-by-key-number.csv",
ServerReadBytesDeltaByKeyNumberPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-server-read-bytes-delta-by-key-number.csv",
ServerWriteBytesDeltaByKeyNumberPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-server-write-bytes-delta-by-key-number.csv",
ServerDiskSpaceUsageSummaryPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-server-disk-space-usage-summary.csv",
ServerSystemMetricsInterpolatedPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-1-server-system-metrics-interpolated.csv",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-2-server-system-metrics-interpolated.csv",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-3-server-system-metrics-interpolated.csv",
},
AllAggregatedOutputPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/etcd-v3.1-go1.7.5-all-aggregated.csv",
},
"zookeeper": {
DatabaseID: "zookeeper",
DatabaseTag: "zookeeper-r3.4.9-java8",
DatabaseDescription: "Zookeeper r3.4.9 (Java 8)",
PathPrefix: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8",
ClientSystemMetricsInterpolatedPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-client-system-metrics-interpolated.csv",
ClientLatencyThroughputTimeseriesPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-client-latency-throughput-timeseries.csv",
ClientLatencyDistributionAllPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-client-latency-distribution-all.csv",
ClientLatencyDistributionPercentilePath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-client-latency-distribution-percentile.csv",
ClientLatencyDistributionSummaryPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-client-latency-distribution-summary.csv",
ClientLatencyByKeyNumberPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-client-latency-by-key-number.csv",
ServerMemoryByKeyNumberPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-server-memory-by-key-number.csv",
ServerReadBytesDeltaByKeyNumberPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-server-read-bytes-delta-by-key-number.csv",
ServerWriteBytesDeltaByKeyNumberPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-server-write-bytes-delta-by-key-number.csv",
ServerDiskSpaceUsageSummaryPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-server-disk-space-usage-summary.csv",
ServerSystemMetricsInterpolatedPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-1-server-system-metrics-interpolated.csv",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-2-server-system-metrics-interpolated.csv",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-3-server-system-metrics-interpolated.csv",
},
AllAggregatedOutputPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/zookeeper-r3.4.9-java8-all-aggregated.csv",
},
"consul": {
DatabaseID: "consul",
DatabaseTag: "consul-v0.7.4-go1.7.5",
DatabaseDescription: "Consul v0.7.4 (Go 1.7.5)",
PathPrefix: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5",
ClientSystemMetricsInterpolatedPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-client-system-metrics-interpolated.csv",
ClientLatencyThroughputTimeseriesPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-client-latency-throughput-timeseries.csv",
ClientLatencyDistributionAllPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-client-latency-distribution-all.csv",
ClientLatencyDistributionPercentilePath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-client-latency-distribution-percentile.csv",
ClientLatencyDistributionSummaryPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-client-latency-distribution-summary.csv",
ClientLatencyByKeyNumberPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-client-latency-by-key-number.csv",
ServerMemoryByKeyNumberPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-server-memory-by-key-number.csv",
ServerReadBytesDeltaByKeyNumberPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-server-read-bytes-delta-by-key-number.csv",
ServerWriteBytesDeltaByKeyNumberPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-server-write-bytes-delta-by-key-number.csv",
ServerDiskSpaceUsageSummaryPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-server-disk-space-usage-summary.csv",
ServerSystemMetricsInterpolatedPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-1-server-system-metrics-interpolated.csv",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-2-server-system-metrics-interpolated.csv",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-3-server-system-metrics-interpolated.csv",
},
AllAggregatedOutputPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/consul-v0.7.4-go1.7.5-all-aggregated.csv",
},
},
Analyze: Analyze{
AllAggregatedOutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/all-aggregated.csv",
AllAggregatedOutputPathTXT: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/all-aggregated.txt",
},
PlotPathPrefix: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable",
PlotList: []Plot{
{
Column: "AVG-LATENCY-MS",
XAxis: "Second",
YAxis: "Latency(millisecond)",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-LATENCY-MS.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-LATENCY-MS.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-LATENCY-MS.png",
},
},
{
Column: "AVG-THROUGHPUT",
XAxis: "Second",
YAxis: "Throughput(Requests/Second)",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-THROUGHPUT.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-THROUGHPUT.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-THROUGHPUT.png",
},
},
{
Column: "AVG-VOLUNTARY-CTXT-SWITCHES",
XAxis: "Second",
YAxis: "Voluntary Context Switches",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VOLUNTARY-CTXT-SWITCHES.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VOLUNTARY-CTXT-SWITCHES.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VOLUNTARY-CTXT-SWITCHES.png",
},
},
{
Column: "AVG-NON-VOLUNTARY-CTXT-SWITCHES",
XAxis: "Second",
YAxis: "Non-voluntary Context Switches",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-NON-VOLUNTARY-CTXT-SWITCHES.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-NON-VOLUNTARY-CTXT-SWITCHES.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-NON-VOLUNTARY-CTXT-SWITCHES.png",
},
},
{
Column: "AVG-CPU",
XAxis: "Second",
YAxis: "CPU(%)",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-CPU.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-CPU.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-CPU.png",
},
},
{
Column: "MAX-CPU",
XAxis: "Second",
YAxis: "CPU(%)",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/MAX-CPU.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/MAX-CPU.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/MAX-CPU.png",
},
},
{
Column: "AVG-VMRSS-MB",
XAxis: "Second",
YAxis: "Memory(MB)",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VMRSS-MB.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VMRSS-MB.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VMRSS-MB.png",
},
},
{
Column: "AVG-READS-COMPLETED-DELTA",
XAxis: "Second",
YAxis: "Disk Reads (Delta per Second)",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-READS-COMPLETED-DELTA.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-READS-COMPLETED-DELTA.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-READS-COMPLETED-DELTA.png",
},
},
{
Column: "AVG-SECTORS-READ-DELTA",
XAxis: "Second",
YAxis: "Sectors Read (Delta per Second)",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-SECTORS-READ-DELTA.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-SECTORS-READ-DELTA.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-SECTORS-READ-DELTA.png",
},
},
{
Column: "AVG-WRITES-COMPLETED-DELTA",
XAxis: "Second",
YAxis: "Disk Writes (Delta per Second)",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-WRITES-COMPLETED-DELTA.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-WRITES-COMPLETED-DELTA.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-WRITES-COMPLETED-DELTA.png",
},
},
{
Column: "AVG-SECTORS-WRITTEN-DELTA",
XAxis: "Second",
YAxis: "Sectors Written (Delta per Second)",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-SECTORS-WRITTEN-DELTA.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-SECTORS-WRITTEN-DELTA.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-SECTORS-WRITTEN-DELTA.png",
},
},
{
Column: "AVG-READ-BYTES-DELTA",
XAxis: "Second",
YAxis: "Read Bytes (Delta per Second)",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-READ-BYTES-DELTA.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-READ-BYTES-DELTA.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-READ-BYTES-DELTA.png",
},
},
{
Column: "AVG-WRITE-BYTES-DELTA",
XAxis: "Second",
YAxis: "Write Bytes (Delta per Second)",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-WRITE-BYTES-DELTA.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-WRITE-BYTES-DELTA.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-WRITE-BYTES-DELTA.png",
},
},
{
Column: "AVG-RECEIVE-BYTES-NUM-DELTA",
XAxis: "Second",
YAxis: "Network Receive(bytes) (Delta per Second)",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-RECEIVE-BYTES-NUM-DELTA.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-RECEIVE-BYTES-NUM-DELTA.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-RECEIVE-BYTES-NUM-DELTA.png",
},
},
{
Column: "AVG-TRANSMIT-BYTES-NUM-DELTA",
XAxis: "Second",
YAxis: "Network Transmit(bytes) (Delta per Second)",
OutputPathCSV: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-TRANSMIT-BYTES-NUM-DELTA.csv",
OutputPathList: []string{
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-TRANSMIT-BYTES-NUM-DELTA.svg",
"2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-TRANSMIT-BYTES-NUM-DELTA.png",
},
},
},
README: README{
OutputPath: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/README.md",
Images: []Image{
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-LATENCY-MS",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-LATENCY-MS.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-LATENCY-MS-BY-KEY",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-LATENCY-MS-BY-KEY.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-LATENCY-MS-BY-KEY-ERROR-POINTS",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-LATENCY-MS-BY-KEY-ERROR-POINTS.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-THROUGHPUT",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-THROUGHPUT.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VOLUNTARY-CTXT-SWITCHES",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VOLUNTARY-CTXT-SWITCHES.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-NON-VOLUNTARY-CTXT-SWITCHES",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-NON-VOLUNTARY-CTXT-SWITCHES.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-CPU",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-CPU.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/MAX-CPU",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/MAX-CPU.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VMRSS-MB",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VMRSS-MB.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VMRSS-MB-BY-KEY",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VMRSS-MB-BY-KEY.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VMRSS-MB-BY-KEY-ERROR-POINTS",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-VMRSS-MB-BY-KEY-ERROR-POINTS.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-READS-COMPLETED-DELTA",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-READS-COMPLETED-DELTA.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-SECTORS-READ-DELTA",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-SECTORS-READ-DELTA.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-WRITES-COMPLETED-DELTA",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-WRITES-COMPLETED-DELTA.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-SECTORS-WRITTEN-DELTA",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-SECTORS-WRITTEN-DELTA.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-READ-BYTES-DELTA",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-READ-BYTES-DELTA.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-WRITE-BYTES-DELTA",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-WRITE-BYTES-DELTA.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-RECEIVE-BYTES-NUM-DELTA",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-RECEIVE-BYTES-NUM-DELTA.svg",
Type: "remote",
},
{
Title: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-TRANSMIT-BYTES-NUM-DELTA",
Path: "https://storage.googleapis.com/dbtester-results/2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable/AVG-TRANSMIT-BYTES-NUM-DELTA.svg",
Type: "remote",
},
},
},
}
if !reflect.DeepEqual(cfg, expected) {
t.Fatalf("configuration expected\n%+v\n, got\n%+v\n", expected, cfg)
}
req1, err := cfg.ToRequest("etcdv3", dbtesterpb.Request_Start, 0)
if err != nil {
t.Fatal(err)
}
expected1 := &dbtesterpb.Request{
Operation: dbtesterpb.Request_Start,
TriggerLogUpload: true,
DatabaseID: dbtesterpb.Request_etcdv3,
DatabaseTag: "etcd-v3.1-go1.7.5",
PeerIPsString: "10.240.0.20___10.240.0.21___10.240.0.22",
IpIndex: 0,
CurrentClientNumber: 0,
Control: &dbtesterpb.Request_Control{
GoogleCloudProjectName: "etcd-development",
GoogleCloudStorageKey: "test-key",
GoogleCloudStorageBucketName: "dbtester-results",
GoogleCloudStorageSubDirectory: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable",
},
Etcdv3Config: &dbtesterpb.Request_Etcdv3{
SnapCount: 100000,
QuotaSizeBytes: 8000000000,
},
}
if !reflect.DeepEqual(req1, expected1) {
t.Fatalf("configuration expected\n%+v\n, got\n%+v\n", expected1, req1)
}
req2, err := cfg.ToRequest("zookeeper", dbtesterpb.Request_Start, 2)
if err != nil {
t.Fatal(err)
}
expected2 := &dbtesterpb.Request{
Operation: dbtesterpb.Request_Start,
TriggerLogUpload: true,
DatabaseID: dbtesterpb.Request_zookeeper,
DatabaseTag: "zookeeper-r3.4.9-java8",
PeerIPsString: "10.240.0.25___10.240.0.27___10.240.0.28",
IpIndex: 2,
CurrentClientNumber: 0,
Control: &dbtesterpb.Request_Control{
GoogleCloudProjectName: "etcd-development",
GoogleCloudStorageKey: "test-key",
GoogleCloudStorageBucketName: "dbtester-results",
GoogleCloudStorageSubDirectory: "2017Q1-00-etcd-zookeeper-consul/01-write-1M-keys-client-variable",
},
ZookeeperConfig: &dbtesterpb.Request_Zookeeper{
MyID: 3,
TickTime: 2000,
ClientPort: 2181,
InitLimit: 5,
SyncLimit: 5,
SnapCount: 100000,
MaxClientConnections: 5000,
},
}
if !reflect.DeepEqual(req2, expected2) {
t.Fatalf("configuration expected\n%+v\n, got\n%+v\n", expected2, req2)
}
}