Documentation ¶
Index ¶
- func GetFunctionName(i interface{}) string
- type AliasPlugin
- type MDNSRegisterPlugin
- type MetricsPlugin
- func (p *MetricsPlugin) Exp()
- func (p *MetricsPlugin) Graphite(freq time.Duration, prefix string, addr *net.TCPAddr)
- func (p *MetricsPlugin) HandleConnAccept(conn net.Conn) (net.Conn, bool)
- func (p *MetricsPlugin) InfluxDB(freq time.Duration, url, database, username, password string)
- func (p *MetricsPlugin) Log(freq time.Duration, l metrics.Logger)
- func (p *MetricsPlugin) PostReadRequest(ctx context.Context, r *protocol.Message, e error) error
- func (p *MetricsPlugin) PostWriteResponse(ctx context.Context, req *protocol.Message, res *protocol.Message, e error) error
- func (p *MetricsPlugin) PreReadRequest(ctx context.Context) error
- func (p *MetricsPlugin) Register(name string, rcvr interface{}, metadata string) error
- type RateLimitingPlugin
- type TracePlugin
- func (p *TracePlugin) PostConnAccept(conn net.Conn) (net.Conn, bool)
- func (p *TracePlugin) PostReadRequest(ctx context.Context, r *protocol.Message, e error) error
- func (p *TracePlugin) PostWriteResponse(ctx context.Context, req *protocol.Message, res *protocol.Message, err error) error
- func (p *TracePlugin) Register(name string, rcvr interface{}, metadata string) error
- func (p *TracePlugin) RegisterFunction(name string, fn interface{}, metadata string) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetFunctionName ¶
func GetFunctionName(i interface{}) string
Types ¶
type AliasPlugin ¶
AliasPlugin can be used to set aliases for services
func NewAliasPlugin ¶
func NewAliasPlugin() *AliasPlugin
NewAliasPlugin creates a new NewAliasPlugin
func (*AliasPlugin) Alias ¶
func (p *AliasPlugin) Alias(aliasServicePath, aliasServiceMethod string, servicePath, serviceMethod string)
Alias sets a alias for the serviceMethod. For example Alias("anewpath&method", "Arith.mul")
func (*AliasPlugin) PostReadRequest ¶
PostReadRequest converts the alias of this service.
func (*AliasPlugin) PreWriteResponse ¶
PreWriteResponse restore servicePath and serviceMethod.
type MDNSRegisterPlugin ¶
type MDNSRegisterPlugin struct { // service address, for example, tcp@127.0.0.1:8972, quic@127.0.0.1:1234 ServiceAddress string Metrics metrics.Registry // Registered services Services []*serviceMeta UpdateInterval time.Duration // contains filtered or unexported fields }
MDNSRegisterPlugin implements mdns/dns-sd registry.
func NewMDNSRegisterPlugin ¶
func NewMDNSRegisterPlugin(serviceAddress string, port int, m metrics.Registry, updateInterval time.Duration, domain string) *MDNSRegisterPlugin
NewMDNSRegisterPlugin return a new MDNSRegisterPlugin. If domain is empty, use "local." in default.
func (*MDNSRegisterPlugin) HandleConnAccept ¶
HandleConnAccept handles connections from clients
func (*MDNSRegisterPlugin) Register ¶
func (p *MDNSRegisterPlugin) Register(name string, rcvr interface{}, metadata string) (err error)
Register handles registering event. this service is registered at BASE/serviceName/thisIpAddress node
func (*MDNSRegisterPlugin) Start ¶
func (p *MDNSRegisterPlugin) Start() error
Start starts to connect etcd cluster
type MetricsPlugin ¶
type MetricsPlugin struct { Registry metrics.Registry Prefix string }
MetricsPlugin collects metrics of a rpc server. You can report metrics to log, syslog, Graphite, InfluxDB or others to display them in Dashboard such as grafana, Graphite.
func NewMetricsPlugin ¶
func NewMetricsPlugin(registry metrics.Registry) *MetricsPlugin
NewMetricsPlugin creates a new MetricsPlugirn
func (*MetricsPlugin) Exp ¶
func (p *MetricsPlugin) Exp()
Exp uses the same mechanism as the official expvar but exposed under /debug/metrics, which shows a json representation of all your usual expvars as well as all your go-metrics.
func (*MetricsPlugin) Graphite ¶
Graphite reports metrics into graphite.
addr, _ := net.ResolveTCPAddr("tcp", "127.0.0.1:2003") p.Graphite(10e9, "metrics", addr)
func (*MetricsPlugin) HandleConnAccept ¶
HandleConnAccept handles connections from clients
func (*MetricsPlugin) InfluxDB ¶
func (p *MetricsPlugin) InfluxDB(freq time.Duration, url, database, username, password string)
InfluxDB reports metrics into influxdb.
p.InfluxDB(10e9, "127.0.0.1:8086","metrics", "test","test"})
func (*MetricsPlugin) Log ¶
func (p *MetricsPlugin) Log(freq time.Duration, l metrics.Logger)
Log reports metrics into logs.
p.Log( 5 * time.Second, log.New(os.Stderr, "metrics: ", log.Lmicroseconds))
func (*MetricsPlugin) PostReadRequest ¶
PostReadRequest counts read
func (*MetricsPlugin) PostWriteResponse ¶
func (p *MetricsPlugin) PostWriteResponse(ctx context.Context, req *protocol.Message, res *protocol.Message, e error) error
PostWriteResponse count write
func (*MetricsPlugin) PreReadRequest ¶
func (p *MetricsPlugin) PreReadRequest(ctx context.Context) error
PreReadRequest marks start time of calling service
type RateLimitingPlugin ¶
type RateLimitingPlugin struct { FillInterval time.Duration Capacity int64 // contains filtered or unexported fields }
RateLimitingPlugin can limit connecting per unit time
func NewRateLimitingPlugin ¶
func NewRateLimitingPlugin(fillInterval time.Duration, capacity int64) *RateLimitingPlugin
NewRateLimitingPlugin creates a new RateLimitingPlugin
func (*RateLimitingPlugin) HandleConnAccept ¶
HandleConnAccept can limit connecting rate
type TracePlugin ¶
type TracePlugin struct { }
func (*TracePlugin) PostConnAccept ¶
func (*TracePlugin) PostReadRequest ¶
func (*TracePlugin) PostWriteResponse ¶
func (*TracePlugin) Register ¶
func (p *TracePlugin) Register(name string, rcvr interface{}, metadata string) error
func (*TracePlugin) RegisterFunction ¶
func (p *TracePlugin) RegisterFunction(name string, fn interface{}, metadata string) error