benchmark

package module
v0.0.0-...-f702d8d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 21, 2024 License: BSD-3-Clause Imports: 10 Imported by: 0

README

This directory contains code uses to measure the performance of the Vanadium RPC stack.


This benchmarks use Go's testing package to run benchmarks. Each benchmark involves one server and one client. The server has two very simple methods that echo the data received from the client back to the client.

  • client ---- Echo(payload) ----> server
  • client <--- return payload ---- server

There are two versions of the Echo method:

  • Echo(payload []byte) ([]byte], error)
  • EchoStream() <[]byte,[]byte> error

Microbenchmarks

benchmark_test.go

The first benchmarks use the non-streaming version of Echo with a varying payload size. The second benchmarks use the streaming version with varying number of chunks and payload sizes. The third one is for measuring the performance with multiple clients hosted in the same process.

This test creates a VC before the benchmark begins. So, the VC creation overhead is excluded.

$ go test -bench=. -timeout=1h -cpu=1 -benchtime=5s v.io/x/ref/runtime/internal/rpc/benchmark
PASS
Benchmark____1B     1000           8301357 ns/op           0.00 MB/s
--- Histogram (unit: ms)
        Count: 1000  Min: 7  Max: 17  Avg: 7.89
        ------------------------------------------------------------
        [  7,   8)   505   50.5%   50.5%  #####
        [  8,   9)   389   38.9%   89.4%  ####
        [  9,  10)    38    3.8%   93.2%
        [ 10,  11)    12    1.2%   94.4%
        [ 11,  12)     4    0.4%   94.8%
        [ 12,  14)    19    1.9%   96.7%
        [ 14,  16)    23    2.3%   99.0%
        [ 16,  18)    10    1.0%  100.0%
        [ 18,  21)     0    0.0%  100.0%
        [ 21,  24)     0    0.0%  100.0%
        [ 24, inf)     0    0.0%  100.0%
Benchmark___10B     1000           8587341 ns/op           0.00 MB/s
...

RESULTS.txt has the full benchmark results.

summary/summary_test.go

summary/summary_test.go is a subset of the benchmarks, useful as a summary or for profiling

$ go test ./summary -bench=. -cpu=1 --benchtime=5s
goos: darwin
goarch: arm64
pkg: v.io/x/ref/runtime/internal/rpc/benchmark/summary
Benchmark_______ConnectionSetup 	    3417	   1693263 ns/op	  436867 B/op	    3256 allocs/op
Benchmark__Echo____________10KB 	   28634	    200038 ns/op	  99.98 MB/s	  100244 B/op	     266 allocs/op
Benchmark__Echo________Rnd_10KB 	   42354	    136990 ns/op	  72.09 MB/s	   67072 B/op	     266 allocs/op
Benchmark__Echo_Stream_____10KB 	    3936	   1497904 ns/op	 133.52 MB/s	  485573 B/op	     593 allocs/op
Benchmark__Echo_Stream____500KB 	      82	  64262437 ns/op	 155.61 MB/s	23011672 B/op	    1901 allocs/op
Benchmark__Echo_Stream______1MB 	      45	 123879699 ns/op	 161.45 MB/s	45711371 B/op	    3173 allocs/op
Benchmark__Echo_Stream__Rnd_1MB 	      91	  62023993 ns/op	 165.54 MB/s	23930527 B/op	    1936 allocs/op
PASS
ok  	v.io/x/ref/runtime/internal/rpc/benchmark/summary	53.321s

Client/Server

{benchmark,benchmarkd}/main.go

benchmarkd/main.go and benchmark/main.go are simple command-line tools to run the benchmark server and client as separate processes. Unlike the benchmarks above, this test includes the startup cost of name resolution, creating the VC, etc. in the first RPC.

$ go run benchmarkd/main.go \
  -v23.tcp.address=localhost:8888 -v23.permissions.literal='{"Read": {"In": ["..."]}}'

(In a different shell)

$ go run benchmark/main.go \
  -server=/localhost:8888 -iterations=100 -chunk_count=0 -payload_size=10
iterations: 100  chunk_count: 0  payload_size: 10
elapsed time: 1.369034277s
Histogram (unit: ms)
Count: 100  Min: 7  Max: 94  Avg: 13.17
------------------------------------------------------------
[  7,   8)    1    1.0%    1.0%
[  8,   9)    4    4.0%    5.0%
[  9,  10)   17   17.0%   22.0%  ##
[ 10,  12)   24   24.0%   46.0%  ##
[ 12,  15)   24   24.0%   70.0%  ##
[ 15,  19)   28   28.0%   98.0%  ###
[ 19,  24)    1    1.0%   99.0%
[ 24,  32)    0    0.0%   99.0%
[ 32,  42)    0    0.0%   99.0%
[ 42,  56)    0    0.0%   99.0%
[ 56,  75)    0    0.0%   99.0%
[ 75, 101)    1    1.0%  100.0%
[101, 136)    0    0.0%  100.0%
[136, 183)    0    0.0%  100.0%
[183, 247)    0    0.0%  100.0%
[247, 334)    0    0.0%  100.0%
[334, inf)    0    0.0%  100.0%

Raspberry Pi:

On a Raspberry Pi, everything is much slower. The same tests show the following results.

$ ./main
RPC Connection  1765.47 ms/rpc
RPC (echo 1000B)  78.61 ms/rpc (12.72 qps)
RPC Streaming (echo 1000B)  23.85 ms/rpc
RPC Streaming Throughput (echo 1MB) 0.92 MB/s

On a Raspberry Pi 2,

$ ./main
RPC Connection  847.41 ms/rpc
RPC (echo 1000B)  16.47 ms/rpc (60.71 qps)
RPC Streaming (echo 1000B)  3.33 ms/rpc
RPC Streaming Throughput (echo 1MB) 2.31 MB/s

Documentation

Overview

This file was auto-generated by the vanadium vdl tool. Package: benchmark package benchmark provides simple tools to measure the performance of the IPC system.

Index

Constants

This section is empty.

Variables

View Source
var BenchmarkDesc rpc.InterfaceDesc = descBenchmark

BenchmarkDesc describes the Benchmark interface.

Functions

This section is empty.

Types

type BenchmarkClientMethods

type BenchmarkClientMethods interface {
	// Echo returns the payload that it receives.
	Echo(_ *context.T, Payload []byte, _ ...rpc.CallOpt) ([]byte, error)
	// EchoStream returns the payload that it receives via the stream.
	EchoStream(*context.T, ...rpc.CallOpt) (BenchmarkEchoStreamClientCall, error)
}

BenchmarkClientMethods is the client interface containing Benchmark methods.

type BenchmarkClientStub

type BenchmarkClientStub interface {
	BenchmarkClientMethods
}

BenchmarkClientStub embeds BenchmarkClientMethods and is a placeholder for additional management operations.

func BenchmarkClient

func BenchmarkClient(name string) BenchmarkClientStub

BenchmarkClient returns a client stub for Benchmark.

type BenchmarkEchoStreamClientCall

type BenchmarkEchoStreamClientCall interface {
	BenchmarkEchoStreamClientStream
	// Finish performs the equivalent of SendStream().Close, then blocks until
	// the server is done, and returns the positional return values for the call.
	//
	// Finish returns immediately if the call has been canceled; depending on the
	// timing the output could either be an error signaling cancelation, or the
	// valid positional return values from the server.
	//
	// Calling Finish is mandatory for releasing stream resources, unless the call
	// has been canceled or any of the other methods return an error.  Finish should
	// be called at most once.
	Finish() error
}

BenchmarkEchoStreamClientCall represents the call returned from Benchmark.EchoStream.

type BenchmarkEchoStreamClientStream

type BenchmarkEchoStreamClientStream interface {
	// RecvStream returns the receiver side of the Benchmark.EchoStream client stream.
	RecvStream() interface {
		// Advance stages an item so that it may be retrieved via Value.  Returns
		// true iff there is an item to retrieve.  Advance must be called before
		// Value is called.  May block if an item is not available.
		Advance() bool
		// Value returns the item that was staged by Advance.  May panic if Advance
		// returned false or was not called.  Never blocks.
		Value() []byte
		// Err returns any error encountered by Advance.  Never blocks.
		Err() error
	}
	// SendStream returns the send side of the Benchmark.EchoStream client stream.
	SendStream() interface {
		// Send places the item onto the output stream.  Returns errors
		// encountered while sending, or if Send is called after Close or
		// the stream has been canceled.  Blocks if there is no buffer
		// space; will unblock when buffer space is available or after
		// the stream has been canceled.
		Send(item []byte) error
		// Close indicates to the server that no more items will be sent;
		// server Recv calls will receive io.EOF after all sent items.
		// This is an optional call - e.g. a client might call Close if it
		// needs to continue receiving items from the server after it's
		// done sending.  Returns errors encountered while closing, or if
		// Close is called after the stream has been canceled.  Like Send,
		// blocks if there is no buffer space available.
		Close() error
	}
}

BenchmarkEchoStreamClientStream is the client stream for Benchmark.EchoStream.

type BenchmarkEchoStreamServerCall

type BenchmarkEchoStreamServerCall interface {
	rpc.ServerCall
	BenchmarkEchoStreamServerStream
}

BenchmarkEchoStreamServerCall represents the context passed to Benchmark.EchoStream.

type BenchmarkEchoStreamServerCallStub

type BenchmarkEchoStreamServerCallStub struct {
	rpc.StreamServerCall
	// contains filtered or unexported fields
}

BenchmarkEchoStreamServerCallStub is a wrapper that converts rpc.StreamServerCall into a typesafe stub that implements BenchmarkEchoStreamServerCall.

func (*BenchmarkEchoStreamServerCallStub) Init

Init initializes BenchmarkEchoStreamServerCallStub from rpc.StreamServerCall.

func (*BenchmarkEchoStreamServerCallStub) RecvStream

func (s *BenchmarkEchoStreamServerCallStub) RecvStream() interface {
	Advance() bool
	Value() []byte
	Err() error
}

RecvStream returns the receiver side of the Benchmark.EchoStream server stream.

func (*BenchmarkEchoStreamServerCallStub) SendStream

func (s *BenchmarkEchoStreamServerCallStub) SendStream() interface {
	Send(item []byte) error
}

SendStream returns the send side of the Benchmark.EchoStream server stream.

type BenchmarkEchoStreamServerStream

type BenchmarkEchoStreamServerStream interface {
	// RecvStream returns the receiver side of the Benchmark.EchoStream server stream.
	RecvStream() interface {
		// Advance stages an item so that it may be retrieved via Value.  Returns
		// true iff there is an item to retrieve.  Advance must be called before
		// Value is called.  May block if an item is not available.
		Advance() bool
		// Value returns the item that was staged by Advance.  May panic if Advance
		// returned false or was not called.  Never blocks.
		Value() []byte
		// Err returns any error encountered by Advance.  Never blocks.
		Err() error
	}
	// SendStream returns the send side of the Benchmark.EchoStream server stream.
	SendStream() interface {
		// Send places the item onto the output stream.  Returns errors encountered
		// while sending.  Blocks if there is no buffer space; will unblock when
		// buffer space is available.
		Send(item []byte) error
	}
}

BenchmarkEchoStreamServerStream is the server stream for Benchmark.EchoStream.

type BenchmarkServerMethods

type BenchmarkServerMethods interface {
	// Echo returns the payload that it receives.
	Echo(_ *context.T, _ rpc.ServerCall, Payload []byte) ([]byte, error)
	// EchoStream returns the payload that it receives via the stream.
	EchoStream(*context.T, BenchmarkEchoStreamServerCall) error
}

BenchmarkServerMethods is the interface a server writer implements for Benchmark.

type BenchmarkServerStub

type BenchmarkServerStub interface {
	BenchmarkServerStubMethods
	// DescribeInterfaces the Benchmark interfaces.
	Describe__() []rpc.InterfaceDesc
}

BenchmarkServerStub adds universal methods to BenchmarkServerStubMethods.

func BenchmarkServer

func BenchmarkServer(impl BenchmarkServerMethods) BenchmarkServerStub

BenchmarkServer returns a server stub for Benchmark. It converts an implementation of BenchmarkServerMethods into an object that may be used by rpc.Server.

type BenchmarkServerStubMethods

type BenchmarkServerStubMethods interface {
	// Echo returns the payload that it receives.
	Echo(_ *context.T, _ rpc.ServerCall, Payload []byte) ([]byte, error)
	// EchoStream returns the payload that it receives via the stream.
	EchoStream(*context.T, *BenchmarkEchoStreamServerCallStub) error
}

BenchmarkServerStubMethods is the server interface containing Benchmark methods, as expected by rpc.Server. The only difference between this interface and BenchmarkServerMethods is the streaming methods.

type Caveat

type Caveat struct {
	Id       []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	ParamVom []byte `protobuf:"bytes,2,opt,name=paramVom,proto3" json:"paramVom,omitempty"`
	// contains filtered or unexported fields
}

func (*Caveat) Descriptor deprecated

func (*Caveat) Descriptor() ([]byte, []int)

Deprecated: Use Caveat.ProtoReflect.Descriptor instead.

func (*Caveat) GetId

func (x *Caveat) GetId() []byte

func (*Caveat) GetParamVom

func (x *Caveat) GetParamVom() []byte

func (*Caveat) ProtoMessage

func (*Caveat) ProtoMessage()

func (*Caveat) ProtoReflect

func (x *Caveat) ProtoReflect() protoreflect.Message

func (*Caveat) Reset

func (x *Caveat) Reset()

func (*Caveat) String

func (x *Caveat) String() string

type Certificate

type Certificate struct {
	Extension string     `protobuf:"bytes,1,opt,name=extension,proto3" json:"extension,omitempty"`
	PublicKey []byte     `protobuf:"bytes,2,opt,name=publicKey,proto3" json:"publicKey,omitempty"`
	Caveats   []*Caveat  `protobuf:"bytes,3,rep,name=caveats,proto3" json:"caveats,omitempty"`
	Signature *Signature `protobuf:"bytes,4,opt,name=signature,proto3" json:"signature,omitempty"`
	// contains filtered or unexported fields
}

func (*Certificate) Descriptor deprecated

func (*Certificate) Descriptor() ([]byte, []int)

Deprecated: Use Certificate.ProtoReflect.Descriptor instead.

func (*Certificate) GetCaveats

func (x *Certificate) GetCaveats() []*Caveat

func (*Certificate) GetExtension

func (x *Certificate) GetExtension() string

func (*Certificate) GetPublicKey

func (x *Certificate) GetPublicKey() []byte

func (*Certificate) GetSignature

func (x *Certificate) GetSignature() *Signature

func (*Certificate) ProtoMessage

func (*Certificate) ProtoMessage()

func (*Certificate) ProtoReflect

func (x *Certificate) ProtoReflect() protoreflect.Message

func (*Certificate) Reset

func (x *Certificate) Reset()

func (*Certificate) String

func (x *Certificate) String() string

type CertificateChain

type CertificateChain struct {
	Certificates []*Certificate `protobuf:"bytes,1,rep,name=certificates,proto3" json:"certificates,omitempty"`
	// contains filtered or unexported fields
}

func (*CertificateChain) Descriptor deprecated

func (*CertificateChain) Descriptor() ([]byte, []int)

Deprecated: Use CertificateChain.ProtoReflect.Descriptor instead.

func (*CertificateChain) GetCertificates

func (x *CertificateChain) GetCertificates() []*Certificate

func (*CertificateChain) ProtoMessage

func (*CertificateChain) ProtoMessage()

func (*CertificateChain) ProtoReflect

func (x *CertificateChain) ProtoReflect() protoreflect.Message

func (*CertificateChain) Reset

func (x *CertificateChain) Reset()

func (*CertificateChain) String

func (x *CertificateChain) String() string

type RpcRequest

type RpcRequest struct {
	Suffix           string                 `protobuf:"bytes,1,opt,name=suffix,proto3" json:"suffix,omitempty"`
	Method           string                 `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"`
	NumPosArgs       uint64                 `protobuf:"varint,3,opt,name=numPosArgs,proto3" json:"numPosArgs,omitempty"`
	EndStreamArgs    bool                   `protobuf:"varint,4,opt,name=endStreamArgs,proto3" json:"endStreamArgs,omitempty"`
	Deadline         *TimeWireDeadline      `protobuf:"bytes,5,opt,name=deadline,proto3" json:"deadline,omitempty"`
	GrantedBlessings *SecurityWireBlessings `protobuf:"bytes,6,opt,name=grantedBlessings,proto3" json:"grantedBlessings,omitempty"`
	TraceRequest     *VtraceRequest         `protobuf:"bytes,7,opt,name=traceRequest,proto3" json:"traceRequest,omitempty"`
	Language         string                 `protobuf:"bytes,8,opt,name=language,proto3" json:"language,omitempty"`
	// contains filtered or unexported fields
}

func (*RpcRequest) Descriptor deprecated

func (*RpcRequest) Descriptor() ([]byte, []int)

Deprecated: Use RpcRequest.ProtoReflect.Descriptor instead.

func (*RpcRequest) GetDeadline

func (x *RpcRequest) GetDeadline() *TimeWireDeadline

func (*RpcRequest) GetEndStreamArgs

func (x *RpcRequest) GetEndStreamArgs() bool

func (*RpcRequest) GetGrantedBlessings

func (x *RpcRequest) GetGrantedBlessings() *SecurityWireBlessings

func (*RpcRequest) GetLanguage

func (x *RpcRequest) GetLanguage() string

func (*RpcRequest) GetMethod

func (x *RpcRequest) GetMethod() string

func (*RpcRequest) GetNumPosArgs

func (x *RpcRequest) GetNumPosArgs() uint64

func (*RpcRequest) GetSuffix

func (x *RpcRequest) GetSuffix() string

func (*RpcRequest) GetTraceRequest

func (x *RpcRequest) GetTraceRequest() *VtraceRequest

func (*RpcRequest) ProtoMessage

func (*RpcRequest) ProtoMessage()

func (*RpcRequest) ProtoReflect

func (x *RpcRequest) ProtoReflect() protoreflect.Message

func (*RpcRequest) Reset

func (x *RpcRequest) Reset()

func (*RpcRequest) String

func (x *RpcRequest) String() string

type RpcResponse

type RpcResponse struct {
	Error            *string         `protobuf:"bytes,1,opt,name=error,proto3,oneof" json:"error,omitempty"`
	EndStreamResults bool            `protobuf:"varint,2,opt,name=endStreamResults,proto3" json:"endStreamResults,omitempty"`
	NumPosResults    uint64          `protobuf:"varint,3,opt,name=numPosResults,proto3" json:"numPosResults,omitempty"`
	TraceResponse    *VtraceResponse `protobuf:"bytes,4,opt,name=traceResponse,proto3" json:"traceResponse,omitempty"`
	AckBlessings     bool            `protobuf:"varint,5,opt,name=ackBlessings,proto3" json:"ackBlessings,omitempty"`
	// contains filtered or unexported fields
}

func (*RpcResponse) Descriptor deprecated

func (*RpcResponse) Descriptor() ([]byte, []int)

Deprecated: Use RpcResponse.ProtoReflect.Descriptor instead.

func (*RpcResponse) GetAckBlessings

func (x *RpcResponse) GetAckBlessings() bool

func (*RpcResponse) GetEndStreamResults

func (x *RpcResponse) GetEndStreamResults() bool

func (*RpcResponse) GetError

func (x *RpcResponse) GetError() string

func (*RpcResponse) GetNumPosResults

func (x *RpcResponse) GetNumPosResults() uint64

func (*RpcResponse) GetTraceResponse

func (x *RpcResponse) GetTraceResponse() *VtraceResponse

func (*RpcResponse) ProtoMessage

func (*RpcResponse) ProtoMessage()

func (*RpcResponse) ProtoReflect

func (x *RpcResponse) ProtoReflect() protoreflect.Message

func (*RpcResponse) Reset

func (x *RpcResponse) Reset()

func (*RpcResponse) String

func (x *RpcResponse) String() string

type SecurityWireBlessings

type SecurityWireBlessings struct {
	CertificateChains []*CertificateChain `protobuf:"bytes,1,rep,name=certificateChains,proto3" json:"certificateChains,omitempty"`
	// contains filtered or unexported fields
}

func (*SecurityWireBlessings) Descriptor deprecated

func (*SecurityWireBlessings) Descriptor() ([]byte, []int)

Deprecated: Use SecurityWireBlessings.ProtoReflect.Descriptor instead.

func (*SecurityWireBlessings) GetCertificateChains

func (x *SecurityWireBlessings) GetCertificateChains() []*CertificateChain

func (*SecurityWireBlessings) ProtoMessage

func (*SecurityWireBlessings) ProtoMessage()

func (*SecurityWireBlessings) ProtoReflect

func (x *SecurityWireBlessings) ProtoReflect() protoreflect.Message

func (*SecurityWireBlessings) Reset

func (x *SecurityWireBlessings) Reset()

func (*SecurityWireBlessings) String

func (x *SecurityWireBlessings) String() string

type Signature

type Signature struct {
	Purpose []byte `protobuf:"bytes,1,opt,name=purpose,proto3" json:"purpose,omitempty"`
	Hash    string `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
	R       []byte `protobuf:"bytes,3,opt,name=r,proto3" json:"r,omitempty"`
	S       []byte `protobuf:"bytes,4,opt,name=s,proto3" json:"s,omitempty"`
	// contains filtered or unexported fields
}

func (*Signature) Descriptor deprecated

func (*Signature) Descriptor() ([]byte, []int)

Deprecated: Use Signature.ProtoReflect.Descriptor instead.

func (*Signature) GetHash

func (x *Signature) GetHash() string

func (*Signature) GetPurpose

func (x *Signature) GetPurpose() []byte

func (*Signature) GetR

func (x *Signature) GetR() []byte

func (*Signature) GetS

func (x *Signature) GetS() []byte

func (*Signature) ProtoMessage

func (*Signature) ProtoMessage()

func (*Signature) ProtoReflect

func (x *Signature) ProtoReflect() protoreflect.Message

func (*Signature) Reset

func (x *Signature) Reset()

func (*Signature) String

func (x *Signature) String() string

type TimeDuration

type TimeDuration struct {
	Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"`
	Nanos   int64 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"`
	// contains filtered or unexported fields
}

func (*TimeDuration) Descriptor deprecated

func (*TimeDuration) Descriptor() ([]byte, []int)

Deprecated: Use TimeDuration.ProtoReflect.Descriptor instead.

func (*TimeDuration) GetNanos

func (x *TimeDuration) GetNanos() int64

func (*TimeDuration) GetSeconds

func (x *TimeDuration) GetSeconds() int64

func (*TimeDuration) ProtoMessage

func (*TimeDuration) ProtoMessage()

func (*TimeDuration) ProtoReflect

func (x *TimeDuration) ProtoReflect() protoreflect.Message

func (*TimeDuration) Reset

func (x *TimeDuration) Reset()

func (*TimeDuration) String

func (x *TimeDuration) String() string

type TimeTime

type TimeTime struct {
	Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"`
	Nanos   int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"`
	// contains filtered or unexported fields
}

func (*TimeTime) Descriptor deprecated

func (*TimeTime) Descriptor() ([]byte, []int)

Deprecated: Use TimeTime.ProtoReflect.Descriptor instead.

func (*TimeTime) GetNanos

func (x *TimeTime) GetNanos() int32

func (*TimeTime) GetSeconds

func (x *TimeTime) GetSeconds() int64

func (*TimeTime) ProtoMessage

func (*TimeTime) ProtoMessage()

func (*TimeTime) ProtoReflect

func (x *TimeTime) ProtoReflect() protoreflect.Message

func (*TimeTime) Reset

func (x *TimeTime) Reset()

func (*TimeTime) String

func (x *TimeTime) String() string

type TimeWireDeadline

type TimeWireDeadline struct {
	FromNow    *TimeDuration `protobuf:"bytes,1,opt,name=fromNow,proto3" json:"fromNow,omitempty"`
	NoDeadline bool          `protobuf:"varint,2,opt,name=noDeadline,proto3" json:"noDeadline,omitempty"`
	// contains filtered or unexported fields
}

func (*TimeWireDeadline) Descriptor deprecated

func (*TimeWireDeadline) Descriptor() ([]byte, []int)

Deprecated: Use TimeWireDeadline.ProtoReflect.Descriptor instead.

func (*TimeWireDeadline) GetFromNow

func (x *TimeWireDeadline) GetFromNow() *TimeDuration

func (*TimeWireDeadline) GetNoDeadline

func (x *TimeWireDeadline) GetNoDeadline() bool

func (*TimeWireDeadline) ProtoMessage

func (*TimeWireDeadline) ProtoMessage()

func (*TimeWireDeadline) ProtoReflect

func (x *TimeWireDeadline) ProtoReflect() protoreflect.Message

func (*TimeWireDeadline) Reset

func (x *TimeWireDeadline) Reset()

func (*TimeWireDeadline) String

func (x *TimeWireDeadline) String() string

type VtraceAnnotation

type VtraceAnnotation struct {
	When *TimeTime `protobuf:"bytes,1,opt,name=when,proto3" json:"when,omitempty"`
	Msg  string    `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"`
	// contains filtered or unexported fields
}

func (*VtraceAnnotation) Descriptor deprecated

func (*VtraceAnnotation) Descriptor() ([]byte, []int)

Deprecated: Use VtraceAnnotation.ProtoReflect.Descriptor instead.

func (*VtraceAnnotation) GetMsg

func (x *VtraceAnnotation) GetMsg() string

func (*VtraceAnnotation) GetWhen

func (x *VtraceAnnotation) GetWhen() *TimeTime

func (*VtraceAnnotation) ProtoMessage

func (*VtraceAnnotation) ProtoMessage()

func (*VtraceAnnotation) ProtoReflect

func (x *VtraceAnnotation) ProtoReflect() protoreflect.Message

func (*VtraceAnnotation) Reset

func (x *VtraceAnnotation) Reset()

func (*VtraceAnnotation) String

func (x *VtraceAnnotation) String() string

type VtraceRequest

type VtraceRequest struct {
	SpanId   []byte `protobuf:"bytes,1,opt,name=spanId,proto3" json:"spanId,omitempty"`
	TraceId  []byte `protobuf:"bytes,2,opt,name=traceId,proto3" json:"traceId,omitempty"`
	Flags    int32  `protobuf:"varint,3,opt,name=flags,proto3" json:"flags,omitempty"`
	LogLevel int32  `protobuf:"varint,4,opt,name=logLevel,proto3" json:"logLevel,omitempty"`
	// contains filtered or unexported fields
}

func (*VtraceRequest) Descriptor deprecated

func (*VtraceRequest) Descriptor() ([]byte, []int)

Deprecated: Use VtraceRequest.ProtoReflect.Descriptor instead.

func (*VtraceRequest) GetFlags

func (x *VtraceRequest) GetFlags() int32

func (*VtraceRequest) GetLogLevel

func (x *VtraceRequest) GetLogLevel() int32

func (*VtraceRequest) GetSpanId

func (x *VtraceRequest) GetSpanId() []byte

func (*VtraceRequest) GetTraceId

func (x *VtraceRequest) GetTraceId() []byte

func (*VtraceRequest) ProtoMessage

func (*VtraceRequest) ProtoMessage()

func (*VtraceRequest) ProtoReflect

func (x *VtraceRequest) ProtoReflect() protoreflect.Message

func (*VtraceRequest) Reset

func (x *VtraceRequest) Reset()

func (*VtraceRequest) String

func (x *VtraceRequest) String() string

type VtraceResponse

type VtraceResponse struct {
	TraceFlags int32              `protobuf:"varint,1,opt,name=traceFlags,proto3" json:"traceFlags,omitempty"`
	Trace      *VtraceTraceRecord `protobuf:"bytes,2,opt,name=trace,proto3" json:"trace,omitempty"`
	// contains filtered or unexported fields
}

func (*VtraceResponse) Descriptor deprecated

func (*VtraceResponse) Descriptor() ([]byte, []int)

Deprecated: Use VtraceResponse.ProtoReflect.Descriptor instead.

func (*VtraceResponse) GetTrace

func (x *VtraceResponse) GetTrace() *VtraceTraceRecord

func (*VtraceResponse) GetTraceFlags

func (x *VtraceResponse) GetTraceFlags() int32

func (*VtraceResponse) ProtoMessage

func (*VtraceResponse) ProtoMessage()

func (*VtraceResponse) ProtoReflect

func (x *VtraceResponse) ProtoReflect() protoreflect.Message

func (*VtraceResponse) Reset

func (x *VtraceResponse) Reset()

func (*VtraceResponse) String

func (x *VtraceResponse) String() string

type VtraceSpanRecord

type VtraceSpanRecord struct {
	Id          []byte              `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Parent      []byte              `protobuf:"bytes,2,opt,name=parent,proto3" json:"parent,omitempty"`
	Name        string              `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	Start       *TimeTime           `protobuf:"bytes,4,opt,name=start,proto3" json:"start,omitempty"`
	End         *TimeTime           `protobuf:"bytes,5,opt,name=end,proto3" json:"end,omitempty"`
	Annotations []*VtraceAnnotation `protobuf:"bytes,6,rep,name=annotations,proto3" json:"annotations,omitempty"`
	// contains filtered or unexported fields
}

func (*VtraceSpanRecord) Descriptor deprecated

func (*VtraceSpanRecord) Descriptor() ([]byte, []int)

Deprecated: Use VtraceSpanRecord.ProtoReflect.Descriptor instead.

func (*VtraceSpanRecord) GetAnnotations

func (x *VtraceSpanRecord) GetAnnotations() []*VtraceAnnotation

func (*VtraceSpanRecord) GetEnd

func (x *VtraceSpanRecord) GetEnd() *TimeTime

func (*VtraceSpanRecord) GetId

func (x *VtraceSpanRecord) GetId() []byte

func (*VtraceSpanRecord) GetName

func (x *VtraceSpanRecord) GetName() string

func (*VtraceSpanRecord) GetParent

func (x *VtraceSpanRecord) GetParent() []byte

func (*VtraceSpanRecord) GetStart

func (x *VtraceSpanRecord) GetStart() *TimeTime

func (*VtraceSpanRecord) ProtoMessage

func (*VtraceSpanRecord) ProtoMessage()

func (*VtraceSpanRecord) ProtoReflect

func (x *VtraceSpanRecord) ProtoReflect() protoreflect.Message

func (*VtraceSpanRecord) Reset

func (x *VtraceSpanRecord) Reset()

func (*VtraceSpanRecord) String

func (x *VtraceSpanRecord) String() string

type VtraceTraceRecord

type VtraceTraceRecord struct {
	Id         []byte              `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	SpanRecord []*VtraceSpanRecord `protobuf:"bytes,2,rep,name=spanRecord,proto3" json:"spanRecord,omitempty"`
	// contains filtered or unexported fields
}

func (*VtraceTraceRecord) Descriptor deprecated

func (*VtraceTraceRecord) Descriptor() ([]byte, []int)

Deprecated: Use VtraceTraceRecord.ProtoReflect.Descriptor instead.

func (*VtraceTraceRecord) GetId

func (x *VtraceTraceRecord) GetId() []byte

func (*VtraceTraceRecord) GetSpanRecord

func (x *VtraceTraceRecord) GetSpanRecord() []*VtraceSpanRecord

func (*VtraceTraceRecord) ProtoMessage

func (*VtraceTraceRecord) ProtoMessage()

func (*VtraceTraceRecord) ProtoReflect

func (x *VtraceTraceRecord) ProtoReflect() protoreflect.Message

func (*VtraceTraceRecord) Reset

func (x *VtraceTraceRecord) Reset()

func (*VtraceTraceRecord) String

func (x *VtraceTraceRecord) String() string

Directories

Path Synopsis
Command benchmark runs the benchmark client.
Command benchmark runs the benchmark client.
Command benchmarkd runs the benchmark server.
Command benchmarkd runs the benchmark server.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL