tchannel

package
v0.0.0-...-132f1c2 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2018 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Builder

type Builder struct {
	// collector server静态服务端口列表
	CollectorHostPorts []string `yaml:"collectorHostPorts"`

	// 用于连接collector servers实例的数量,默认为3个。
	//
	// 这个说明collector servers至少有三个实例
	DiscoveryMinPeers int `yaml:"minPeers"`

	// collector服务名称
	CollectorServiceName string `yaml:"collectorServiceName"`

	// 连接的超时时间设置
	ConnCheckTimeout time.Duration
	// contains filtered or unexported fields
}

Builder类似于Agent Builder,用于构建一个或者多个服务,组装服务所需要的各个组件,如:Processor server需要配置、需要创建Processor实例,并且把相关实例参数写入到Builder中

这个Builder主要用于Collector server的静态服务列表,或者动态服务发现的配置、实例相关构建

func NewBuilder

func NewBuilder() *Builder

NewBuilder方法创建一个Builder实例

func (*Builder) CreateReporter

func (b *Builder) CreateReporter(mFactory metrics.Factory, logger *zap.Logger) (*Reporter, error)

CreateReporter方法用于创建Reporter实例,Reporter可以发送trace包到collector servers中

func (*Builder) WithChannel

func (b *Builder) WithChannel(c *tchannel.Channel) *Builder

WithChannel方法用于设置获取相关服务Peers的channel

func (*Builder) WithCollectorServiceName

func (b *Builder) WithCollectorServiceName(s string) *Builder

WithCollectorServiceName方法用于设置collector server服务名称

func (*Builder) WithDiscoverer

func (b *Builder) WithDiscoverer(d discovery.Discoverer) *Builder

WithDiscoverer方法用于设置Builder的属性值: 服务发现

func (*Builder) WithDiscoveryNotifier

func (b *Builder) WithDiscoveryNotifier(n discovery.Notifier) *Builder

WithDiscoveryNotifier方法用于设置服务发现监听的key对应的value值发生了变化,事件通知

type Reporter

type Reporter struct {
	// contains filtered or unexported fields
}

Reporter forwards received spans to central collector tier over TChannel. Reporter用于把processor从channel队列上接收trace, 通过tchannel发送到collector servers 因为Reporter实现了Reporter interface:EmitZipkinBatch和EmitBatch方法 前者用于zipkin数据格式进行rpc调用,后者用于jaeger数据格式进行rpc调用

func New

func New(
	collectorServiceName string,
	channel *tchannel.Channel,
	peerListMgr *peerlistmgr.PeerListManager,
	mFactory metrics.Factory,
	zlogger *zap.Logger,
) *Reporter

New方法用于创建一个Reporter实例,并分别获取jaeger、thrift协议解析的client: zClient和jClient

func (*Reporter) Channel

func (r *Reporter) Channel() *tchannel.Channel

Channel方法返回TChannel

func (*Reporter) EmitBatch

func (r *Reporter) EmitBatch(batch *jaeger.Batch) error

EmitBatch方法为默认的rpc调用,jaeger.Batch 传输给jaeger collector server

func (*Reporter) EmitZipkinBatch

func (r *Reporter) EmitZipkinBatch(spans []*zipkincore.Span) error

EmitZipkinBatch方法通过rpc调用,把spans传输给ZipkinCollector server

Jump to

Keyboard shortcuts

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