本文整理汇总了Golang中github.com/funkygao/golib/color.Red函数的典型用法代码示例。如果您正苦于以下问题:Golang Red函数的具体用法?Golang Red怎么用?Golang Red使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Red函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: printControllers
// Print all controllers of all clusters within a zone.
func (this *Controllers) printControllers(zkzone *zk.ZkZone) {
this.Ui.Output(zkzone.Name())
zkzone.ForSortedControllers(func(cluster string, controller *zk.ControllerMeta) {
if !patternMatched(cluster, this.cluster) {
return
}
this.Ui.Output(strings.Repeat(" ", 4) + cluster)
if controller == nil {
this.Ui.Output(fmt.Sprintf("\t%s", color.Red("empty")))
} else {
epochSince := time.Since(controller.Mtime.Time())
epochSinceStr := gofmt.PrettySince(controller.Mtime.Time())
if epochSince < time.Hour*2*24 {
epochSinceStr = color.Red(epochSinceStr)
}
this.Ui.Output(fmt.Sprintf("\t%-2s %21s epoch:%2s/%-20s uptime:%s",
controller.Broker.Id, controller.Broker.Addr(),
controller.Epoch,
epochSinceStr,
gofmt.PrettySince(controller.Broker.Uptime())))
}
})
}
开发者ID:chendx79,项目名称:gafka,代码行数:26,代码来源:controllers.go
示例2: diagnose
func (this *Ping) diagnose() {
this.zkzone.ForSortedClusters(func(zkcluster *zk.ZkCluster) {
registeredBrokers := zkcluster.RegisteredInfo().Roster
for _, broker := range registeredBrokers {
log.Debug("ping %s", broker.Addr())
kfk, err := sarama.NewClient([]string{broker.Addr()}, sarama.NewConfig())
if err != nil {
log.Error("%25s %30s %s", broker.Addr(), broker.NamedAddr(), color.Red(err.Error()))
continue
}
_, err = kfk.Topics() // kafka didn't provide ping, so use Topics() as ping
if err != nil {
log.Error("%25s %30s %s", broker.Addr(), broker.NamedAddr(), color.Red(err.Error()))
} else {
if !this.problematicMode {
log.Info("%25s %30s %s", broker.Addr(), broker.NamedAddr(), color.Green("ok"))
}
}
kfk.Close()
}
})
}
开发者ID:chendx79,项目名称:gafka,代码行数:26,代码来源:ping.go
示例3: installGuide
func (this *Kateway) installGuide(zkzone *zk.ZkZone) {
this.Ui.Output(color.Red("manager db GRANT access rights to this ip"))
this.Ui.Output(color.Red("gk deploy -kfkonly"))
this.Ui.Output("")
this.Ui.Output("mkdir -p /var/wd/kateway/sbin")
this.Ui.Output("cd /var/wd/kateway")
kateways, err := zkzone.KatewayInfos()
swallow(err)
nextId := 1
for _, kw := range kateways {
id, _ := strconv.Atoi(kw.Id)
if nextId < id {
nextId = id
}
}
nextId++
zone := ctx.Zone(this.zone)
influxAddr := zone.InfluxAddr
if influxAddr != "" && !strings.HasPrefix(influxAddr, "http://") {
influxAddr = "http://" + influxAddr
}
var influxInfo string
if influxAddr != "" {
influxInfo = "-influxdbaddr " + influxAddr
}
this.Ui.Output(fmt.Sprintf(`nohup ./sbin/kateway -zone prod -id %d -debughttp ":10194" -level trace -log kateway.log -crashlog panic %s &`,
nextId, influxInfo))
this.Ui.Output("")
this.Ui.Output("yum install -y logstash")
this.Ui.Output("/etc/logstash/conf.d/kateway.conf")
this.Ui.Output(strings.TrimSpace(fmt.Sprintf(`
input {
file {
path => "/var/wd/kateway/kateway.log"
type => "kateway"
}
file {
path => "/var/wd/kateway/panic"
type => "kateway_panic"
}
}
output {
kafka {
bootstrap_servers => "%s:11003,%s:11003"
topic_id => "pubsub_log"
}
}
`, color.Red("k11003a.mycorp.kfk.com"), color.Red("k11003b.mycorp.kfk.com"))))
this.Ui.Output("")
this.Ui.Output("chkconfig --add logstash")
this.Ui.Output("/etc/init.d/logstash start")
}
开发者ID:funkygao,项目名称:gafka,代码行数:58,代码来源:kateway.go
示例4: invalid
func (this *argsRule) invalid(args []string) bool {
argSet := make(map[string]struct{}, len(args))
for _, arg := range args {
argSet[arg] = struct{}{}
}
// required
for _, req := range this.requires {
if _, present := argSet[req]; !present {
this.ui.Error(color.Red("%s required", req))
this.ui.Output(this.cmd.Help())
return true
}
}
// conditions
for when, requires := range this.conditions {
if _, present := argSet[when]; present {
for _, req := range requires {
if _, found := argSet[req]; !found {
this.ui.Error(color.Red("%s required when %s present",
req, when))
this.ui.Output(this.cmd.Help())
return true
}
}
}
}
// admin required
adminAuthRequired := false
for _, arg := range args {
if _, present := this.adminRequires[arg]; present {
adminAuthRequired = true
break
}
}
if adminAuthRequired {
if pass := os.Getenv("GK_PASS"); Authenticator("", pass) {
return false
}
pass, err := this.ui.AskSecret("password for admin(or GK_PASS): ")
this.ui.Output("")
if err != nil {
this.ui.Error(err.Error())
return true
}
if !Authenticator("", pass) {
this.ui.Error("invalid admin password, bye!")
return true
}
}
return false
}
开发者ID:chendx79,项目名称:gafka,代码行数:56,代码来源:utils.go
示例5: Debugf
func Debugf(format string, args ...interface{}) {
if Debug {
pc, file, line, ok := runtime.Caller(1)
if !ok {
file = "<?>"
line = 0
} else {
if i := strings.LastIndex(file, "/"); i >= 0 {
file = file[i+1:]
}
}
fn := runtime.FuncForPC(pc).Name()
fnparts := strings.Split(fn, "/")
t := time.Now()
hour, min, sec := t.Clock()
nanosec := t.Nanosecond() / 1e3
debugLock.Lock()
fmt.Printf("DEBUG: [%02d:%02d:%02d.%04d] %s:%d(%s): %s\n",
hour, min, sec, nanosec,
file, line, color.Red(fnparts[len(fnparts)-1]),
fmt.Sprintf(format, args...))
debugLock.Unlock()
}
}
开发者ID:postfix,项目名称:golib-1,代码行数:25,代码来源:debug.go
示例6: displayZoneTop
func (this *Zktop) displayZoneTop(zkzone *zk.ZkZone) {
if this.batchMode {
this.Ui.Output(fmt.Sprintf("%s %s", zkzone.Name(), bjtime.NowBj()))
} else {
this.Ui.Output(color.Green(zkzone.Name()))
}
header := "VER SERVER PORT M OUTST RECVD SENT CONNS ZNODES LAT(MIN/AVG/MAX)"
this.Ui.Output(header)
stats := zkzone.RunZkFourLetterCommand("stat")
sortedHosts := make([]string, 0, len(stats))
for hp, _ := range stats {
sortedHosts = append(sortedHosts, hp)
}
sort.Strings(sortedHosts)
for _, hostPort := range sortedHosts {
host, port, err := net.SplitHostPort(hostPort)
if err != nil {
panic(err)
}
stat := zk.ParseStatResult(stats[hostPort])
if stat.Mode == "" {
if this.batchMode {
stat.Mode = "E"
} else {
stat.Mode = color.Red("E")
}
} else if stat.Mode == "L" && !this.batchMode {
stat.Mode = color.Blue(stat.Mode)
}
var sentQps, recvQps int
if lastRecv, present := this.lastRecvs[hostPort]; present {
r1, _ := strconv.Atoi(stat.Received)
r0, _ := strconv.Atoi(lastRecv)
recvQps = (r1 - r0) / int(this.refreshInterval.Seconds())
s1, _ := strconv.Atoi(stat.Sent)
s0, _ := strconv.Atoi(this.lastSents[hostPort])
sentQps = (s1 - s0) / int(this.refreshInterval.Seconds())
}
this.Ui.Output(fmt.Sprintf("%-15s %-15s %5s %1s %6s %16s %16s %5s %7s %s",
stat.Version, // 15
host, // 15
port, // 5
stat.Mode, // 1
stat.Outstanding, // 6
fmt.Sprintf("%s/%d", stat.Received, recvQps), // 16
fmt.Sprintf("%s/%d", stat.Sent, sentQps), // 16
stat.Connections, // 5
stat.Znodes, // 7
stat.Latency,
))
this.lastRecvs[hostPort] = stat.Received
this.lastSents[hostPort] = stat.Sent
}
}
开发者ID:funkygao,项目名称:gafka,代码行数:60,代码来源:zktop.go
示例7: debug
func (t *routingTable) debug(format string, v ...interface{}) {
if t.logLevel <= LogLevelDebug {
pc, file, line, ok := runtime.Caller(1)
if !ok {
file = "<?>"
line = 0
} else {
if i := strings.LastIndex(file, "/"); i >= 0 {
file = file[i+1:]
}
}
fn := runtime.FuncForPC(pc).Name()
fnparts := strings.Split(fn, "/")
t1 := time.Now()
hour, min, sec := t1.Clock()
nanosec := t1.Nanosecond() / 1e3
debugLock.Lock()
fmt.Printf(t.self.ID.String()+" [%d:%d:%d.%04d] %s:%d(%s): %s\n",
hour, min, sec, nanosec,
file, line, color.Red(fnparts[len(fnparts)-1]),
fmt.Sprintf(format, v...))
debugLock.Unlock()
}
}
开发者ID:funkygao,项目名称:pastry,代码行数:26,代码来源:table.go
示例8: clusterBrokers
func (this *Brokers) clusterBrokers(zone, cluster string, brokers map[string]*zk.BrokerZnode) []string {
if !patternMatched(cluster, this.cluster) {
return nil
}
if brokers == nil || len(brokers) == 0 {
return []string{fmt.Sprintf("%s|%s|%s|%s|%s",
zone, cluster, " ", color.Red("empty brokers"), " ")}
}
lines := make([]string, 0, len(brokers))
if this.staleOnly {
// try each broker's aliveness
for brokerId, broker := range brokers {
cf := sarama.NewConfig()
cf.Net.ReadTimeout = time.Second * 4
cf.Net.WriteTimeout = time.Second * 4
kfk, err := sarama.NewClient([]string{broker.Addr()}, cf)
if err != nil {
lines = append(lines, fmt.Sprintf("%s|%s|%s|%s|%s",
zone, cluster,
brokerId, broker.Addr(),
fmt.Sprintf("%s: %v", gofmt.PrettySince(broker.Uptime()), err)))
} else {
kfk.Close()
}
}
return lines
}
// sort by broker id
sortedBrokerIds := make([]string, 0, len(brokers))
for brokerId, _ := range brokers {
sortedBrokerIds = append(sortedBrokerIds, brokerId)
}
sort.Strings(sortedBrokerIds)
for _, brokerId := range sortedBrokerIds {
b := brokers[brokerId]
uptime := gofmt.PrettySince(b.Uptime())
if time.Since(b.Uptime()) < time.Hour*24*7 {
uptime = color.Green(uptime)
}
if this.ipInNumber {
lines = append(lines, fmt.Sprintf("%s|%s|%s|%s|%s",
zone, cluster,
brokerId, b.Addr(),
gofmt.PrettySince(b.Uptime())))
} else {
lines = append(lines, fmt.Sprintf("%s|%s|%s|%s|%s",
zone, cluster,
brokerId, b.NamedAddr(),
gofmt.PrettySince(b.Uptime())))
}
}
return lines
}
开发者ID:chendx79,项目名称:gafka,代码行数:59,代码来源:brokers.go
示例9: printSwallowedErrors
func printSwallowedErrors(ui cli.Ui, zkzone *zk.ZkZone) {
errs := zkzone.Errors()
if len(errs) == 0 {
return
}
for _, e := range errs {
ui.Error(color.Red("%v", e))
}
}
开发者ID:chendx79,项目名称:gafka,代码行数:10,代码来源:utils.go
示例10: debug
func (c *Cluster) debug(format string, v ...interface{}) {
if c.logLevel <= LogLevelDebug {
pc, file, line, ok := runtime.Caller(1)
if !ok {
file = "<?>"
line = 0
} else {
if i := strings.LastIndex(file, "/"); i >= 0 {
file = file[i+1:]
}
}
fn := runtime.FuncForPC(pc).Name()
fnparts := strings.Split(fn, "/")
t := time.Now()
hour, min, sec := t.Clock()
nanosec := t.Nanosecond() / 1e3
debugLock.Lock()
var nodePrefix string = c.self.ID.String()
switch c.color {
case "red":
nodePrefix = color.Red(c.self.ID.String())
case "blue":
nodePrefix = color.Blue(c.self.ID.String())
case "yellow":
nodePrefix = color.Yellow(c.self.ID.String())
case "green":
nodePrefix = color.Green(c.self.ID.String())
}
fmt.Printf(nodePrefix+" [%d:%d:%d.%04d] %s:%d(%s): %s\n",
hour, min, sec, nanosec,
file, line, color.Red(fnparts[len(fnparts)-1]),
fmt.Sprintf(format, v...))
debugLock.Unlock()
}
}
开发者ID:funkygao,项目名称:pastry,代码行数:36,代码来源:cluster.go
示例11: RunZkFourLetterCommand
// Returns {zkHost: outputLines}
func (this *ZkZone) RunZkFourLetterCommand(cmd string) map[string]string {
servers := this.conf.ZkServers()
r := make(map[string]string, len(servers))
for _, server := range servers {
b, err := zkFourLetterWord(server, cmd, time.Minute)
if err != nil {
r[server] = color.Red(err.Error())
} else {
r[server] = string(b)
}
}
return r
}
开发者ID:chendx79,项目名称:gafka,代码行数:16,代码来源:flw.go
示例12: sub
func sub(id int) {
cf := api.DefaultConfig("app2", "mysecret")
cf.Debug = true
cf.Sub.Endpoint = addr
c := api.NewClient(cf)
i := 0
t0 := time.Now()
var err error
opt := api.SubOption{
AppId: appid,
Topic: topic,
Ver: "v1",
Group: group,
Tag: tag,
}
err = c.SubX(opt, func(statusCode int, msg []byte,
r *api.SubXResult) error {
i++
if n > 0 && i >= n {
return api.ErrSubStop
}
if i%step == 0 {
log.Println(statusCode, string(msg))
}
if sleep > 0 {
time.Sleep(sleep)
}
r.Bury = api.ShadowRetry
log.Println(color.Red("shadow"))
log.Println()
return nil
})
if err != nil {
log.Println(err)
}
elapsed := time.Since(t0)
log.Printf("%d msgs in %s, tps: %.2f\n", n, elapsed, float64(n)/elapsed.Seconds())
}
开发者ID:funkygao,项目名称:gafka,代码行数:46,代码来源:bury.go
示例13: verifyBrokers
func (this *Clusters) verifyBrokers(zkzone *zk.ZkZone) {
this.Ui.Output(zkzone.Name())
zkzone.ForSortedBrokers(func(cluster string, liveBrokers map[string]*zk.BrokerZnode) {
zkcluster := zkzone.NewCluster(cluster)
registeredBrokers := zkcluster.RegisteredInfo().Roster
// find diff between registeredBrokers and liveBrokers
// loop1 find liveBrokers>registeredBrokers
for _, broker := range liveBrokers {
foundInRoster := false
for _, b := range registeredBrokers {
bid := strconv.Itoa(b.Id)
if bid == broker.Id && broker.Addr() == b.Addr() {
foundInRoster = true
break
}
}
if !foundInRoster {
// should manually register the broker
this.Ui.Output(strings.Repeat(" ", 4) +
color.Green("+ gk clusters -z %s -s -c %s -addbroker %s:%s",
zkzone.Name(), cluster, broker.Id, broker.Addr()))
}
}
// loop2 find liveBrokers<registeredBrokers
for _, b := range registeredBrokers {
foundInLive := false
for _, broker := range liveBrokers {
bid := strconv.Itoa(b.Id)
if bid == broker.Id && broker.Addr() == b.Addr() {
foundInLive = true
break
}
}
if !foundInLive {
// the broker is dead
this.Ui.Output(strings.Repeat(" ", 4) +
color.Red("cluster[%s] broker[%d] %s is dead", cluster, b.Id, b.Addr()))
}
}
})
}
开发者ID:funkygao,项目名称:gafka,代码行数:45,代码来源:clusters.go
示例14: discoverClusters
func (this *Discover) discoverClusters(zkzone *zk.ZkZone) {
this.Ui.Output(zkzone.Name())
existingClusters := zkzone.Clusters()
existingCluserPaths := make(map[string]struct{}, len(existingClusters))
for _, path := range existingClusters {
existingCluserPaths[path] = struct{}{}
}
discoveredClusters, err := zkzone.DiscoverClusters("/")
if err != nil {
this.Ui.Error(zkzone.Name() + ": " + err.Error())
return
}
// print each cluster state: new, normal
for _, zkpath := range discoveredClusters {
if _, present := existingCluserPaths[zkpath]; !present {
this.Ui.Output(strings.Repeat(" ", 4) + color.Green("%s +++",
zkpath))
} else {
this.Ui.Output(strings.Repeat(" ", 4) + zkpath)
}
}
// find the offline clusters
for c, path := range existingClusters {
path = strings.TrimSpace(path)
foundOnline := false
for _, p := range discoveredClusters {
p = strings.TrimSpace(p)
if p == path {
foundOnline = true
break
}
}
if !foundOnline {
this.Ui.Output(strings.Repeat(" ", 4) + color.Red("%s: %s ---", c, path))
}
}
}
开发者ID:funkygao,项目名称:gafka,代码行数:41,代码来源:discover.go
示例15: verifyPub
func (this *Verify) verifyPub() {
table := tablewriter.NewWriter(os.Stdout)
table.SetHeader([]string{"Kafka", "Stock", "PubSub", "Stock", "Diff", "?"})
for _, t := range this.topics {
if t.KafkaTopicName == "" {
continue
}
kafkaCluster := this.kafkaTopics[t.KafkaTopicName]
if kafkaCluster == "" {
this.Ui.Warn(fmt.Sprintf("invalid kafka topic: %s", t.KafkaTopicName))
continue
}
psubTopic := manager.Default.KafkaTopic(t.AppId, t.TopicName, "v1")
offsets := this.pubOffsetDiff(t.KafkaTopicName, kafkaCluster,
psubTopic, this.cluster)
var diff string
if offsets[0] == 0 && offsets[1] != 0 {
diff = color.Yellow("%d", offsets[1]-offsets[0])
} else if math.Abs(float64(offsets[0]-offsets[1])) < 20 {
diff = color.Green("%d", offsets[1]-offsets[0])
} else {
diff = color.Red("%d", offsets[1]-offsets[0])
}
problem := "N"
if _, present := this.problemeticTopics[t.KafkaTopicName]; present {
problem = color.Yellow("Y")
}
table.Append([]string{
t.KafkaTopicName, fmt.Sprintf("%d", offsets[0]),
t.TopicName, fmt.Sprintf("%d", offsets[1]), diff, problem})
}
table.Render()
}
开发者ID:funkygao,项目名称:gafka,代码行数:37,代码来源:verify.go
示例16: printConsumersLag
func (this *Lags) printConsumersLag(zkcluster *zk.ZkCluster) {
// sort by group name
consumersByGroup := zkcluster.ConsumersByGroup(this.groupPattern)
sortedGroups := make([]string, 0, len(consumersByGroup))
for group, _ := range consumersByGroup {
sortedGroups = append(sortedGroups, group)
}
sort.Strings(sortedGroups)
for _, group := range sortedGroups {
lines := make([]string, 0, 100)
sortedTopicAndPartitionIds := make([]string, 0)
consumers := make(map[string]zk.ConsumerMeta)
for _, t := range consumersByGroup[group] {
key := fmt.Sprintf("%s:%s", t.Topic, t.PartitionId)
sortedTopicAndPartitionIds = append(sortedTopicAndPartitionIds, key)
consumers[key] = t
}
sort.Strings(sortedTopicAndPartitionIds)
for _, topicAndPartitionId := range sortedTopicAndPartitionIds {
consumer := consumers[topicAndPartitionId]
if !patternMatched(consumer.Topic, this.topicPattern) {
continue
}
var (
lagOutput string
symbol string
)
if consumer.Lag > int64(this.lagThreshold) {
lagOutput = color.Red("%15s", gofmt.Comma(consumer.Lag))
if consumer.Online {
symbol = color.Yellow("⚠︎︎")
} else {
symbol = color.Yellow("◎")
}
} else {
lagOutput = color.Blue("%15s", gofmt.Comma(consumer.Lag))
if consumer.Online {
symbol = color.Green("◉")
} else {
symbol = color.Yellow("◎")
}
}
if consumer.Online {
if this.problematicMode && consumer.Lag <= int64(this.lagThreshold) {
continue
}
var (
host string
uptime string
)
if consumer.ConsumerZnode == nil {
host = "unrecognized"
uptime = "-"
} else {
host = color.Green("%s", consumer.ConsumerZnode.Host())
if time.Since(consumer.ConsumerZnode.Uptime()) < time.Hour {
uptime = color.Magenta(gofmt.PrettySince(consumer.ConsumerZnode.Uptime()))
} else {
uptime = gofmt.PrettySince(consumer.ConsumerZnode.Uptime())
}
}
lines = append(lines, fmt.Sprintf("\t%s %35s/%-2s %12s -> %-15s %s %-10s %s %s",
symbol,
consumer.Topic, consumer.PartitionId,
gofmt.Comma(consumer.ProducerOffset),
gofmt.Comma(consumer.ConsumerOffset),
lagOutput,
gofmt.PrettySince(consumer.Mtime.Time()),
host, uptime))
} else if !this.onlineOnly {
lines = append(lines, fmt.Sprintf("\t%s %35s/%-2s %12s -> %-12s %s %s",
symbol,
consumer.Topic, consumer.PartitionId,
gofmt.Comma(consumer.ProducerOffset),
gofmt.Comma(consumer.ConsumerOffset),
lagOutput,
gofmt.PrettySince(consumer.Mtime.Time())))
}
}
if len(lines) > 0 {
this.Ui.Output(strings.Repeat(" ", 4) + group)
for _, l := range lines {
this.Ui.Output(l)
}
}
}
}
开发者ID:chendx79,项目名称:gafka,代码行数:97,代码来源:lags.go
示例17: consumeSample
func (*Sample) consumeSample() string {
return fmt.Sprintf(`
public class KafkaConsumer {
private final ConsumerConnector consumer;
private KafkaConsumer() {
Properties props = new Properties();
props.put("%s", "zk2181a.wdds.zk.com:2181,zk2181b.wdds.zk.com:2181,zk2181c.wdds.zk.com:2181/kafka");
props.put("%s", "group1");
props.put("zookeeper.session.timeout.ms", "4000");
props.put("zookeeper.sync.time.ms", "200");
props.put("auto.commit.interval.ms", "60000"); // 1m
//props.put("auto.offset.reset", "smallest"); // largest | smallest
props.put("serializer.class", "kafka.serializer.StringEncoder");
ConsumerConfig config = new ConsumerConfig(props);
consumer = kafka.consumer.Consumer.createJavaConsumerConnector(config);
}
public void shutdown() {
if (consumer != null) {
consumer.shutdown();
}
}
void consume(String topic, int %s) {
// %s
// %s
// %s
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
consumer.shutdown();
}
});
Map<String, Integer> topicCountMap = new HashMap<String, Integer>();
topicCountMap.put(topic, %s);
StringDecoder keyDecoder = new StringDecoder(new VerifiableProperties());
StringDecoder valueDecoder = new StringDecoder(new VerifiableProperties());
Map<String, List<KafkaStream<String, String>>> consumerMap =
consumer.createMessageStreams(topicCountMap, keyDecoder, valueDecoder);
KafkaStream<String, String> stream = consumerMap.get(topic).get(0);
ConsumerIterator<String, String> it = stream.iterator();
while (it.hasNext()) {
// consumer.commitOffsets(); // manually commit offsets
System.out.println(it.next().message());
}
}
public static void main(String[] args) {
new KafkaConsumer().consume();
}
}
`,
color.Cyan("zookeeper.connect"),
color.Cyan("group.id"),
color.Green("threads"),
color.Red("VERY important!"),
color.Red("graceful shutdown the consumer group to commit consumed offset"),
color.Red("avoid consuming duplicated message when restarting the same consumer group"),
color.Green("threads"))
}
开发者ID:chendx79,项目名称:gafka,代码行数:64,代码来源:sample.go
示例18: Run
func (this *ZkInstall) Run(args []string) (exitCode int) {
cmdFlags := flag.NewFlagSet("zkinstall", flag.ContinueOnError)
cmdFlags.Usage = func() { this.Ui.Output(this.Help()) }
cmdFlags.StringVar(&this.rootPath, "root", "/var/wd/zookeeper", "")
cmdFlags.StringVar(&this.myId, "id", "", "")
cmdFlags.StringVar(&this.servers, "servers", "", "")
cmdFlags.BoolVar(&this.singleMode, "single", false, "")
if err := cmdFlags.Parse(args); err != nil {
return 1
}
if !ctx.CurrentUserIsRoot() {
this.Ui.Error("requires root priviledges!")
return 1
}
if !this.singleMode {
if validateArgs(this, this.Ui).
require("-id", "-servers").
invalid(args) {
return 2
}
}
// create dirs
this.rootPath = strings.TrimSuffix(this.rootPath, "/")
for _, d := range []string{"bin", "conf", "data", "lib", "log"} {
swallow(os.MkdirAll(fmt.Sprintf("%s/%s", this.rootPath, d), 0755))
}
type templateVar struct {
MyId string
RootPath string
Servers string
}
data := templateVar{
MyId: this.myId,
RootPath: this.rootPath,
}
if !this.singleMode {
servers := make([]string, 0)
for _, s := range strings.Split(this.servers, ",") {
parts := strings.SplitN(s, ":", 2)
servers = append(servers, fmt.Sprintf("server.%s=%s:2888:3888",
parts[0], parts[1]))
}
data.Servers = strings.Join(servers, "\n")
}
// copy all files in bin and lib
for srcDir, dstDir := range map[string]string{
"template/zk/bin": fmt.Sprintf("%s/bin", this.rootPath),
"template/zk/lib": fmt.Sprintf("%s/lib", this.rootPath)} {
files, err := AssetDir(srcDir)
swallow(err)
for _, srcFile := range files {
_, dstFile := path.Split(srcFile)
from := fmt.Sprintf("%s/%s", srcDir, srcFile)
to := fmt.Sprintf("%s/%s", dstDir, dstFile)
var perm os.FileMode = 0644
if strings.HasSuffix(srcDir, "/bin") {
perm = 0755
}
writeFileFromTemplate(from, to, perm, nil, nil)
}
}
// zk jar
writeFileFromTemplate("template/zk/zookeeper-3.4.6.jar",
fmt.Sprintf("%s/zookeeper-3.4.6.jar", this.rootPath), 0644, nil, nil)
// tempated conf
writeFileFromTemplate("template/zk/conf/zoo.cfg",
fmt.Sprintf("%s/conf/zoo.cfg", this.rootPath), 0644, data, nil)
writeFileFromTemplate("template/zk/conf/log4j.properties",
fmt.Sprintf("%s/conf/log4j.properties", this.rootPath), 0644, nil, nil)
// templated data/myid
if !this.singleMode {
writeFileFromTemplate("template/zk/data/myid",
fmt.Sprintf("%s/data/myid", this.rootPath), 0644, data, nil)
}
// templated init.d/
writeFileFromTemplate("template/init.d/zookeeper",
"/etc/init.d/zookeeper", 0755, data, nil)
this.Ui.Info("zookeeper installed on localhost")
this.Ui.Warn(fmt.Sprintf("NOW, please run the following command:"))
this.Ui.Warn("yum install -y jdk-1.7.0_65-fcs.x86_64")
this.Ui.Output(color.Red("chkconfig --add zookeeper"))
this.Ui.Output(color.Red("/etc/init.d/zookeeper start"))
return
}
开发者ID:funkygao,项目名称:gafka,代码行数:95,代码来源:zkinstall.go
示例19: Run
//.........这里部分代码省略.........
color.Green("%-50s", zk.PubsubJobConfig),
color.Green("%-50s", zk.PubsubWebhooksOff)))
return
}
// display mode
lines := make([]string, 0)
header := "Zone|Id|Ip|Pprof|Build|Cpu|Heap|Obj|Go|P/S|hhIn/hhOut|Uptime"
lines = append(lines, header)
forSortedZones(func(zkzone *zk.ZkZone) {
if this.zone != "" && zkzone.Name() != this.zone {
return
}
if !this.versionOnly {
mysqlDsn, err := zkzone.KatewayMysqlDsn()
if err != nil {
this.Ui.Warn(fmt.Sprintf("kateway[%s] mysql DSN not set on zk yet", zkzone.Name()))
this.Ui.Output(fmt.Sprintf("e,g. %s -> pubsub:[email protected](10.77.135.217:10010)/pubsub?charset=utf8&timeout=10s",
zk.KatewayMysqlPath))
} else {
this.Ui.Output(fmt.Sprintf("zone[%s] manager db: %s",
color.Cyan(zkzone.Name()), mysqlDsn))
}
}
kateways, err := zkzone.KatewayInfos()
if err != nil {
if err == zklib.ErrNoNode {
this.Ui.Output("no kateway running")
return
} else {
swallow(err)
}
}
for _, kw := range kateways {
if this.id != "" && this.id != kw.Id {
continue
}
statusMap, _ := this.getKatewayStatusMap(kw.ManAddr)
logLevel, _ := statusMap["loglevel"].(string)
heapSize, _ := statusMap["heap"].(string)
heapObjs, _ := statusMap["objects"].(string)
pubConn, _ := statusMap["pubconn"].(string)
hhAppendN, _ := statusMap["hh_appends"].(string)
hhDeliverN, _ := statusMap["hh_delivers"].(string)
subConn, _ := statusMap["subconn"].(string)
goN, _ := statusMap["goroutines"].(string)
if this.versionOnly {
pprofAddr := kw.DebugAddr
if len(pprofAddr) > 0 && pprofAddr[0] == ':' {
pprofAddr = kw.Ip + pprofAddr
}
pprofAddr = fmt.Sprintf("%s/debug/pprof/", pprofAddr)
lines = append(lines, fmt.Sprintf("%s|%s|%s|%s|%s/%s|%s|%s|%s|%s|%s/%s|%s/%s|%s",
zkzone.Name(),
kw.Id, kw.Ip,
pprofAddr, kw.Build, kw.BuiltAt,
kw.Cpu,
heapSize, heapObjs,
goN,
pubConn, subConn, hhAppendN, hhDeliverN,
gofmt.PrettySince(kw.Ctime)))
continue
}
this.Ui.Info(fmt.Sprintf("id:%-2s host:%s cpu:%-2s up:%s",
kw.Id, kw.Host, kw.Cpu,
gofmt.PrettySince(kw.Ctime)))
this.Ui.Output(fmt.Sprintf(" ver: %s\n arch: %s\n build: %s\n built: %s\n log: %s\n pub: %s\n sub: %s\n man: %s\n dbg: %s",
kw.Ver,
kw.Arch,
color.Red(kw.Build),
kw.BuiltAt,
logLevel,
kw.PubAddr,
kw.SubAddr,
kw.ManAddr,
kw.DebugAddr,
))
if this.longFmt {
this.Ui.Output(" full status:")
this.Ui.Output(this.getKatewayStatus(kw.ManAddr))
}
}
})
if this.versionOnly && len(lines) > 1 {
fmt.Println(columnize.SimpleFormat(lines))
}
return
}
开发者ID:funkygao,项目名称:gafka,代码行数:101,代码来源:kateway.go
示例20: displayZoneTopology
func (this *Topology) displayZoneTopology(zkzone *zk.ZkZone) {
this.Ui.Output(zkzone.Name())
// {cluster: {topic: brokerHostInfo}}
brokerInstances := make(map[string]map[string]*brokerHostInfo)
zkzone.ForSortedBrokers(func(cluster string, liveBrokers map[string]*zk.BrokerZnode) {
if len(liveBrokers) == 0 {
this.Ui.Warn(fmt.Sprintf("empty brokers in cluster[%s]", cluster))
return
}
if this.cluster != "" && this.cluster != cluster {
return
}
brokerInstances[cluster] = make(map[string]*brokerHostInfo)
for _, broker := range liveBrokers {
if !patternMatched(broker.Host, this.hostPattern) {
continue
}
if _, present := brokerInstances[cluster][broker.Host]; !present {
brokerInstances[cluster][broker.Host] = newBrokerHostInfo()
}
brokerInstances[cluster][broker.Host].addPort(broker.Port, broker.Uptime())
}
// find how many partitions a broker is leading
zkcluster := zkzone.NewCluster(cluster)
brokerList := zkcluster.BrokerList()
if len(brokerList) == 0 {
this.Ui.Warn(fmt.Sprintf("empty brokers in cluster[%s]", cluster))
return
}
kfk, err := sarama.NewClient(brokerList, sarama.NewConfig())
if err != nil {
this.Ui.Error(color.Red(" %+v %s", brokerList, err.Error()))
return
}
topics, err := kfk.Topics()
swallow(err)
for _, topic := range topics {
partions, err := kfk.WritablePartitions(topic)
swallow(err)
for _, partitionID := range partions {
leader, err := kfk.Leader(topic, partitionID)
swallow(err)
host, _, err := net.SplitHostPort(leader.Addr())
swallow(err)
if !patternMatched(host, this.hostPattern) {
continue
}
latestOffset, err := kfk.GetOffset(topic, partitionID, sarama.OffsetNewest)
if err != nil {
this.Ui.Error(fmt.Sprintf("%s %s %v", cluster, topic, err))
continue
}
oldestOffset, err := kfk.GetOffset(topic, partitionID, sarama.OffsetOldest)
if err != nil {
this.Ui.Error(fmt.Sprintf("%s %s %v", cluster, topic, err))
continue
}
brokerInstances[cluster][host].topicMsgs[topic] += (latestOffset - oldestOffset)
brokerInstances[cluster][host].addTopicPartition(topic, partitionID)
}
}
})
hosts := make(map[string]struct{})
zkzone.ForSortedClusters(func(zkcluster *zk.ZkCluster) {
for host, _ := range brokerInstances[zkcluster.Name()] {
hosts[host] = struct{}{}
}
})
sortedHosts := make([]string, 0)
for host, _ := range hosts {
sortedHosts = append(sortedHosts, host)
}
sort.Strings(sortedHosts)
// sort by host ip
sortedClusters := make([]string, 0, len(brokerInstances))
for c, _ := range brokerInstances {
sortedClusters = append(sortedClusters, c)
}
sort.Strings(sortedClusters)
portN := 0
hostN := 0
topicN := 0
partitionN := 0
for _, host := range sortedHosts {
tn := 0
pn := 0
mn := int64(0)
//.........这里部分代码省略.........
开发者ID:funkygao,项目名称:gafka,代码行数:101,代码来源:topology.go
注:本文中的github.com/funkygao/golib/color.Red函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论