volume servers get metrics address and interval from the master

This commit is contained in:
Chris Lu 2019-06-17 14:51:47 -07:00
parent 68d1bef236
commit d8ed73926d
11 changed files with 192 additions and 157 deletions

View file

@ -45,12 +45,14 @@ var (
mpulse = cmdMaster.Flag.Int("pulseSeconds", 5, "number of seconds between heartbeats")
defaultReplicaPlacement = cmdMaster.Flag.String("defaultReplication", "000", "Default replication type if not specified.")
// mTimeout = cmdMaster.Flag.Int("idleTimeout", 30, "connection idle seconds")
mMaxCpu = cmdMaster.Flag.Int("maxCpu", 0, "maximum number of CPUs. 0 means all available CPUs")
garbageThreshold = cmdMaster.Flag.Float64("garbageThreshold", 0.3, "threshold to vacuum and reclaim spaces")
masterWhiteListOption = cmdMaster.Flag.String("whiteList", "", "comma separated Ip addresses having write permission. No limit if empty.")
disableHttp = cmdMaster.Flag.Bool("disableHttp", false, "disable http requests, only gRPC operations are allowed.")
masterCpuProfile = cmdMaster.Flag.String("cpuprofile", "", "cpu profile output file")
masterMemProfile = cmdMaster.Flag.String("memprofile", "", "memory profile output file")
mMaxCpu = cmdMaster.Flag.Int("maxCpu", 0, "maximum number of CPUs. 0 means all available CPUs")
garbageThreshold = cmdMaster.Flag.Float64("garbageThreshold", 0.3, "threshold to vacuum and reclaim spaces")
masterWhiteListOption = cmdMaster.Flag.String("whiteList", "", "comma separated Ip addresses having write permission. No limit if empty.")
disableHttp = cmdMaster.Flag.Bool("disableHttp", false, "disable http requests, only gRPC operations are allowed.")
masterCpuProfile = cmdMaster.Flag.String("cpuprofile", "", "cpu profile output file")
masterMemProfile = cmdMaster.Flag.String("memprofile", "", "memory profile output file")
masterMetricsAddress = cmdMaster.Flag.String("metrics.address", "", "Prometheus gateway address")
masterMetricsIntervalSec = cmdMaster.Flag.Int("metrics.intervalSeconds", 15, "Prometheus push interval in seconds")
masterWhiteList []string
)
@ -82,6 +84,7 @@ func runMaster(cmd *Command, args []string) bool {
*mpulse, *defaultReplicaPlacement, *garbageThreshold,
masterWhiteList,
*disableHttp,
*masterMetricsAddress, *masterMetricsIntervalSec,
)
listeningAddress := *masterBindIp + ":" + strconv.Itoa(*mport)

View file

@ -24,10 +24,8 @@ import (
)
type ServerOptions struct {
cpuprofile *string
metricsAddress *string
metricsIntervalSec *int
v VolumeServerOptions
cpuprofile *string
v VolumeServerOptions
}
var (
@ -67,6 +65,8 @@ var (
serverDisableHttp = cmdServer.Flag.Bool("disableHttp", false, "disable http requests, only gRPC operations are allowed.")
serverPeers = cmdServer.Flag.String("master.peers", "", "all master nodes in comma separated ip:masterPort list")
serverGarbageThreshold = cmdServer.Flag.Float64("garbageThreshold", 0.3, "threshold to vacuum and reclaim spaces")
serverMetricsAddress = cmdServer.Flag.String("metrics.address", "", "Prometheus gateway address")
serverMetricsIntervalSec = cmdServer.Flag.Int("metrics.intervalSeconds", 15, "Prometheus push interval in seconds")
masterPort = cmdServer.Flag.Int("master.port", 9333, "master server http listen port")
masterMetaFolder = cmdServer.Flag.String("master.dir", "", "data directory to store meta data, default to same as -dir specified")
masterVolumeSizeLimitMB = cmdServer.Flag.Uint("master.volumeSizeLimitMB", 30*1000, "Master stops directing writes to oversized volumes.")
@ -83,8 +83,6 @@ var (
func init() {
serverOptions.cpuprofile = cmdServer.Flag.String("cpuprofile", "", "cpu profile output file")
serverOptions.metricsAddress = cmdServer.Flag.String("metrics.address", "", "Prometheus gateway address")
serverOptions.metricsIntervalSec = cmdServer.Flag.Int("metrics.intervalSeconds", 15, "Prometheus push interval in seconds")
filerOptions.collection = cmdServer.Flag.String("filer.collection", "", "all data will be stored in this collection")
filerOptions.port = cmdServer.Flag.Int("filer.port", 8888, "filer server http listen port")
filerOptions.publicPort = cmdServer.Flag.Int("filer.port.public", 0, "filer server public http listen port")
@ -147,10 +145,8 @@ func runServer(cmd *Command, args []string) bool {
filerOptions.dataCenter = serverDataCenter
filerOptions.disableHttp = serverDisableHttp
filerOptions.metricsAddress = serverOptions.metricsAddress
filerOptions.metricsIntervalSec = serverOptions.metricsIntervalSec
serverOptions.v.metricsAddress = serverOptions.metricsAddress
serverOptions.v.metricsIntervalSec = serverOptions.metricsIntervalSec
filerOptions.metricsAddress = serverMetricsAddress
filerOptions.metricsIntervalSec = serverMetricsIntervalSec
filerAddress := fmt.Sprintf("%s:%d", *serverIp, *filerOptions.port)
s3Options.filer = &filerAddress
@ -210,6 +206,7 @@ func runServer(cmd *Command, args []string) bool {
*masterVolumeSizeLimitMB, *masterVolumePreallocate,
*pulseSeconds, *masterDefaultReplicaPlacement, *serverGarbageThreshold,
serverWhiteList, *serverDisableHttp,
*serverMetricsAddress, *serverMetricsIntervalSec,
)
glog.V(0).Infof("Start Seaweed Master %s at %s:%d", util.VERSION, *serverIp, *masterPort)

View file

@ -45,8 +45,6 @@ type VolumeServerOptions struct {
cpuProfile *string
memProfile *string
compactionMBPerSecond *int
metricsAddress *string
metricsIntervalSec *int
}
func init() {
@ -68,8 +66,6 @@ func init() {
v.cpuProfile = cmdVolume.Flag.String("cpuprofile", "", "cpu profile output file")
v.memProfile = cmdVolume.Flag.String("memprofile", "", "memory profile output file")
v.compactionMBPerSecond = cmdVolume.Flag.Int("compactionMBps", 0, "limit background compaction or copying speed in mega bytes per second")
v.metricsAddress = cmdVolume.Flag.String("metrics.address", "", "Prometheus gateway address")
v.metricsIntervalSec = cmdVolume.Flag.Int("metrics.intervalSeconds", 15, "Prometheus push interval in seconds")
}
var cmdVolume = &Command{
@ -165,8 +161,6 @@ func (v VolumeServerOptions) startVolumeServer(volumeFolders, maxVolumeCounts, v
v.whiteList,
*v.fixJpgOrientation, *v.readRedirect,
*v.compactionMBPerSecond,
*v.metricsAddress,
*v.metricsIntervalSec,
)
listeningAddress := *v.bindIp + ":" + strconv.Itoa(*v.port)

View file

@ -52,8 +52,10 @@ message Heartbeat {
}
message HeartbeatResponse {
uint64 volumeSizeLimit = 1;
string leader = 3;
uint64 volume_size_limit = 1;
string leader = 2;
string metrics_address = 3;
uint32 metrics_interval_seconds = 4;
}
message VolumeInformationMessage {

View file

@ -202,8 +202,10 @@ func (m *Heartbeat) GetHasNoEcShards() bool {
}
type HeartbeatResponse struct {
VolumeSizeLimit uint64 `protobuf:"varint,1,opt,name=volumeSizeLimit" json:"volumeSizeLimit,omitempty"`
Leader string `protobuf:"bytes,3,opt,name=leader" json:"leader,omitempty"`
VolumeSizeLimit uint64 `protobuf:"varint,1,opt,name=volume_size_limit,json=volumeSizeLimit" json:"volume_size_limit,omitempty"`
Leader string `protobuf:"bytes,2,opt,name=leader" json:"leader,omitempty"`
MetricsAddress string `protobuf:"bytes,3,opt,name=metrics_address,json=metricsAddress" json:"metrics_address,omitempty"`
MetricsIntervalSeconds uint32 `protobuf:"varint,4,opt,name=metrics_interval_seconds,json=metricsIntervalSeconds" json:"metrics_interval_seconds,omitempty"`
}
func (m *HeartbeatResponse) Reset() { *m = HeartbeatResponse{} }
@ -225,6 +227,20 @@ func (m *HeartbeatResponse) GetLeader() string {
return ""
}
func (m *HeartbeatResponse) GetMetricsAddress() string {
if m != nil {
return m.MetricsAddress
}
return ""
}
func (m *HeartbeatResponse) GetMetricsIntervalSeconds() uint32 {
if m != nil {
return m.MetricsIntervalSeconds
}
return 0
}
type VolumeInformationMessage struct {
Id uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
Size uint64 `protobuf:"varint,2,opt,name=size" json:"size,omitempty"`
@ -1708,117 +1724,120 @@ var _Seaweed_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("master.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 1783 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xd4, 0x58, 0x4b, 0x8f, 0x1b, 0x49,
0x1d, 0x4f, 0xdb, 0x1e, 0x8f, 0xfd, 0xf7, 0x63, 0xec, 0x9a, 0x49, 0xd6, 0xf1, 0x92, 0x8d, 0xd3,
0x8b, 0x84, 0x77, 0x59, 0x86, 0x25, 0xbb, 0x12, 0x07, 0x40, 0xab, 0x64, 0x32, 0x0b, 0xa3, 0x64,
0xb3, 0x49, 0x3b, 0x1b, 0x24, 0x24, 0xd4, 0x94, 0xbb, 0x6b, 0x66, 0x4a, 0xd3, 0xee, 0x6e, 0xba,
0xca, 0x93, 0xf1, 0x72, 0xe0, 0x00, 0x37, 0x24, 0x2e, 0x9c, 0xb9, 0xf3, 0x29, 0xb8, 0x70, 0xe4,
0x53, 0x70, 0xe0, 0x0b, 0x70, 0x45, 0x48, 0xa8, 0x5e, 0xdd, 0xd5, 0x6d, 0xcf, 0xcc, 0x66, 0xa5,
0x1c, 0x72, 0xab, 0xfe, 0xbf, 0xeb, 0x57, 0xf5, 0x7f, 0x54, 0x43, 0x77, 0x81, 0x19, 0x27, 0xd9,
0x7e, 0x9a, 0x25, 0x3c, 0x41, 0x6d, 0xf5, 0xe5, 0xa7, 0x73, 0xf7, 0x4f, 0x4d, 0x68, 0xff, 0x82,
0xe0, 0x8c, 0xcf, 0x09, 0xe6, 0xa8, 0x0f, 0x35, 0x9a, 0x8e, 0x9c, 0x89, 0x33, 0x6d, 0x7b, 0x35,
0x9a, 0x22, 0x04, 0x8d, 0x34, 0xc9, 0xf8, 0xa8, 0x36, 0x71, 0xa6, 0x3d, 0x4f, 0xae, 0xd1, 0x1d,
0x80, 0x74, 0x39, 0x8f, 0x68, 0xe0, 0x2f, 0xb3, 0x68, 0x54, 0x97, 0xb2, 0x6d, 0x45, 0xf9, 0x2a,
0x8b, 0xd0, 0x14, 0x06, 0x0b, 0x7c, 0xe1, 0x9f, 0x27, 0xd1, 0x72, 0x41, 0xfc, 0x20, 0x59, 0xc6,
0x7c, 0xd4, 0x90, 0xea, 0xfd, 0x05, 0xbe, 0x78, 0x29, 0xc9, 0x07, 0x82, 0x8a, 0x26, 0x22, 0xaa,
0x0b, 0xff, 0x98, 0x46, 0xc4, 0x3f, 0x23, 0xab, 0xd1, 0xd6, 0xc4, 0x99, 0x36, 0x3c, 0x58, 0xe0,
0x8b, 0xcf, 0x69, 0x44, 0x1e, 0x93, 0x15, 0xba, 0x0b, 0x9d, 0x10, 0x73, 0xec, 0x07, 0x24, 0xe6,
0x24, 0x1b, 0x35, 0xa5, 0x2f, 0x10, 0xa4, 0x03, 0x49, 0x11, 0xf1, 0x65, 0x38, 0x38, 0x1b, 0x6d,
0x4b, 0x8e, 0x5c, 0x8b, 0xf8, 0x70, 0xb8, 0xa0, 0xb1, 0x2f, 0x23, 0x6f, 0x49, 0xd7, 0x6d, 0x49,
0x79, 0x26, 0xc2, 0xff, 0x19, 0x6c, 0xab, 0xd8, 0xd8, 0xa8, 0x3d, 0xa9, 0x4f, 0x3b, 0xf7, 0xdf,
0xdf, 0xcf, 0xd1, 0xd8, 0x57, 0xe1, 0x1d, 0xc5, 0xc7, 0x49, 0xb6, 0xc0, 0x9c, 0x26, 0xf1, 0x17,
0x84, 0x31, 0x7c, 0x42, 0x3c, 0xa3, 0x83, 0x8e, 0xa0, 0x13, 0x93, 0x57, 0xbe, 0x31, 0x01, 0xd2,
0xc4, 0x74, 0xcd, 0xc4, 0xec, 0x34, 0xc9, 0xf8, 0x06, 0x3b, 0x10, 0x93, 0x57, 0x2f, 0xb5, 0xa9,
0xe7, 0xb0, 0x13, 0x92, 0x88, 0x70, 0x12, 0xe6, 0xe6, 0x3a, 0xaf, 0x69, 0xae, 0xaf, 0x0d, 0x18,
0x93, 0xdf, 0x85, 0xfe, 0x29, 0x66, 0x7e, 0x9c, 0xe4, 0x16, 0xbb, 0x13, 0x67, 0xda, 0xf2, 0xba,
0xa7, 0x98, 0x3d, 0x4d, 0x8c, 0xd4, 0xcf, 0xa1, 0x4d, 0x02, 0x9f, 0x9d, 0xe2, 0x2c, 0x64, 0xa3,
0x81, 0x74, 0xf9, 0xe1, 0x9a, 0xcb, 0xc3, 0x60, 0x26, 0x04, 0x36, 0x38, 0x6d, 0x11, 0xc5, 0x62,
0xe8, 0x29, 0xf4, 0x04, 0x18, 0x85, 0xb1, 0xe1, 0x6b, 0x1b, 0x13, 0x68, 0x1e, 0x1a, 0x7b, 0x2f,
0x61, 0x68, 0x10, 0x29, 0x6c, 0xa2, 0xd7, 0xb6, 0x69, 0x60, 0xcd, 0xed, 0x7e, 0x0f, 0x06, 0x1a,
0x96, 0xc2, 0xec, 0xae, 0x04, 0xa6, 0x27, 0x81, 0x31, 0x82, 0xee, 0x57, 0x30, 0xcc, 0x93, 0xc1,
0x23, 0x2c, 0x4d, 0x62, 0x46, 0xd0, 0x14, 0x76, 0x14, 0x9a, 0x33, 0xfa, 0x35, 0x79, 0x42, 0x17,
0x94, 0xcb, 0x0c, 0x69, 0x78, 0x55, 0x32, 0xba, 0x05, 0xcd, 0x88, 0xe0, 0x90, 0x64, 0x3a, 0x2d,
0xf4, 0x97, 0xfb, 0xd7, 0x3a, 0x8c, 0x2e, 0xbb, 0x5a, 0x32, 0xe7, 0x42, 0x69, 0xb1, 0xe7, 0xd5,
0x68, 0x28, 0xee, 0x34, 0xa3, 0x5f, 0x13, 0x99, 0x73, 0x0d, 0x4f, 0xae, 0xd1, 0x7b, 0x00, 0x41,
0x12, 0x45, 0x24, 0x10, 0x8a, 0xda, 0xb8, 0x45, 0x11, 0x77, 0x5e, 0xa6, 0x51, 0x91, 0x6e, 0x0d,
0xaf, 0x2d, 0x28, 0x2a, 0xd3, 0xee, 0x41, 0x57, 0x41, 0xa2, 0x05, 0x54, 0xa6, 0x75, 0x14, 0x4d,
0x89, 0x7c, 0x04, 0xc8, 0x40, 0x3f, 0x5f, 0xe5, 0x82, 0x4d, 0x29, 0x38, 0xd0, 0x9c, 0x87, 0x2b,
0x23, 0xfd, 0x2e, 0xb4, 0x33, 0x82, 0x43, 0x3f, 0x89, 0xa3, 0x95, 0x4c, 0xbe, 0x96, 0xd7, 0x12,
0x84, 0x2f, 0xe3, 0x68, 0x85, 0xbe, 0x0f, 0xc3, 0x8c, 0xa4, 0x11, 0x0d, 0xb0, 0x9f, 0x46, 0x38,
0x20, 0x0b, 0x12, 0x9b, 0x3c, 0x1c, 0x68, 0xc6, 0x33, 0x43, 0x47, 0x23, 0xd8, 0x3e, 0x27, 0x19,
0x13, 0xdb, 0x6a, 0x4b, 0x11, 0xf3, 0x89, 0x06, 0x50, 0xe7, 0x3c, 0x1a, 0x81, 0xa4, 0x8a, 0x25,
0xfa, 0x00, 0x06, 0x41, 0xb2, 0x48, 0x71, 0xc0, 0xfd, 0x8c, 0x9c, 0x53, 0xa9, 0xd4, 0x91, 0xec,
0x1d, 0x4d, 0xf7, 0x34, 0x59, 0x6c, 0x67, 0x91, 0x84, 0xf4, 0x98, 0x92, 0xd0, 0xc7, 0xdc, 0x67,
0x24, 0x48, 0xe2, 0x50, 0x26, 0x43, 0xdd, 0x1b, 0x18, 0xce, 0x03, 0x3e, 0x93, 0x74, 0xf7, 0x6f,
0x0e, 0xdc, 0xb9, 0x32, 0xd1, 0xd6, 0x0e, 0xe9, 0xba, 0x03, 0x79, 0x53, 0x18, 0xb8, 0x4b, 0xb8,
0x7b, 0xcd, 0xf5, 0xbf, 0x26, 0xd6, 0xda, 0x5a, 0xac, 0x2e, 0xf4, 0x48, 0xe0, 0xd3, 0x38, 0x24,
0x17, 0xfe, 0x9c, 0x72, 0x26, 0xb7, 0xd3, 0xf3, 0x3a, 0x24, 0x38, 0x12, 0xb4, 0x87, 0x94, 0x33,
0x77, 0x1b, 0xb6, 0x0e, 0x17, 0x29, 0x5f, 0xb9, 0x7f, 0x77, 0x60, 0x67, 0xb6, 0x4c, 0x49, 0xf6,
0x30, 0x4a, 0x82, 0xb3, 0xc3, 0x0b, 0x9e, 0x61, 0xf4, 0x25, 0xf4, 0x49, 0x86, 0xd9, 0x32, 0x13,
0xd7, 0x26, 0xa4, 0xf1, 0x89, 0x74, 0x5e, 0xae, 0x63, 0x15, 0x9d, 0xfd, 0x43, 0xa5, 0x70, 0x20,
0xe5, 0xbd, 0x1e, 0xb1, 0x3f, 0xc7, 0xbf, 0x82, 0x5e, 0x89, 0x2f, 0x72, 0x42, 0x54, 0x7d, 0xbd,
0x29, 0xb9, 0x16, 0xc9, 0x96, 0xe2, 0x8c, 0xf2, 0x95, 0xee, 0x4e, 0xfa, 0x4b, 0xe4, 0x82, 0x6e,
0x3e, 0x34, 0x14, 0x7b, 0xa9, 0x8b, 0xfa, 0xaf, 0x28, 0x47, 0x21, 0x73, 0x3f, 0x80, 0xdd, 0x83,
0x88, 0x92, 0x98, 0x3f, 0xa1, 0x8c, 0x93, 0xd8, 0x23, 0xbf, 0x5d, 0x12, 0xc6, 0x85, 0x87, 0x18,
0x2f, 0x88, 0xee, 0x7d, 0x72, 0xed, 0xfe, 0x1e, 0xfa, 0x0a, 0xeb, 0x27, 0x49, 0x20, 0x11, 0x16,
0xe7, 0x21, 0x9a, 0x9e, 0x12, 0x12, 0xcb, 0x4a, 0x37, 0xac, 0x55, 0xbb, 0xe1, 0x6d, 0x68, 0xc9,
0x76, 0x51, 0x84, 0xb2, 0x2d, 0x3a, 0x00, 0x0d, 0x59, 0x91, 0x94, 0xa1, 0x62, 0x37, 0x24, 0xbb,
0x63, 0x2a, 0x3a, 0x0d, 0x99, 0xfb, 0x02, 0x76, 0x9f, 0x24, 0xc9, 0xd9, 0x32, 0x55, 0x61, 0x98,
0x58, 0xcb, 0x3b, 0x74, 0x26, 0x75, 0xe1, 0x33, 0xdf, 0xe1, 0x75, 0xe7, 0xed, 0xfe, 0xc7, 0x81,
0xbd, 0xb2, 0x59, 0x5d, 0xe8, 0x7e, 0x03, 0xbb, 0xb9, 0x5d, 0x3f, 0xd2, 0x7b, 0x56, 0x0e, 0x3a,
0xf7, 0x3f, 0xb6, 0x0e, 0x73, 0x93, 0xb6, 0xe9, 0x9d, 0xa1, 0x01, 0xcb, 0x1b, 0x9e, 0x57, 0x28,
0x6c, 0x7c, 0x01, 0x83, 0xaa, 0x98, 0xa8, 0x25, 0xb9, 0x57, 0x8d, 0x6c, 0xcb, 0x68, 0xa2, 0x1f,
0x41, 0xbb, 0x08, 0xa4, 0x26, 0x03, 0xd9, 0x2d, 0x05, 0xa2, 0x7d, 0x15, 0x52, 0x68, 0x0f, 0xb6,
0x48, 0x96, 0x25, 0xa6, 0x06, 0xab, 0x0f, 0xf7, 0x27, 0xd0, 0xfa, 0xd6, 0xa7, 0xe8, 0xfe, 0xd3,
0x81, 0xde, 0x03, 0xc6, 0xe8, 0x49, 0x7e, 0x5d, 0xf6, 0x60, 0x4b, 0x55, 0x48, 0xd5, 0x09, 0xd4,
0x07, 0x9a, 0x40, 0x47, 0x27, 0xb7, 0x05, 0xbd, 0x4d, 0xba, 0xb6, 0x6e, 0xe8, 0x84, 0x6f, 0xa8,
0xd0, 0x44, 0xd1, 0xab, 0xcc, 0x40, 0x5b, 0x97, 0xce, 0x40, 0x4d, 0x6b, 0x06, 0x7a, 0x17, 0xda,
0x52, 0x29, 0x4e, 0x42, 0xa2, 0x87, 0xa3, 0x96, 0x20, 0x3c, 0x4d, 0x42, 0xe2, 0xfe, 0xc5, 0x81,
0xbe, 0xd9, 0x8d, 0x3e, 0xf9, 0x01, 0xd4, 0x8f, 0x73, 0xf4, 0xc5, 0xd2, 0x60, 0x54, 0xbb, 0x0c,
0xa3, 0xb5, 0xb9, 0x2f, 0x47, 0xa4, 0x61, 0x23, 0x92, 0x1f, 0xc6, 0x96, 0x75, 0x18, 0x22, 0x64,
0xbc, 0xe4, 0xa7, 0x26, 0x64, 0xb1, 0x76, 0x4f, 0x60, 0x38, 0xe3, 0x98, 0x53, 0xc6, 0x69, 0xc0,
0x0c, 0xcc, 0x15, 0x40, 0x9d, 0xeb, 0x00, 0xad, 0x5d, 0x06, 0x68, 0x3d, 0x07, 0xd4, 0xfd, 0x87,
0x03, 0xc8, 0xf6, 0xa4, 0x21, 0x78, 0x03, 0xae, 0x04, 0x64, 0x3c, 0xe1, 0x38, 0xf2, 0x65, 0x43,
0xd7, 0x6d, 0x59, 0x52, 0xc4, 0xcc, 0x20, 0x4e, 0x69, 0xc9, 0x48, 0xa8, 0xb8, 0xaa, 0x27, 0xb7,
0x04, 0x41, 0x32, 0xcb, 0x2d, 0xbd, 0x59, 0x69, 0xe9, 0xee, 0x03, 0xe8, 0xcc, 0x78, 0x92, 0xe1,
0x13, 0xf2, 0x62, 0x95, 0x7e, 0x93, 0xe8, 0x75, 0x74, 0xb5, 0x02, 0x88, 0x09, 0xc0, 0x41, 0x11,
0xfd, 0xa6, 0x02, 0xf8, 0x3b, 0xb8, 0x59, 0x48, 0x88, 0x7a, 0x69, 0xce, 0xe5, 0x53, 0xb8, 0x45,
0xe3, 0x20, 0x5a, 0x86, 0xc4, 0x8f, 0x45, 0xfb, 0x89, 0xf2, 0x79, 0xd3, 0x91, 0xc3, 0xc0, 0x9e,
0xe6, 0x3e, 0x95, 0x4c, 0x33, 0x77, 0x7e, 0x04, 0xc8, 0x68, 0x91, 0x20, 0xd7, 0xa8, 0x49, 0x8d,
0x81, 0xe6, 0x1c, 0x06, 0x5a, 0xda, 0x7d, 0x0e, 0xb7, 0xaa, 0xce, 0xf5, 0x51, 0xfd, 0x18, 0x3a,
0x05, 0xec, 0xa6, 0x3e, 0xdd, 0xb4, 0xca, 0x42, 0xa1, 0xe7, 0xd9, 0x92, 0xee, 0x0f, 0xe0, 0x9d,
0x82, 0xf5, 0x48, 0x16, 0xda, 0xab, 0xea, 0xff, 0x18, 0x46, 0xeb, 0xe2, 0x2a, 0x06, 0xf7, 0x5f,
0x35, 0xe8, 0x3e, 0xd2, 0x19, 0x25, 0x7a, 0xb0, 0xd5, 0x75, 0xdb, 0xb2, 0xeb, 0xde, 0x83, 0x6e,
0xe9, 0x0d, 0xa4, 0xc6, 0xb9, 0xce, 0xb9, 0xf5, 0x00, 0xda, 0xf4, 0x54, 0xaa, 0x4b, 0xb1, 0xea,
0x53, 0xe9, 0x43, 0x18, 0x1e, 0x67, 0x84, 0xac, 0xbf, 0xaa, 0x1a, 0xde, 0x8e, 0x60, 0xd8, 0xb2,
0xfb, 0xb0, 0x8b, 0x03, 0x4e, 0xcf, 0x2b, 0xd2, 0xea, 0x7e, 0x0d, 0x15, 0xcb, 0x96, 0xff, 0x3c,
0x0f, 0x94, 0xc6, 0xc7, 0x09, 0x1b, 0x35, 0xbf, 0xf9, 0xab, 0x48, 0xef, 0x46, 0x70, 0x18, 0x7a,
0x06, 0x7d, 0x33, 0x5d, 0x6b, 0x4b, 0xdb, 0xaf, 0x3d, 0xb9, 0x77, 0x49, 0xc1, 0x62, 0xee, 0x1f,
0x6b, 0xd0, 0xf2, 0x70, 0x70, 0xf6, 0x76, 0xe3, 0xfb, 0x19, 0xec, 0xe4, 0xb5, 0xb8, 0x04, 0xf1,
0x3b, 0x16, 0x30, 0xf6, 0x55, 0xf2, 0x7a, 0xa1, 0xf5, 0xc5, 0xdc, 0xff, 0x39, 0xd0, 0x7f, 0x94,
0xd7, 0xfb, 0xb7, 0x1b, 0x8c, 0xfb, 0x00, 0xa2, 0x41, 0x95, 0x70, 0xb0, 0x1b, 0xba, 0x39, 0x6e,
0xaf, 0x9d, 0xe9, 0x15, 0x73, 0xff, 0x5c, 0x83, 0xee, 0x8b, 0x24, 0x4d, 0xa2, 0xe4, 0x64, 0xf5,
0x76, 0xef, 0xfe, 0x10, 0x86, 0x56, 0x2f, 0x2f, 0x81, 0x70, 0xbb, 0x72, 0x19, 0x8a, 0xc3, 0xf6,
0x76, 0xc2, 0xd2, 0x37, 0x73, 0x77, 0x61, 0xa8, 0xe7, 0xd2, 0xa2, 0x24, 0xbb, 0x7f, 0x70, 0x00,
0xd9, 0x54, 0x5d, 0x2b, 0x7f, 0x0a, 0x3d, 0xae, 0xb1, 0x93, 0xfe, 0xf4, 0x68, 0x6e, 0xdf, 0x3d,
0x1b, 0x5b, 0xaf, 0xcb, 0x6d, 0xa4, 0x7f, 0x08, 0x7b, 0x7a, 0x67, 0xa2, 0x47, 0xf9, 0x91, 0x78,
0xe5, 0xfa, 0x8b, 0xb9, 0x46, 0x78, 0x58, 0x79, 0xff, 0x7e, 0x31, 0x77, 0x3f, 0x85, 0x9b, 0x6a,
0x38, 0x34, 0x75, 0xdc, 0xd4, 0xd7, 0xb5, 0x29, 0xaf, 0x57, 0x4c, 0x79, 0xee, 0x7f, 0x1d, 0xb8,
0x55, 0x55, 0xd3, 0xf1, 0x5f, 0xa5, 0x87, 0x30, 0x20, 0x5d, 0x6f, 0xec, 0x79, 0x55, 0x8d, 0x89,
0x9f, 0xac, 0xcd, 0xab, 0x55, 0xdb, 0xfb, 0xa6, 0x0e, 0x15, 0x23, 0xeb, 0x80, 0x95, 0x09, 0x6c,
0x8c, 0x61, 0xb8, 0x26, 0x26, 0xa6, 0x7a, 0xe3, 0x57, 0xc7, 0xb4, 0xad, 0x15, 0xbf, 0xc5, 0xc0,
0x7a, 0xff, 0xdf, 0x5b, 0xb0, 0x3d, 0x23, 0xf8, 0x15, 0x21, 0x21, 0x3a, 0x82, 0xde, 0x8c, 0xc4,
0x61, 0xf1, 0x47, 0x6e, 0xcf, 0x52, 0xce, 0xa9, 0xe3, 0xef, 0x6c, 0xa2, 0xe6, 0xbd, 0xe9, 0xc6,
0xd4, 0xf9, 0xd8, 0x41, 0xcf, 0xa0, 0xf7, 0x98, 0x90, 0xf4, 0x20, 0x89, 0x63, 0x12, 0x70, 0x12,
0xa2, 0xf7, 0xec, 0x0e, 0xb9, 0xfe, 0x04, 0x1a, 0xdf, 0x5e, 0x2b, 0xd4, 0x26, 0x5a, 0x6d, 0xf1,
0x39, 0x74, 0xed, 0xc9, 0xbf, 0x64, 0x70, 0xc3, 0x3b, 0x65, 0x7c, 0xf7, 0x9a, 0x27, 0x83, 0x7b,
0x03, 0x7d, 0x06, 0x4d, 0x35, 0x8a, 0xa2, 0x91, 0x25, 0x5c, 0x9a, 0xb5, 0x4b, 0x71, 0x95, 0xe7,
0x56, 0xf7, 0x06, 0x7a, 0x0c, 0x50, 0x0c, 0x73, 0xc8, 0xc6, 0x65, 0x6d, 0x9a, 0x1c, 0xdf, 0xb9,
0x84, 0x9b, 0x1b, 0xfb, 0x25, 0xf4, 0xcb, 0x23, 0x07, 0x9a, 0x6c, 0x9c, 0x2a, 0xac, 0xbc, 0x1b,
0xdf, 0xbb, 0x42, 0x22, 0x37, 0xfc, 0x6b, 0x18, 0x54, 0x27, 0x09, 0xe4, 0x6e, 0x54, 0x2c, 0x4d,
0x25, 0xe3, 0xf7, 0xaf, 0x94, 0xb1, 0x41, 0x28, 0x52, 0xbf, 0x04, 0xc2, 0x5a, 0x9d, 0x28, 0x81,
0xb0, 0x5e, 0x2f, 0x14, 0x08, 0xe5, 0x7c, 0x29, 0x81, 0xb0, 0x31, 0xbb, 0x4b, 0x20, 0x6c, 0x4e,
0x36, 0xf7, 0xc6, 0xbc, 0x29, 0x7f, 0x3e, 0x7f, 0xf2, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa3,
0x20, 0x0c, 0x55, 0x8c, 0x16, 0x00, 0x00,
// 1832 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xd4, 0x58, 0xcd, 0x6f, 0x1c, 0x49,
0x15, 0x4f, 0xcf, 0x8c, 0xed, 0x99, 0x37, 0x1f, 0x9e, 0x29, 0x3b, 0xde, 0xc9, 0x2c, 0xd9, 0x4c,
0x7a, 0x91, 0xd6, 0x1b, 0x16, 0xb3, 0x64, 0x57, 0x02, 0x09, 0xd0, 0x2a, 0x71, 0xbc, 0x60, 0x25,
0x9b, 0x4d, 0x7a, 0x42, 0x90, 0x90, 0x50, 0x53, 0xee, 0x7e, 0xb6, 0x4b, 0xee, 0xe9, 0x6e, 0xba,
0x6a, 0x1c, 0xcf, 0x72, 0xe0, 0x00, 0x37, 0x24, 0x2e, 0x9c, 0xb9, 0xf3, 0x37, 0x70, 0xe0, 0xc2,
0x91, 0xbf, 0x82, 0x03, 0xff, 0x00, 0x57, 0x84, 0x84, 0xea, 0xab, 0x3f, 0x66, 0xc6, 0xf6, 0x66,
0xa5, 0x1c, 0x72, 0xab, 0x7e, 0x5f, 0xf5, 0xea, 0xf7, 0xea, 0x7d, 0x54, 0x43, 0x67, 0x4a, 0xb9,
0xc0, 0x6c, 0x2f, 0xcd, 0x12, 0x91, 0x90, 0x96, 0xfe, 0xf2, 0xd3, 0x23, 0xf7, 0x8f, 0xeb, 0xd0,
0xfa, 0x19, 0xd2, 0x4c, 0x1c, 0x21, 0x15, 0xa4, 0x07, 0x35, 0x96, 0x0e, 0x9d, 0xb1, 0xb3, 0xdb,
0xf2, 0x6a, 0x2c, 0x25, 0x04, 0x1a, 0x69, 0x92, 0x89, 0x61, 0x6d, 0xec, 0xec, 0x76, 0x3d, 0xb5,
0x26, 0xb7, 0x01, 0xd2, 0xd9, 0x51, 0xc4, 0x02, 0x7f, 0x96, 0x45, 0xc3, 0xba, 0x92, 0x6d, 0x69,
0xca, 0xcf, 0xb3, 0x88, 0xec, 0x42, 0x7f, 0x4a, 0x2f, 0xfc, 0xf3, 0x24, 0x9a, 0x4d, 0xd1, 0x0f,
0x92, 0x59, 0x2c, 0x86, 0x0d, 0xa5, 0xde, 0x9b, 0xd2, 0x8b, 0x97, 0x8a, 0xbc, 0x2f, 0xa9, 0x64,
0x2c, 0xbd, 0xba, 0xf0, 0x8f, 0x59, 0x84, 0xfe, 0x19, 0xce, 0x87, 0x6b, 0x63, 0x67, 0xb7, 0xe1,
0xc1, 0x94, 0x5e, 0x7c, 0xce, 0x22, 0x7c, 0x8c, 0x73, 0x72, 0x07, 0xda, 0x21, 0x15, 0xd4, 0x0f,
0x30, 0x16, 0x98, 0x0d, 0xd7, 0xd5, 0x5e, 0x20, 0x49, 0xfb, 0x8a, 0x22, 0xfd, 0xcb, 0x68, 0x70,
0x36, 0xdc, 0x50, 0x1c, 0xb5, 0x96, 0xfe, 0xd1, 0x70, 0xca, 0x62, 0x5f, 0x79, 0xde, 0x54, 0x5b,
0xb7, 0x14, 0xe5, 0x99, 0x74, 0xff, 0x27, 0xb0, 0xa1, 0x7d, 0xe3, 0xc3, 0xd6, 0xb8, 0xbe, 0xdb,
0xbe, 0xff, 0xfe, 0x5e, 0x8e, 0xc6, 0x9e, 0x76, 0xef, 0x30, 0x3e, 0x4e, 0xb2, 0x29, 0x15, 0x2c,
0x89, 0xbf, 0x40, 0xce, 0xe9, 0x09, 0x7a, 0x56, 0x87, 0x1c, 0x42, 0x3b, 0xc6, 0x57, 0xbe, 0x35,
0x01, 0xca, 0xc4, 0xee, 0x92, 0x89, 0xc9, 0x69, 0x92, 0x89, 0x15, 0x76, 0x20, 0xc6, 0x57, 0x2f,
0x8d, 0xa9, 0xe7, 0xb0, 0x19, 0x62, 0x84, 0x02, 0xc3, 0xdc, 0x5c, 0xfb, 0x35, 0xcd, 0xf5, 0x8c,
0x01, 0x6b, 0xf2, 0xdb, 0xd0, 0x3b, 0xa5, 0xdc, 0x8f, 0x93, 0xdc, 0x62, 0x67, 0xec, 0xec, 0x36,
0xbd, 0xce, 0x29, 0xe5, 0x4f, 0x13, 0x2b, 0xf5, 0x53, 0x68, 0x61, 0xe0, 0xf3, 0x53, 0x9a, 0x85,
0x7c, 0xd8, 0x57, 0x5b, 0xde, 0x5b, 0xda, 0xf2, 0x20, 0x98, 0x48, 0x81, 0x15, 0x9b, 0x36, 0x51,
0xb3, 0x38, 0x79, 0x0a, 0x5d, 0x09, 0x46, 0x61, 0x6c, 0xf0, 0xda, 0xc6, 0x24, 0x9a, 0x07, 0xd6,
0xde, 0x4b, 0x18, 0x58, 0x44, 0x0a, 0x9b, 0xe4, 0xb5, 0x6d, 0x5a, 0x58, 0x73, 0xbb, 0x1f, 0x40,
0xdf, 0xc0, 0x52, 0x98, 0xdd, 0x52, 0xc0, 0x74, 0x15, 0x30, 0x56, 0xd0, 0xfd, 0x9b, 0x03, 0x83,
0x3c, 0x1b, 0x3c, 0xe4, 0x69, 0x12, 0x73, 0x24, 0xf7, 0x60, 0x60, 0xae, 0x33, 0x67, 0x5f, 0xa1,
0x1f, 0xb1, 0x29, 0x13, 0x2a, 0x49, 0x1a, 0xde, 0xa6, 0x66, 0x4c, 0xd8, 0x57, 0xf8, 0x44, 0x92,
0xc9, 0x0e, 0xac, 0x47, 0x48, 0x43, 0xcc, 0x54, 0xce, 0xb4, 0x3c, 0xf3, 0x45, 0x3e, 0x80, 0xcd,
0x29, 0x8a, 0x8c, 0x05, 0xdc, 0xa7, 0x61, 0x98, 0x21, 0xe7, 0x26, 0x75, 0x7a, 0x86, 0xfc, 0x40,
0x53, 0xc9, 0x0f, 0x61, 0x68, 0x05, 0x99, 0xbc, 0xe3, 0xe7, 0x34, 0xf2, 0x39, 0x06, 0x49, 0x1c,
0x72, 0x93, 0x47, 0x3b, 0x86, 0x7f, 0x68, 0xd8, 0x13, 0xcd, 0x75, 0xff, 0x52, 0x87, 0xe1, 0x65,
0x17, 0x58, 0x65, 0x76, 0xa8, 0x9c, 0xee, 0x7a, 0x35, 0x16, 0xca, 0xcc, 0x91, 0x87, 0x51, 0x5e,
0x36, 0x3c, 0xb5, 0x26, 0xef, 0x01, 0x04, 0x49, 0x14, 0x61, 0x20, 0x15, 0x8d, 0x7b, 0x25, 0x8a,
0xcc, 0x2c, 0x95, 0xac, 0x45, 0x52, 0x37, 0xbc, 0x96, 0xa4, 0xe8, 0x7c, 0xbe, 0x0b, 0x1d, 0x0d,
0xbc, 0x11, 0xd0, 0xf9, 0xdc, 0xd6, 0x34, 0x2d, 0xf2, 0x11, 0x10, 0x1b, 0xe0, 0xa3, 0x79, 0x2e,
0xb8, 0xae, 0x04, 0xfb, 0x86, 0xf3, 0x70, 0x6e, 0xa5, 0xdf, 0x85, 0x56, 0x86, 0x34, 0xf4, 0x93,
0x38, 0x9a, 0xab, 0x14, 0x6f, 0x7a, 0x4d, 0x49, 0xf8, 0x32, 0x8e, 0xe6, 0xe4, 0x3b, 0x30, 0xc8,
0x30, 0x8d, 0x58, 0x40, 0xfd, 0x34, 0xa2, 0x01, 0x4e, 0x31, 0xb6, 0xd9, 0xde, 0x37, 0x8c, 0x67,
0x96, 0x4e, 0x86, 0xb0, 0x71, 0x8e, 0x19, 0x97, 0xc7, 0x6a, 0x29, 0x11, 0xfb, 0x49, 0xfa, 0x50,
0x17, 0x22, 0x1a, 0x82, 0xa2, 0xca, 0x25, 0xf9, 0x10, 0xfa, 0x41, 0x32, 0x4d, 0x69, 0x20, 0xfc,
0x0c, 0xcf, 0x99, 0x52, 0x6a, 0x2b, 0xf6, 0xa6, 0xa1, 0x7b, 0x86, 0x2c, 0x8f, 0x33, 0x4d, 0x42,
0x76, 0xcc, 0x30, 0xf4, 0xa9, 0x30, 0x61, 0x52, 0x29, 0x57, 0xf7, 0xfa, 0x96, 0xf3, 0x40, 0xe8,
0x00, 0xb9, 0x7f, 0x75, 0xe0, 0xf6, 0x95, 0xe9, 0xbc, 0x14, 0xa4, 0xeb, 0x02, 0xf2, 0xa6, 0x30,
0x70, 0x67, 0x70, 0xe7, 0x9a, 0x24, 0xbb, 0xc6, 0xd7, 0xda, 0x92, 0xaf, 0x2e, 0x74, 0x31, 0xf0,
0x59, 0x1c, 0xe2, 0x85, 0x7f, 0xc4, 0x84, 0xbe, 0xfe, 0x5d, 0xaf, 0x8d, 0xc1, 0xa1, 0xa4, 0x3d,
0x64, 0x82, 0xbb, 0x1b, 0xb0, 0x76, 0x30, 0x4d, 0xc5, 0xdc, 0xfd, 0xbb, 0x03, 0x9b, 0x93, 0x59,
0x8a, 0xd9, 0xc3, 0x28, 0x09, 0xce, 0x0e, 0x2e, 0x44, 0x46, 0xc9, 0x97, 0xd0, 0xc3, 0x8c, 0xf2,
0x59, 0x26, 0xaf, 0x4d, 0xc8, 0xe2, 0x13, 0xb5, 0x79, 0xb5, 0x5a, 0x2e, 0xe8, 0xec, 0x1d, 0x68,
0x85, 0x7d, 0x25, 0xef, 0x75, 0xb1, 0xfc, 0x39, 0xfa, 0x25, 0x74, 0x2b, 0x7c, 0x99, 0x13, 0xb2,
0xb7, 0x98, 0x43, 0xa9, 0xb5, 0xcc, 0xe7, 0x94, 0x66, 0x4c, 0xcc, 0x4d, 0x0f, 0x34, 0x5f, 0x32,
0x17, 0x4c, 0x4d, 0x60, 0xa1, 0x3c, 0x4b, 0x5d, 0x76, 0x19, 0x4d, 0x39, 0x0c, 0xb9, 0xfb, 0x21,
0x6c, 0xed, 0x47, 0x0c, 0x63, 0xf1, 0x84, 0x71, 0x81, 0xb1, 0x87, 0xbf, 0x99, 0x21, 0x17, 0x72,
0x87, 0x98, 0x4e, 0xd1, 0x74, 0x58, 0xb5, 0x76, 0x7f, 0x07, 0x3d, 0x8d, 0xf5, 0x93, 0x24, 0x50,
0x08, 0xcb, 0x78, 0xc8, 0xd6, 0xaa, 0x85, 0xe4, 0x72, 0xa1, 0xe7, 0xd6, 0x16, 0x7b, 0xee, 0x2d,
0x68, 0xaa, 0xa6, 0x54, 0xb8, 0xb2, 0x21, 0xfb, 0x0c, 0x0b, 0x79, 0x91, 0x94, 0xa1, 0x66, 0x37,
0x14, 0xbb, 0x6d, 0xfb, 0x06, 0x0b, 0xb9, 0xfb, 0x02, 0xb6, 0x9e, 0x24, 0xc9, 0xd9, 0x2c, 0xd5,
0x6e, 0x58, 0x5f, 0xab, 0x27, 0x74, 0xc6, 0x75, 0xb9, 0x67, 0x7e, 0xc2, 0xeb, 0xe2, 0xed, 0xfe,
0xc7, 0x81, 0xed, 0xaa, 0x59, 0x53, 0x4d, 0x7f, 0x0d, 0x5b, 0xb9, 0x5d, 0x3f, 0x32, 0x67, 0xd6,
0x1b, 0xb4, 0xef, 0x7f, 0x5c, 0x0a, 0xe6, 0x2a, 0x6d, 0xdb, 0xa1, 0x43, 0x0b, 0x96, 0x37, 0x38,
0x5f, 0xa0, 0xf0, 0xd1, 0x05, 0xf4, 0x17, 0xc5, 0x64, 0x2d, 0xc9, 0x77, 0x35, 0xc8, 0x36, 0xad,
0x26, 0xf9, 0x3e, 0xb4, 0x0a, 0x47, 0x6a, 0xca, 0x91, 0xad, 0x8a, 0x23, 0x66, 0xaf, 0x42, 0x8a,
0x6c, 0xc3, 0x1a, 0x66, 0x59, 0x92, 0x99, 0xac, 0xd4, 0x1f, 0xee, 0x8f, 0xa0, 0xf9, 0x8d, 0xa3,
0xe8, 0xfe, 0xd3, 0x81, 0xee, 0x03, 0xce, 0xd9, 0x49, 0x7e, 0x5d, 0xb6, 0x61, 0x4d, 0x57, 0x48,
0xdd, 0x6c, 0xf4, 0x07, 0x19, 0x43, 0xdb, 0x24, 0x77, 0x09, 0xfa, 0x32, 0xe9, 0xda, 0xba, 0x61,
0x12, 0xbe, 0xa1, 0x5d, 0x93, 0x45, 0x6f, 0x61, 0xd2, 0x5a, 0xbb, 0x74, 0xd2, 0x5a, 0x2f, 0x4d,
0x5a, 0xef, 0x42, 0x4b, 0x29, 0xc5, 0x49, 0x88, 0x66, 0x04, 0x6b, 0x4a, 0xc2, 0xd3, 0x24, 0x44,
0xf7, 0xcf, 0x0e, 0xf4, 0xec, 0x69, 0x4c, 0xe4, 0xfb, 0x50, 0x3f, 0xce, 0xd1, 0x97, 0x4b, 0x8b,
0x51, 0xed, 0x32, 0x8c, 0x96, 0xa6, 0xcb, 0x1c, 0x91, 0x46, 0x19, 0x91, 0x3c, 0x18, 0x6b, 0xa5,
0x60, 0x48, 0x97, 0xe9, 0x4c, 0x9c, 0x5a, 0x97, 0xe5, 0xda, 0x3d, 0x81, 0xc1, 0x44, 0x50, 0xc1,
0xb8, 0x60, 0x01, 0xb7, 0x30, 0x2f, 0x00, 0xea, 0x5c, 0x07, 0x68, 0xed, 0x32, 0x40, 0xeb, 0x39,
0xa0, 0xee, 0x3f, 0x1c, 0x20, 0xe5, 0x9d, 0x0c, 0x04, 0x6f, 0x60, 0x2b, 0x09, 0x99, 0x48, 0x84,
0x1c, 0x13, 0x64, 0x43, 0x37, 0x6d, 0x59, 0x51, 0xe4, 0x58, 0x22, 0xa3, 0x34, 0xe3, 0x18, 0x6a,
0xae, 0xee, 0xc9, 0x4d, 0x49, 0x50, 0xcc, 0x6a, 0x4b, 0x5f, 0x5f, 0x68, 0xe9, 0xee, 0x03, 0x68,
0x4f, 0x44, 0x92, 0xd1, 0x13, 0x7c, 0x31, 0x4f, 0xbf, 0x8e, 0xf7, 0xc6, 0xbb, 0x5a, 0x01, 0xc4,
0x18, 0x60, 0xbf, 0xf0, 0x7e, 0x55, 0x01, 0xfc, 0x2d, 0xdc, 0x2c, 0x24, 0x64, 0xbd, 0xb4, 0x71,
0xf9, 0x14, 0x76, 0x58, 0x1c, 0x44, 0xb3, 0x10, 0xfd, 0x58, 0xb6, 0x9f, 0x28, 0x9f, 0x6a, 0x1d,
0x35, 0x0c, 0x6c, 0x1b, 0xee, 0x53, 0xc5, 0xb4, 0xd3, 0xed, 0x47, 0x40, 0xac, 0x16, 0x06, 0xb9,
0x46, 0x4d, 0x69, 0xf4, 0x0d, 0xe7, 0x20, 0x30, 0xd2, 0xee, 0x73, 0xd8, 0x59, 0xdc, 0xdc, 0x84,
0xea, 0x07, 0xd0, 0x2e, 0x60, 0xb7, 0xf5, 0xe9, 0x66, 0xa9, 0x2c, 0x14, 0x7a, 0x5e, 0x59, 0xd2,
0xfd, 0x2e, 0xbc, 0x53, 0xb0, 0x1e, 0xa9, 0x42, 0x7b, 0x55, 0xfd, 0x1f, 0xc1, 0x70, 0x59, 0x5c,
0xfb, 0xe0, 0xfe, 0xab, 0x06, 0x9d, 0x47, 0x26, 0xa3, 0x64, 0x0f, 0x2e, 0x75, 0xdd, 0x96, 0xea,
0xba, 0x77, 0xa1, 0x53, 0x79, 0x69, 0xe9, 0x71, 0xae, 0x7d, 0x5e, 0x7a, 0x66, 0xad, 0x7a, 0x90,
0xd5, 0x95, 0xd8, 0xe2, 0x83, 0xec, 0x1e, 0x0c, 0x8e, 0x33, 0xc4, 0xe5, 0xb7, 0x5b, 0xc3, 0xdb,
0x94, 0x8c, 0xb2, 0xec, 0x1e, 0x6c, 0xd1, 0x40, 0xb0, 0xf3, 0x05, 0x69, 0x7d, 0xbf, 0x06, 0x9a,
0x55, 0x96, 0xff, 0x3c, 0x77, 0x94, 0xc5, 0xc7, 0x09, 0x1f, 0xae, 0x7f, 0xfd, 0xb7, 0x97, 0x39,
0x8d, 0xe4, 0x70, 0xf2, 0x0c, 0x7a, 0x76, 0x86, 0x37, 0x96, 0x36, 0x5e, 0xfb, 0x7d, 0xd0, 0xc1,
0x82, 0xc5, 0xdd, 0x3f, 0xd4, 0xa0, 0xe9, 0xd1, 0xe0, 0xec, 0xed, 0xc6, 0xf7, 0x33, 0xd8, 0xcc,
0x6b, 0x71, 0x05, 0xe2, 0x77, 0x4a, 0xc0, 0x94, 0xaf, 0x92, 0xd7, 0x0d, 0x4b, 0x5f, 0xdc, 0xfd,
0x9f, 0x03, 0xbd, 0x47, 0x79, 0xbd, 0x7f, 0xbb, 0xc1, 0xb8, 0x0f, 0x20, 0x1b, 0x54, 0x05, 0x87,
0x72, 0x43, 0xb7, 0xe1, 0xf6, 0x5a, 0x99, 0x59, 0x71, 0xf7, 0x4f, 0x35, 0xe8, 0xbc, 0x48, 0xd2,
0x24, 0x4a, 0x4e, 0xe6, 0x6f, 0xf7, 0xe9, 0x0f, 0x60, 0x50, 0xea, 0xe5, 0x15, 0x10, 0x6e, 0x2d,
0x5c, 0x86, 0x22, 0xd8, 0xde, 0x66, 0x58, 0xf9, 0xe6, 0xee, 0x16, 0x0c, 0xcc, 0x5c, 0x5a, 0x94,
0x64, 0xf7, 0xf7, 0x0e, 0x90, 0x32, 0xd5, 0xd4, 0xca, 0x1f, 0x43, 0x57, 0x18, 0xec, 0xd4, 0x7e,
0x66, 0x34, 0x2f, 0xdf, 0xbd, 0x32, 0xb6, 0x5e, 0x47, 0x94, 0x91, 0xfe, 0x1e, 0x6c, 0x2f, 0xbd,
0xaf, 0xfd, 0xe9, 0x91, 0x41, 0x78, 0xb0, 0xf0, 0xc4, 0xfe, 0xe2, 0xc8, 0xfd, 0x14, 0x6e, 0xea,
0xe1, 0xd0, 0xd6, 0x71, 0x5b, 0x5f, 0x97, 0xa6, 0xbc, 0x6e, 0x31, 0xe5, 0xb9, 0xff, 0x75, 0x60,
0x67, 0x51, 0xcd, 0xf8, 0x7f, 0x95, 0x1e, 0xa1, 0x40, 0x4c, 0xbd, 0x29, 0xcf, 0xab, 0x7a, 0x4c,
0xfc, 0x64, 0x69, 0x5e, 0x5d, 0xb4, 0xbd, 0x67, 0xeb, 0x50, 0x31, 0xb2, 0xf6, 0x79, 0x95, 0xc0,
0x47, 0x14, 0x06, 0x4b, 0x62, 0x72, 0xaa, 0xb7, 0xfb, 0x1a, 0x9f, 0x36, 0x8c, 0xe2, 0x37, 0x18,
0x58, 0xef, 0xff, 0x7b, 0x0d, 0x36, 0x26, 0x48, 0x5f, 0x21, 0x86, 0xe4, 0x10, 0xba, 0x13, 0x8c,
0xc3, 0xe2, 0xbf, 0xdf, 0x76, 0x49, 0x39, 0xa7, 0x8e, 0xbe, 0xb5, 0x8a, 0x9a, 0xf7, 0xa6, 0x1b,
0xbb, 0xce, 0xc7, 0x0e, 0x79, 0x06, 0xdd, 0xc7, 0x88, 0xe9, 0x7e, 0x12, 0xc7, 0x18, 0x08, 0x0c,
0xc9, 0x7b, 0xe5, 0x0e, 0xb9, 0xfc, 0x04, 0x1a, 0xdd, 0x5a, 0x2a, 0xd4, 0xd6, 0x5b, 0x63, 0xf1,
0x39, 0x74, 0xca, 0x93, 0x7f, 0xc5, 0xe0, 0x8a, 0x77, 0xca, 0xe8, 0xce, 0x35, 0x4f, 0x06, 0xf7,
0x06, 0xf9, 0x0c, 0xd6, 0xf5, 0x28, 0x4a, 0x86, 0x25, 0xe1, 0xca, 0xac, 0x5d, 0xf1, 0xab, 0x3a,
0xb7, 0xba, 0x37, 0xc8, 0x63, 0x80, 0x62, 0x98, 0x23, 0x65, 0x5c, 0x96, 0xa6, 0xc9, 0xd1, 0xed,
0x4b, 0xb8, 0xb9, 0xb1, 0x5f, 0x40, 0xaf, 0x3a, 0x72, 0x90, 0xf1, 0xca, 0xa9, 0xa2, 0x94, 0x77,
0xa3, 0xbb, 0x57, 0x48, 0xe4, 0x86, 0x7f, 0x05, 0xfd, 0xc5, 0x49, 0x82, 0xb8, 0x2b, 0x15, 0x2b,
0x53, 0xc9, 0xe8, 0xfd, 0x2b, 0x65, 0xca, 0x20, 0x14, 0xa9, 0x5f, 0x01, 0x61, 0xa9, 0x4e, 0x54,
0x40, 0x58, 0xae, 0x17, 0x1a, 0x84, 0x6a, 0xbe, 0x54, 0x40, 0x58, 0x99, 0xdd, 0x15, 0x10, 0x56,
0x27, 0x9b, 0x7b, 0xe3, 0x68, 0x5d, 0xfd, 0xe2, 0xfe, 0xe4, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff,
0x76, 0xec, 0xe7, 0x98, 0xf2, 0x16, 0x00, 0x00,
}

View file

@ -87,7 +87,10 @@ func NewFilerServer(defaultMux, readonlyMux *http.ServeMux, option *FilerOption)
readonlyMux.HandleFunc("/", fs.readonlyFilerHandler)
}
stats.StartPushingMetric("filer", stats.SourceName(option.Port), stats.FilerGather, option.MetricsAddress, option.MetricsIntervalSec)
go stats.LoopPushingMetric("filer", stats.SourceName(option.Port), stats.FilerGather,
func() (addr string, intervalSeconds int) {
return option.MetricsAddress, option.MetricsIntervalSec
})
return fs, nil
}

View file

@ -156,7 +156,9 @@ func (ms *MasterServer) SendHeartbeat(stream master_pb.Seaweed_SendHeartbeatServ
return err
}
if err := stream.Send(&master_pb.HeartbeatResponse{
Leader: newLeader,
Leader: newLeader,
MetricsAddress: ms.metricsAddress,
MetricsIntervalSeconds: uint32(ms.metricsIntervalSec),
}); err != nil {
return err
}

View file

@ -34,6 +34,8 @@ type MasterServer struct {
defaultReplicaPlacement string
garbageThreshold float64
guard *security.Guard
metricsAddress string
metricsIntervalSec int
Topo *topology.Topology
vg *topology.VolumeGrowth
@ -56,6 +58,8 @@ func NewMasterServer(r *mux.Router, port int, metaFolder string,
garbageThreshold float64,
whiteList []string,
disableHttp bool,
metricsAddress string,
metricsIntervalSec int,
) *MasterServer {
v := viper.GetViper()
@ -80,6 +84,8 @@ func NewMasterServer(r *mux.Router, port int, metaFolder string,
garbageThreshold: garbageThreshold,
clientChans: make(map[string]chan *master_pb.VolumeLocation),
grpcDialOpiton: security.LoadClientTLS(v.Sub("grpc"), "master"),
metricsAddress: metricsAddress,
metricsIntervalSec: metricsIntervalSec,
}
ms.bounedLeaderChan = make(chan int, 16)
seq := sequence.NewMemorySequencer()

View file

@ -86,6 +86,10 @@ func (vs *VolumeServer) doHeartbeat(ctx context.Context, masterNode, masterGrpcA
doneChan <- nil
return
}
if in.GetMetricsAddress() != "" && vs.MetricsAddress != in.GetMetricsAddress() {
vs.MetricsAddress = in.GetMetricsAddress()
vs.MetricsIntervalSec = int(in.GetMetricsIntervalSeconds())
}
}
}()

View file

@ -41,8 +41,6 @@ func NewVolumeServer(adminMux, publicMux *http.ServeMux, ip string,
fixJpgOrientation bool,
readRedirect bool,
compactionMBPerSecond int,
metricsAddress string,
metricsIntervalSec int,
) *VolumeServer {
v := viper.GetViper()
@ -88,7 +86,10 @@ func NewVolumeServer(adminMux, publicMux *http.ServeMux, ip string,
go vs.heartbeat()
hostAddress := fmt.Sprintf("%s:%d", ip, port)
stats.StartPushingMetric("volumeServer", hostAddress, stats.VolumeServerGather, metricsAddress, metricsIntervalSec)
go stats.LoopPushingMetric("volumeServer", hostAddress, stats.VolumeServerGather,
func() (addr string, intervalSeconds int) {
return vs.MetricsAddress, vs.MetricsIntervalSec
})
return vs
}

View file

@ -86,25 +86,29 @@ func init() {
}
func StartPushingMetric(name, instance string, gatherer *prometheus.Registry, addr string, intervalSeconds int) {
if intervalSeconds == 0 || addr == "" {
glog.V(0).Info("disable metrics reporting")
return
}
glog.V(0).Infof("push metrics to %s every %d seconds", addr, intervalSeconds)
go loopPushMetrics(name, instance, gatherer, addr, intervalSeconds)
}
func loopPushMetrics(name, instance string, gatherer *prometheus.Registry, addr string, intervalSeconds int) {
func LoopPushingMetric(name, instance string, gatherer *prometheus.Registry, fnGetMetricsDest func() (addr string, intervalSeconds int)) {
addr, intervalSeconds := fnGetMetricsDest()
pusher := push.New(addr, name).Gatherer(gatherer).Grouping("instance", instance)
currentAddr := addr
for {
err := pusher.Push()
if err != nil {
glog.V(0).Infof("could not push metrics to prometheus push gateway %s: %v", addr, err)
if currentAddr != "" {
err := pusher.Push()
if err != nil {
glog.V(0).Infof("could not push metrics to prometheus push gateway %s: %v", addr, err)
}
}
if intervalSeconds <= 0 {
intervalSeconds = 15
}
time.Sleep(time.Duration(intervalSeconds) * time.Second)
addr, intervalSeconds = fnGetMetricsDest()
if currentAddr != addr {
pusher = push.New(addr, name).Gatherer(gatherer).Grouping("instance", instance)
currentAddr = addr
}
}
}