Documentation ¶
Index ¶
- Constants
- func GetLogger(module string) *logging.Logger
- func InitLog() string
- type AggData
- type Blockchain
- type Context
- type Data
- type DataType
- type Invoke
- type Latency
- type Option
- type Query
- type RemoteStatistic
- type Report
- type Result
- type Statistic
- type Status
- type Transfer
- type TxContext
- type TxIndex
- type VMContext
Constants ¶
View Source
const ( BenchmarkDirPath = "__BenchmarkDirPath__" BenchmarkArchivePath = "__BenchmarkArchivePath__" )
config path
View Source
const ( WorkerPath = "worker" WorkerCapPath = "worker.cap" )
worker
View Source
const ( CollectorSummaryMode = "summary" CollectorDetailsMode = "details" )
collector mode
View Source
const ( EnginePath = "engine" EngineRatePath = "engine.rate" EngineDurationPath = "engine.duration" EngineCapPath = "engine.cap" EngineURLsPath = "engine.urls" )
engine
View Source
const ( ClientScriptPath = "client.script" ClientTypePath = "client.type" ClientConfigPath = "client.config" ClientContractPath = "client.contract" ClientContractArgsPath = "client.args" ClientOptionPath = "client.options" ClientPluginPath = "client.plugin" )
client
View Source
const ( // RecorderCsvPath = "recorder.csv" RecorderCsvDirPath = "recorder.csv.dir" // log LogLevelPath = "recorder.log.level" LogDirPath = "recorder.log.dir" LogDumpPath = "recorder.log.dump" )
recorder
View Source
const ( InvalidLabel = "" BuiltinTransferLabel = "__transfer" InvalidUID = "0x0" )
Builtin
View Source
const (
CollectorModePath = "collector.mode"
)
collector
View Source
const (
WorkersPath = "workers"
)
workers
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AggData ¶
type AggData struct { // key Label string Time int64 Duration int64 // request Num int Statuses map[Status]int // latency Send Latency Confirm Latency Write Latency }
AggData aggregation data.
type Blockchain ¶
type Blockchain interface { // DeployContract should deploy contract with config file DeployContract() error // Invoke just invoke the contract Invoke(Invoke, ...Option) *Result // Transfer a amount of money from a account to the other one Transfer(Transfer, ...Option) *Result // Confirm check the result of `Invoke` or `Transfer` Confirm(*Result, ...Option) *Result // Query do some query Query(Query, ...Option) interface{} // Option pass the options to affect the action of client Option(Option) error // GetContext Generate TxContext based on New/Init/DeployContract // GetContext will only be run in master // return the information how to invoke the contract, maybe include // contract address, abi or so. // the return value will be send to worker to tell them how to invoke the contract GetContext() (string, error) // SetContext set test context into go client // SetContext will be run once per worker SetContext(ctx string) error // ResetContext reset test group context in go client ResetContext() error // Statistic query the statistics information in the time interval defined by // nanosecond-level timestamps `from` and `to` Statistic(statistic Statistic) (*RemoteStatistic, error) // LogStatus records blockheight and time LogStatus() (int64, error) }
Blockchain define the service need provided in blockchain.
type Data ¶
type Data struct { // Type data type. Type DataType // Results the slice of AggData. Results []AggData }
Data define the data which will be reported.
type Invoke ¶
type Invoke struct { Func string `mapstructure:"func"` Args []interface{} `mapstructure:"args"` }
Invoke define need filed for invoke contract.
type Latency ¶
type Latency struct { Avg int64 // Avg is the average latency P0 int64 // P0 is the minimal latency P50 int64 // P50 is the median of latency P90 int64 // P90 is the latency exactly larger than 90% P95 int64 // P90 is the latency exactly larger than 95% P99 int64 // P99 is the latency exactly larger than 95% P100 int64 // P100 is the maximal latency }
Latency is the percent of latency in increase order
type Query ¶
type Query struct { Func string `mapstructure:"func"` Args []interface{} `mapstructure:"args"` }
Query define need filed for query info.
type RemoteStatistic ¶
type RemoteStatistic struct { // time info Start int64 End int64 // block info BlockNum int // transaction info of blockchain TxNum int // tps of blockchain CTps float64 // bps of blockchain Bps float64 // sent transaction info SentTx int64 // missed transaction info MissedTx int64 // tps of system Tps float64 }
RemoteStatistic remote statistic data.
type Result ¶
type Result struct { // Label is the group name of sent transaction Label string `mapstructure:"label"` // UID is the unique id of sent transaction UID string `mapstructure:"uid"` // BuildTime is the client start time when client constructs transaction BuildTime int64 `mapstructure:"build"` // SendTime is the client time when client receives transaction response SendTime int64 `mapstructure:"send"` // ConfirmTime is the client time when client check transaction is written in block stably ConfirmTime int64 `mapstructure:"confirm"` // WriteTime is the node time when transaction is written in block stably WriteTime int64 `mapstructure:"write"` // Status marks the status of transaction Status Status `mapstructure:"status"` // Ret is the return value of transaction Ret []interface{} `mapstructure:"ret"` }
Result define the filed for describe tx invoke result.
type Status ¶
type Status string
Status tx execute status.
const ( // Failure means client sent transaction unsuccessfully Failure Status = "failure" // Success means client sent transaction successfully Success Status = "success" // Unknown means sent transaction isn't written in block stably for asynchronous processing Unknown Status = "unknown" // Confirm means sent transaction is written in block stably for asynchronous processing Confirm Status = "confirm" )
type Transfer ¶
type Transfer struct { From string `mapstructure:"from"` To string `mapstructure:"to"` Amount int64 `mapstructure:"amount"` Extra string `mapstructure:"extra"` }
Transfer define need filed for transfer.
type TxIndex ¶
type TxIndex struct { EngineIdx int64 // EngineIdx is the index of engine (maybe support multiple test stage in future) TxIdx int64 // TxIdx is the index of sent transaction MissIdx int64 // MissIdx is the index of missed transaction }
TxIndex is the unique index of a transaction (`vm.Run`)
Click to show internal directories.
Click to hide internal directories.