本文整理汇总了Golang中github.com/funkygao/golib/gofmt.Comma函数的典型用法代码示例。如果您正苦于以下问题:Golang Comma函数的具体用法?Golang Comma怎么用?Golang Comma使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Comma函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: showPps
func (this *Pps) showPps(nic string) {
tx := fmt.Sprintf("/sys/class/net/%s/statistics/tx_packets", nic)
rx := fmt.Sprintf("/sys/class/net/%s/statistics/rx_packets", nic)
var lastTx, lastRx int64
s := int64(this.interval.Seconds())
for {
brx, err := ioutil.ReadFile(rx)
swallow(err)
btx, err := ioutil.ReadFile(tx)
swallow(err)
rxN, err := strconv.ParseInt(strings.TrimSpace(string(brx)), 10, 64)
swallow(err)
txN, err := strconv.ParseInt(strings.TrimSpace(string(btx)), 10, 64)
swallow(err)
if lastRx != 0 && lastTx != 0 {
rxPps := (rxN - lastRx) / s
txPps := (txN - lastTx) / s
sumPps := rxPps + txPps
this.Ui.Output(fmt.Sprintf("%10s rx:%-8s tx:%-8s sum:%-8s",
nic, gofmt.Comma(rxPps), gofmt.Comma(txPps), gofmt.Comma(sumPps)))
}
lastRx = rxN
lastTx = txN
time.Sleep(this.interval)
}
}
开发者ID:funkygao,项目名称:gafka,代码行数:32,代码来源:pps.go
示例2: printSummary
func (this *Clusters) printSummary(zkzone *zk.ZkZone, clusterPattern string, port string) {
lines := []string{"Zone|Cluster|Brokers|Topics|Partitions|FlatMsg|Cum"}
type summary struct {
zone, cluster string
brokers, topics, partitions int
flat, cum int64
}
summaries := make([]summary, 0, 10)
zkzone.ForSortedClusters(func(zkcluster *zk.ZkCluster) {
if !patternMatched(zkcluster.Name(), clusterPattern) {
return
}
brokers, topics, partitions, flat, cum := this.clusterSummary(zkcluster)
summaries = append(summaries, summary{zkzone.Name(), zkcluster.Name(), brokers, topics, partitions,
flat, cum})
})
sortutil.DescByField(summaries, "cum")
var totalFlat, totalCum int64
for _, s := range summaries {
lines = append(lines, fmt.Sprintf("%s|%s|%d|%d|%d|%s|%s",
s.zone, s.cluster, s.brokers, s.topics, s.partitions,
gofmt.Comma(s.flat), gofmt.Comma(s.cum)))
totalCum += s.cum
totalFlat += s.flat
}
this.Ui.Output(columnize.SimpleFormat(lines))
this.Ui.Output(fmt.Sprintf("Flat:%s Cum:%s", gofmt.Comma(totalFlat), gofmt.Comma(totalCum)))
}
开发者ID:funkygao,项目名称:gafka,代码行数:32,代码来源:clusters.go
示例3: showStats
func (this *FunServantImpl) showStats() {
ticker := time.NewTicker(config.Engine.Servants.StatsOutputInterval)
defer ticker.Stop()
for _ = range ticker.C {
log.Info("svt: {slow:%s peer.from:%s, peer.to:%s}",
gofmt.Comma(svtStats.callsSlow),
gofmt.Comma(svtStats.callsFromPeer),
gofmt.Comma(svtStats.callsToPeer))
}
}
开发者ID:lucmichalski,项目名称:fae,代码行数:11,代码来源:servant.go
示例4: render
func (this *routerStats) render(logger *log.Logger, elapsed int) {
logger.Printf("Total:%10s %10s speed:%6s/s %10s/s max: %s/%s",
gofmt.Comma(this.TotalProcessedMsgN),
gofmt.ByteSize(this.TotalProcessedBytes),
gofmt.Comma(int64(this.PeriodProcessedMsgN/int32(elapsed))),
gofmt.ByteSize(this.PeriodProcessedBytes/int64(elapsed)),
gofmt.ByteSize(this.PeriodMaxMsgBytes),
gofmt.ByteSize(this.TotalMaxMsgBytes))
logger.Printf("Input:%10s %10s speed:%6s/s %10s/s",
gofmt.Comma(int64(this.PeriodInputMsgN)),
gofmt.ByteSize(this.PeriodInputBytes),
gofmt.Comma(int64(this.PeriodInputMsgN/int32(elapsed))),
gofmt.ByteSize(this.PeriodInputBytes/int64(elapsed)))
}
开发者ID:jlyt898,项目名称:dpipe,代码行数:14,代码来源:router.go
示例5: showOffsetGrowth
func (this *Histogram) showOffsetGrowth() ([]time.Time, []int64) {
f, err := os.OpenFile(this.offsetFile, os.O_RDONLY, 0660)
swallow(err)
defer f.Close()
ts := make([]time.Time, 0)
vs := make([]int64, 0)
r := bufio.NewReader(f)
var (
lastN = int64(0)
tm string
)
for {
line, err := r.ReadString('\n')
if err == io.EOF {
break
}
line = strings.TrimSpace(line)
if !strings.Contains(line, "CUM Messages") {
// time info: Thu Jun 16 22:45:01 CST 2016
tm = line
} else {
// offset: -CUM Messages- 255,705,684,384
n := strings.Split(line, "-CUM Messages-")[1]
n = strings.Replace(n, ",", "", -1)
n = strings.TrimSpace(n)
offset, err := strconv.ParseInt(n, 10, 64)
swallow(err)
if lastN > 0 {
t, e := time.Parse("Mon Jan 2 15:04:05 MST 2006", tm)
swallow(e)
ts = append(ts, t)
vs = append(vs, offset-lastN)
this.Ui.Output(fmt.Sprintf("%55s Message+ %15s/%s", tm,
gofmt.Comma(offset-lastN), gofmt.Comma(lastN)))
}
lastN = offset
}
}
return ts, vs
}
开发者ID:chendx79,项目名称:gafka,代码行数:48,代码来源:histogram.go
示例6: showStats
func (this *TFunServer) showStats(interval time.Duration) {
ticker := time.NewTicker(interval)
defer ticker.Stop()
for _ = range ticker.C {
log.Info("rpc: {session.on:%d/%s, call.err:%s/%s, qps:{1m:%.0f, 5m:%.0f 15m:%.0f avg:%.0f}}",
atomic.LoadInt64(&this.activeSessionN),
gofmt.Comma(atomic.LoadInt64(&this.cumSessions)),
gofmt.Comma(atomic.LoadInt64(&this.cumCallErrs)),
gofmt.Comma(atomic.LoadInt64(&this.cumCalls)),
this.stats.CallPerSecond.Rate1(),
this.stats.CallPerSecond.Rate5(),
this.stats.CallPerSecond.Rate15(),
this.stats.CallPerSecond.RateMean())
}
}
开发者ID:lucmichalski,项目名称:fae,代码行数:16,代码来源:rpc_server.go
示例7: statusHandler
// @rest GET /v1/status
func (this *manServer) statusHandler(w http.ResponseWriter, r *http.Request, params httprouter.Params) {
log.Info("status %s(%s)", r.RemoteAddr, getHttpRemoteIp(r))
output := make(map[string]interface{})
output["options"] = Options
output["loglevel"] = logLevel.String()
output["manager"] = manager.Default.Dump()
pubConns := int(atomic.LoadInt32(&this.gw.pubServer.activeConnN))
subConns := int(atomic.LoadInt32(&this.gw.subServer.activeConnN))
output["pubconn"] = strconv.Itoa(pubConns)
output["subconn"] = strconv.Itoa(subConns)
output["hh_appends"] = strconv.FormatInt(hh.Default.AppendN(), 10)
output["hh_delivers"] = strconv.FormatInt(hh.Default.DeliverN(), 10)
output["goroutines"] = strconv.Itoa(runtime.NumGoroutine())
var mem runtime.MemStats
runtime.ReadMemStats(&mem)
output["heap"] = gofmt.ByteSize(mem.HeapSys).String()
output["objects"] = gofmt.Comma(int64(mem.HeapObjects))
b, err := json.MarshalIndent(output, "", " ")
if err != nil {
log.Error("%s(%s) %v", r.RemoteAddr, getHttpRemoteIp(r), err)
}
w.Write(b)
}
开发者ID:funkygao,项目名称:gafka,代码行数:28,代码来源:handler_man.go
示例8: main
func main() {
cf := config.NewDefaultProxy()
cf.IoTimeout = time.Hour
cf.TcpNoDelay = tcpNoDelay
prx := proxy.New(cf)
etclib.Dial([]string{zk})
go prx.StartMonitorCluster()
prx.AwaitClusterTopologyReady()
// test pool
if testPool {
testServantPool(prx)
pause("pool tested")
}
go report.run()
wg := new(sync.WaitGroup)
t1 := time.Now()
for k := c1; k <= c2; k += 10 {
Concurrency = k
cf.PoolCapacity = Concurrency
prx = proxy.New(cf)
for i := 0; i < Rounds; i++ {
for j := 0; j < k; j++ {
wg.Add(1)
go runSession(prx, wg, i+1, j)
}
wg.Wait()
}
}
elapsed := time.Since(t1)
log.Printf("Elapsed: %s, calls: {%s, %.1f/s}, sessions: {%s, %.1f/s}, errors: {conn:%d, io:%d call:%d}",
elapsed,
gofmt.Comma(report.callOk),
float64(report.callOk)/elapsed.Seconds(),
gofmt.Comma(int64(report.sessionN)),
float64(report.sessionN)/elapsed.Seconds(),
report.connErrs,
report.ioErrs,
report.callErrs)
}
开发者ID:lucmichalski,项目名称:fae,代码行数:47,代码来源:main.go
示例9: getStats
func (this *Haproxy) getStats(statsUri string) (header string, rows []string) {
client := http.Client{Timeout: time.Second * 30}
resp, err := client.Get(statsUri)
swallow(err)
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
swallow(fmt.Errorf("fetch[%s] stats got status: %d", resp.StatusCode))
}
var records map[string]map[string]int64
reader := json.NewDecoder(resp.Body)
err = reader.Decode(&records)
swallow(err)
u, err := url.Parse(statsUri)
swallow(err)
var shortHostname string
if strings.Contains(u.Host, ":") {
u.Host = u.Host[:strings.Index(u.Host, ":")]
}
tuples := strings.SplitN(u.Host, ".", 4)
if len(tuples) < 4 {
shortHostname = u.Host
} else {
shortHostname = tuples[3]
}
if len(shortHostname) > 8 {
shortHostname = shortHostname[:8]
}
sortedSvcs := make([]string, 0)
for svc, _ := range records {
sortedSvcs = append(sortedSvcs, svc)
}
sort.Strings(sortedSvcs)
sortedCols := make([]string, 0)
for k, _ := range records["pub"] {
sortedCols = append(sortedCols, k)
}
sort.Strings(sortedCols)
header = strings.Join(append([]string{"host", "svc"}, sortedCols...), "|")
for _, svc := range sortedSvcs {
stats := records[svc]
var vals = []string{shortHostname, svc}
for _, k := range sortedCols {
v := stats[k]
vals = append(vals, gofmt.Comma(v))
}
rows = append(rows, strings.Join(vals, "|"))
}
return
}
开发者ID:funkygao,项目名称:gafka,代码行数:59,代码来源:haproxy.go
示例10: pump
func (this *Mirror) pump(sub *consumergroup.ConsumerGroup, pub sarama.AsyncProducer, stop chan struct{}) {
defer func() {
log.Println("pump cleanup...")
sub.Close()
log.Println("pump cleanup ok")
stop <- struct{}{} // notify others I'm done
}()
log.Printf("start pumping")
active := false
for {
select {
case <-this.quit:
return
case <-stop:
// yes sir!
return
case <-time.After(time.Second * 10):
active = false
log.Println("idle 10s waiting for new msg")
case msg := <-sub.Messages():
if !active || this.debug {
log.Printf("<-[%d] T:%s M:%s", this.transferN, msg.Topic, string(msg.Value))
}
active = true
pub.Input() <- &sarama.ProducerMessage{
Topic: msg.Topic,
Key: sarama.ByteEncoder(msg.Key),
Value: sarama.ByteEncoder(msg.Value),
}
if this.autoCommit {
sub.CommitUpto(msg)
}
// rate limit, never overflood the limited bandwidth between IDCs
// FIXME when compressed, the bandwidth calculation is wrong
bytesN := len(msg.Topic) + len(msg.Key) + len(msg.Value) + 20 // payload overhead
if !this.bandwidthRateLimiter.Pour(bytesN) {
time.Sleep(time.Second)
this.Ui.Warn(fmt.Sprintf("%d -> bandwidth reached, backoff 1s", bytesN))
}
this.transferBytes += int64(bytesN)
this.transferN++
if this.transferN%this.progressStep == 0 {
log.Println(gofmt.Comma(this.transferN))
}
case err := <-sub.Errors():
this.Ui.Error(err.Error()) // TODO
}
}
}
开发者ID:chendx79,项目名称:gafka,代码行数:58,代码来源:mirror.go
示例11: makeMirror
func (this *Mirror) makeMirror(c1, c2 *zk.ZkCluster) {
pub, err := this.makePub(c2)
swallow(err)
topics, topicsChanges, err := c1.WatchTopics()
swallow(err)
log.Printf("topics: %+v", topics)
if len(topics) == 0 {
log.Println("empty topics")
return
}
group := fmt.Sprintf("%s.%s._mirror_", c1.Name(), c2.Name())
sub, err := this.makeSub(c1, group, topics)
swallow(err)
pumpStopper := make(chan struct{})
go this.pump(sub, pub, pumpStopper)
LOOP:
for {
select {
case <-topicsChanges:
log.Println("topics changed, stopping pump...")
pumpStopper <- struct{}{} // stop pump
<-pumpStopper // await pump cleanup
// refresh c1 topics
topics, err = c1.Topics()
if err != nil {
// TODO how to handle this err?
log.Println(err)
}
log.Printf("topics: %+v", topics)
sub, err = this.makeSub(c1, group, topics)
if err != nil {
// TODO how to handle this err?
log.Println(err)
}
go this.pump(sub, pub, pumpStopper)
case <-this.quit:
log.Println("awaiting pump cleanup...")
<-pumpStopper
log.Printf("total transferred: %s %smsgs",
gofmt.ByteSize(this.transferBytes),
gofmt.Comma(this.transferN))
break LOOP
}
}
pub.Close()
}
开发者ID:chendx79,项目名称:gafka,代码行数:57,代码来源:mirror.go
示例12: Run
func (this *Mirror) Run(args []string) (exitCode int) {
cmdFlags := flag.NewFlagSet("mirror", flag.ContinueOnError)
cmdFlags.Usage = func() { this.Ui.Output(this.Help()) }
cmdFlags.StringVar(&this.zone1, "z1", "", "")
cmdFlags.StringVar(&this.zone2, "z2", "", "")
cmdFlags.StringVar(&this.cluster1, "c1", "", "")
cmdFlags.StringVar(&this.cluster2, "c2", "", "")
cmdFlags.StringVar(&this.excludes, "excluded", "", "")
cmdFlags.BoolVar(&this.debug, "debug", false, "")
cmdFlags.StringVar(&this.compress, "compress", "", "")
cmdFlags.Int64Var(&this.bandwidthLimit, "net", 100, "")
cmdFlags.BoolVar(&this.autoCommit, "commit", true, "")
cmdFlags.Int64Var(&this.progressStep, "step", 5000, "")
if err := cmdFlags.Parse(args); err != nil {
return 1
}
if validateArgs(this, this.Ui).
require("-z1", "-z2", "-c1", "-c2").
invalid(args) {
return 2
}
this.topicsExcluded = make(map[string]struct{})
for _, e := range strings.Split(this.excludes, ",") {
this.topicsExcluded[e] = struct{}{}
}
log.SetOutput(os.Stdout)
this.quit = make(chan struct{})
limit := (1 << 20) * this.bandwidthLimit / 8
this.bandwidthRateLimiter = ratelimiter.NewLeakyBucket(limit, time.Second)
log.Printf("[%s]%s -> [%s]%s with bandwidth %sbps",
this.zone1, this.cluster1,
this.zone2, this.cluster2,
gofmt.Comma(int64(limit*8)))
signal.RegisterSignalsHandler(func(sig os.Signal) {
log.Printf("received signal: %s", strings.ToUpper(sig.String()))
log.Println("quiting...")
this.once.Do(func() {
close(this.quit)
})
}, syscall.SIGINT, syscall.SIGTERM)
z1 := zk.NewZkZone(zk.DefaultConfig(this.zone1, ctx.ZoneZkAddrs(this.zone1)))
z2 := zk.NewZkZone(zk.DefaultConfig(this.zone2, ctx.ZoneZkAddrs(this.zone2)))
c1 := z1.NewCluster(this.cluster1)
c2 := z2.NewCluster(this.cluster2)
this.makeMirror(c1, c2)
return
}
开发者ID:chendx79,项目名称:gafka,代码行数:53,代码来源:mirror.go
示例13: run
func (this *stats) run() {
ticker := time.NewTicker(time.Second)
defer ticker.Stop()
t1 := time.Now()
var lastCalls int64
for _ = range ticker.C {
if neatStat {
log.Printf("c:%6d qps:%20s errs:%10s",
Concurrency,
gofmt.Comma(this.callOk-lastCalls),
gofmt.Comma(this.callErrs))
} else {
log.Printf("%s c:%d sessions:%s calls:%s qps:%s errs:%s conns:%d go:%d",
time.Since(t1),
Concurrency,
gofmt.Comma(int64(atomic.LoadInt32(&this.sessionN))),
gofmt.Comma(atomic.LoadInt64(&this.callOk)),
gofmt.Comma(this.callOk-lastCalls),
gofmt.Comma(this.callErrs),
atomic.LoadInt32(&this.concurrentN),
runtime.NumGoroutine())
}
lastCalls = this.callOk
}
}
开发者ID:lucmichalski,项目名称:fae,代码行数:29,代码来源:stats.go
示例14: displayGroupOffsets
func (this *Consumers) displayGroupOffsets(zkcluster *zk.ZkCluster, group, topic string, echo bool) []consumerGroupOffset {
offsetMap := zkcluster.ConsumerOffsetsOfGroup(group)
sortedTopics := make([]string, 0, len(offsetMap))
for t, _ := range offsetMap {
sortedTopics = append(sortedTopics, t)
}
sort.Strings(sortedTopics)
r := make([]consumerGroupOffset, 0)
for _, t := range sortedTopics {
if !patternMatched(t, this.topicPattern) || (topic != "" && t != topic) {
continue
}
sortedPartitionIds := make([]string, 0, len(offsetMap[t]))
for partitionId, _ := range offsetMap[t] {
sortedPartitionIds = append(sortedPartitionIds, partitionId)
}
sort.Strings(sortedPartitionIds)
for _, partitionId := range sortedPartitionIds {
r = append(r, consumerGroupOffset{
topic: t,
partitionId: partitionId,
offset: gofmt.Comma(offsetMap[t][partitionId]),
})
if echo {
this.Ui.Output(fmt.Sprintf("\t\t%s/%s Offset:%s",
t, partitionId, gofmt.Comma(offsetMap[t][partitionId])))
}
}
}
return r
}
开发者ID:funkygao,项目名称:gafka,代码行数:39,代码来源:consumers.go
示例15: showPeriodicalStats
func (this *EsOutput) showPeriodicalStats() {
if !this.showProgress {
return
}
var (
globals = engine.Globals()
total = 0
)
globals.Printf("ES types: %d, within %s", this.counters.Len(), this.reportInterval)
for _, key := range this.counters.SortedKeys() {
val := this.counters.Get(key)
if val > 0 {
total += val
globals.Printf("%-50s %12s", key, gofmt.Comma(int64(val)))
this.counters.Set(key, 0)
}
}
globals.Printf("%50s %12s", "Sum", gofmt.Comma(int64(total)))
}
开发者ID:jlyt898,项目名称:dpipe,代码行数:23,代码来源:es_output.go
示例16: RunSysStats
func RunSysStats(startedAt time.Time, interval time.Duration) {
const nsInMs uint64 = 1000 * 1000
ticker := time.NewTicker(interval)
defer func() {
ticker.Stop()
}()
var (
ms = new(runtime.MemStats)
rusage = &syscall.Rusage{}
lastUserTime int64
lastSysTime int64
userTime int64
sysTime int64
userCpuUtil float64
sysCpuUtil float64
)
for _ = range ticker.C {
runtime.ReadMemStats(ms)
syscall.Getrusage(syscall.RUSAGE_SELF, rusage)
syscall.Getrusage(syscall.RUSAGE_SELF, rusage)
userTime = rusage.Utime.Sec*1000000000 + int64(rusage.Utime.Usec)
sysTime = rusage.Stime.Sec*1000000000 + int64(rusage.Stime.Usec)
userCpuUtil = float64(userTime-lastUserTime) * 100 / float64(interval)
sysCpuUtil = float64(sysTime-lastSysTime) * 100 / float64(interval)
lastUserTime = userTime
lastSysTime = sysTime
log.Info("ver:%s, since:%s, go:%d, gc:%dms/%d=%d, heap:{%s, %s, %s, %s %s} cpu:{%3.2f%%us, %3.2f%%sy}",
BuildId,
time.Since(startedAt),
runtime.NumGoroutine(),
ms.PauseTotalNs/nsInMs,
ms.NumGC,
ms.PauseTotalNs/(nsInMs*uint64(ms.NumGC))+1,
gofmt.ByteSize(ms.HeapSys), // bytes it has asked the operating system for
gofmt.ByteSize(ms.HeapAlloc), // bytes currently allocated in the heap
gofmt.ByteSize(ms.HeapIdle), // bytes in the heap that are unused
gofmt.ByteSize(ms.HeapReleased), // bytes returned to the operating system, 5m for scavenger
gofmt.Comma(int64(ms.HeapObjects)),
userCpuUtil,
sysCpuUtil)
}
}
开发者ID:postfix,项目名称:golib-1,代码行数:49,代码来源:stats.go
示例17: printSummary
func (this *Topics) printSummary(zkzone *zk.ZkZone, clusterPattern string) {
lines := []string{"Zone|Cluster|Topic|Partitions|FlatMsg|Cum"}
var totalFlat, totalCum int64
zkzone.ForSortedClusters(func(zkcluster *zk.ZkCluster) {
if !patternMatched(zkcluster.Name(), clusterPattern) {
return
}
summaries := this.clusterSummary(zkcluster)
sortutil.DescByField(summaries, "cum")
for _, s := range summaries {
lines = append(lines, fmt.Sprintf("%s|%s|%s|%d|%s|%s",
s.zone, s.cluster, s.topic, s.partitions, gofmt.Comma(s.flat), gofmt.Comma(s.cum)))
totalCum += s.cum
totalFlat += s.flat
}
})
this.Ui.Output(columnize.SimpleFormat(lines))
this.Ui.Output(fmt.Sprintf("Flat:%s Cum:%s", gofmt.Comma(totalFlat), gofmt.Comma(totalCum)))
}
开发者ID:funkygao,项目名称:gafka,代码行数:24,代码来源:topics.go
示例18: fetchStats
func (this *Haproxy) fetchStats(statsUri string) {
client := http.Client{Timeout: time.Second * 30}
resp, err := client.Get(statsUri)
swallow(err)
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
swallow(fmt.Errorf("fetch[%s] stats got status: %d", resp.StatusCode))
}
var records map[string]map[string]int64
reader := json.NewDecoder(resp.Body)
err = reader.Decode(&records)
swallow(err)
u, err := url.Parse(statsUri)
swallow(err)
this.Ui.Info(u.Host)
sortedSvcs := make([]string, 0)
for svc, _ := range records {
sortedSvcs = append(sortedSvcs, svc)
}
sort.Strings(sortedSvcs)
sortedCols := make([]string, 0)
for k, _ := range records["pub"] {
sortedCols = append(sortedCols, k)
}
sort.Strings(sortedCols)
lines := []string{strings.Join(append([]string{"svc"}, sortedCols...), "|")}
for _, svc := range sortedSvcs {
stats := records[svc]
var vals = []string{svc}
for _, k := range sortedCols {
v := stats[k]
vals = append(vals, gofmt.Comma(v))
}
lines = append(lines, strings.Join(vals, "|"))
}
this.Ui.Output(columnize.SimpleFormat(lines))
}
开发者ID:funkygao,项目名称:gafka,代码行数:47,代码来源:haproxy.go
示例19: Runtime
func (this *engineStats) Runtime() map[string]interface{} {
runtime.ReadMemStats(this.memStats)
s := make(map[string]interface{})
s["goroutines"] = runtime.NumGoroutine()
s["memory.allocated"] = gofmt.ByteSize(this.memStats.Alloc).String()
s["memory.mallocs"] = gofmt.ByteSize(this.memStats.Mallocs).String()
s["memory.frees"] = gofmt.ByteSize(this.memStats.Frees).String()
s["memory.last_gc"] = this.memStats.LastGC
s["memory.gc.num"] = this.memStats.NumGC
s["memory.gc.num_per_second"] = float64(this.memStats.NumGC) / time.
Since(this.startedAt).Seconds()
s["memory.gc.num_freq"] = fmt.Sprintf("%.1fsec/gc", time.
Since(this.startedAt).Seconds()/float64(this.memStats.NumGC))
s["memory.gc.total_pause"] = fmt.Sprintf("%dms",
this.memStats.PauseTotalNs/uint64(time.Millisecond))
s["memory.heap.alloc"] = gofmt.ByteSize(this.memStats.HeapAlloc).String()
s["memory.heap.sys"] = gofmt.ByteSize(this.memStats.HeapSys).String()
s["memory.heap.idle"] = gofmt.ByteSize(this.memStats.HeapIdle).String()
s["memory.heap.released"] = gofmt.ByteSize(this.memStats.HeapReleased).String()
s["memory.heap.objects"] = gofmt.Comma(int64(this.memStats.HeapObjects))
s["memory.stack"] = gofmt.ByteSize(this.memStats.StackInuse).String()
gcPausesMs := make([]string, 0, 20)
for _, pauseNs := range this.memStats.PauseNs {
if pauseNs == 0 {
continue
}
pauseStr := fmt.Sprintf("%dms",
pauseNs/uint64(time.Millisecond))
if pauseStr == "0ms" {
continue
}
gcPausesMs = append(gcPausesMs, pauseStr)
}
s["memory.gc.pauses"] = gcPausesMs
s["mem"] = *this.memStats
return s
}
开发者ID:lucmichalski,项目名称:fae,代码行数:41,代码来源:stats.go
示例20: displayZoneTopology
//.........这里部分代码省略.........
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)
ports := make([]int, 0)
for _, cluster := range sortedClusters {
if _, present := brokerInstances[cluster][host]; !present {
continue
}
tn += len(brokerInstances[cluster][host].topicPartitions)
pn += brokerInstances[cluster][host].leadingPartitions()
mn += brokerInstances[cluster][host].totalMsgsInStock()
ports = append(ports, brokerInstances[cluster][host].tcpPorts...)
}
portN += len(ports)
topicN += tn
partitionN += pn
hostN += 1
this.Ui.Output(fmt.Sprintf(" %s leading: %2dT %3dP %15sM ports %2d:%+v",
color.Green("%15s", host),
tn,
pn,
gofmt.Comma(mn),
len(ports),
ports))
if this.verbose {
for _, cluster := range sortedClusters {
if _, present := brokerInstances[cluster][host]; !present {
continue
}
for _, tcpPort := range brokerInstances[cluster][host].tcpPorts {
this.Ui.Output(fmt.Sprintf("%40d %s", tcpPort,
gofmt.PrettySince(brokerInstances[cluster][host].uptimes[tcpPort])))
}
}
for _, cluster := range sortedClusters {
if _, present := brokerInstances[cluster][host]; !present {
continue
}
this.Ui.Output(color.Magenta("%30s", cluster))
for topic, partitions := range brokerInstances[cluster][host].topicPartitions {
this.Ui.Output(fmt.Sprintf("%40s: %15sM P%2d %+v",
topic,
gofmt.Comma(brokerInstances[cluster][host].topicMsgs[topic]),
len(partitions), partitions))
}
}
}
}
this.Ui.Output(fmt.Sprintf("%17s host:%d, topic:%d, partition:%d, instance:%d",
"-TOTAL-",
hostN, topicN, partitionN, portN))
}
开发者ID:funkygao,项目名称:gafka,代码行数:101,代码来源:topology.go
注:本文中的github.com/funkygao/golib/gofmt.Comma函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论