本文整理汇总了Golang中github.com/gaochao1/swcollector/g.Config函数的典型用法代码示例。如果您正苦于以下问题:Golang Config函数的具体用法?Golang Config怎么用?Golang Config使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Config函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: swIfMetrics
func swIfMetrics() (L []*model.MetricValue) {
initVariable()
allIp := AllSwitchIp()
chs := make([]chan ChIfStat, len(allIp))
limitCh := make(chan bool, g.Config().Switch.LimitConcur)
startTime := time.Now()
log.Printf("UpdateIfStats start. The number of concurrent limited to %d. IP addresses number is %d", g.Config().Switch.LimitConcur, len(allIp))
for i, ip := range allIp {
chs[i] = make(chan ChIfStat)
limitCh <- true
go coreSwIfMetrics(ip, chs[i], limitCh)
time.Sleep(5 * time.Millisecond)
}
for _, ch := range chs {
chIfStat := <-ch
if chIfStat.PingResult == true && !slice.ContainsString(AliveIp, chIfStat.Ip) {
AliveIp = append(AliveIp, chIfStat.Ip)
}
if chIfStat.IfStatsList != nil {
if g.Config().Debug {
log.Println(chIfStat.Ip, chIfStat.PingResult, len(*chIfStat.IfStatsList), chIfStat.UseTime)
}
for _, ifStat := range *chIfStat.IfStatsList {
ifNameTag := "ifName=" + ifStat.IfName
ifIndexTag := "ifIndex=" + strconv.Itoa(ifStat.IfIndex)
ip := chIfStat.Ip
L = append(L, CounterValueIp(ifStat.TS, ip, "switch.if.In", ifStat.IfHCInOctets, ifNameTag, ifIndexTag))
L = append(L, CounterValueIp(ifStat.TS, ip, "switch.if.Out", ifStat.IfHCOutOctets, ifNameTag, ifIndexTag))
//如果IgnorePkt为false,采集Pkt
if g.Config().Switch.IgnorePkt == false {
L = append(L, CounterValueIp(ifStat.TS, ip, "switch.if.InPkts", ifStat.IfHCInUcastPkts, ifNameTag, ifIndexTag))
L = append(L, CounterValueIp(ifStat.TS, ip, "switch.if.OutPkts", ifStat.IfHCOutUcastPkts, ifNameTag, ifIndexTag))
}
}
}
}
endTime := time.Now()
log.Printf("UpdateIfStats complete. Process time %s. Number of active ip is %d", endTime.Sub(startTime), len(AliveIp))
if g.Config().Debug {
for i, v := range AliveIp {
log.Println("AliveIp:", i, v)
}
}
return
}
开发者ID:heafod,项目名称:swcollector,代码行数:60,代码来源:swifstat.go
示例2: swSystemInfo
func swSystemInfo(ip string, ch chan SwSystem) {
var swSystem SwSystem
swSystem.Ip = ip
//ping timeout.Millisecond
timeout := 1000
pingCount := 1
ping, err := sw.PingStatSummary(ip, pingCount, timeout)
if err != nil {
log.Println(err)
ch <- swSystem
return
} else {
swSystem.Ping = ping["max"]
uptime, err := sw.SysUpTime(ip, g.Config().Switch.Community, timeout)
if err != nil {
log.Println(err)
ch <- swSystem
return
} else {
swSystem.Uptime = uptime
cpuUtili, err := sw.CpuUtilization(ip, g.Config().Switch.Community, timeout, 1)
if err != nil {
log.Println(err)
} else {
swSystem.Cpu = cpuUtili
}
memUtili, err := sw.MemUtilization(ip, g.Config().Switch.Community, timeout, 1)
if err != nil {
log.Println(err)
} else {
swSystem.Mem = memUtili
}
swModel, err := sw.SysModel(ip, g.Config().Switch.Community, timeout)
if err != nil {
log.Println(err)
} else {
swSystem.Model = swModel
}
swName, err := sw.SysName(ip, g.Config().Switch.Community, timeout)
if err != nil {
log.Println(err)
} else {
swSystem.Hostname = swName
}
}
}
ch <- swSystem
return
}
开发者ID:freedomkk-qfeng,项目名称:swcollector,代码行数:59,代码来源:swsystem.go
示例3: Collect
func Collect() {
if !g.Config().Transfer.Enabled {
return
}
if g.Config().Transfer.Addr == "" {
return
}
for _, v := range funcs.Mappers {
go collect(int64(v.Interval), v.Fs)
}
}
开发者ID:heafod,项目名称:swcollector,代码行数:13,代码来源:collector.go
示例4: cpuMetrics
func cpuMetrics(ip string, ch chan SwCpu) {
var swCpu SwCpu
cpuUtili, err := sw.CpuUtilization(ip, g.Config().Switch.Community, g.Config().Switch.SnmpTimeout, g.Config().Switch.SnmpRetry)
if err != nil {
log.Println(err)
}
swCpu.Ip = ip
swCpu.CpuUtil = cpuUtili
ch <- swCpu
return
}
开发者ID:heafod,项目名称:swcollector,代码行数:14,代码来源:swcpu.go
示例5: memMetrics
func memMetrics(ip string, ch chan SwMem) {
var swMem SwMem
memUtili, err := sw.MemUtilization(ip, g.Config().Switch.Community, g.Config().Switch.SnmpTimeout, g.Config().Switch.SnmpRetry)
if err != nil {
log.Println(err)
}
swMem.Ip = ip
swMem.MemUtili = memUtili
ch <- swMem
return
}
开发者ID:heafod,项目名称:swcollector,代码行数:14,代码来源:swmem.go
示例6: configAdminRoutes
func configAdminRoutes() {
http.HandleFunc("/exit", func(w http.ResponseWriter, r *http.Request) {
if g.IsTrustable(r.RemoteAddr) {
w.Write([]byte("exiting..."))
go func() {
time.Sleep(time.Second)
os.Exit(0)
}()
} else {
w.Write([]byte("no privilege"))
}
})
http.HandleFunc("/config/reload", func(w http.ResponseWriter, r *http.Request) {
if g.IsTrustable(r.RemoteAddr) {
g.ParseConfig(g.ConfigFile)
RenderDataJson(w, g.Config())
} else {
w.Write([]byte("no privilege"))
}
})
http.HandleFunc("/workdir", func(w http.ResponseWriter, r *http.Request) {
RenderDataJson(w, file.SelfDir())
})
http.HandleFunc("/ips", func(w http.ResponseWriter, r *http.Request) {
RenderDataJson(w, g.TrustableIps())
})
}
开发者ID:heafod,项目名称:swcollector,代码行数:30,代码来源:admin.go
示例7: configSwRoutes
func configSwRoutes() {
http.HandleFunc("/page/sw/time", func(w http.ResponseWriter, req *http.Request) {
RenderDataJson(w, time.Now().Format("2006-01-02 15:04:05"))
})
http.HandleFunc("/page/sw/iprange", func(w http.ResponseWriter, req *http.Request) {
RenderDataJson(w, strings.Join(g.Config().Switch.IpRange, "\n"))
})
http.HandleFunc("/page/sw/live", func(w http.ResponseWriter, req *http.Request) {
RenderDataJson(w, len(funcs.AliveIp))
})
http.HandleFunc("/page/sw/list", func(w http.ResponseWriter, r *http.Request) {
var ret [][]interface{} = make([][]interface{}, 0)
for _, swSystem := range funcs.SwSystemInfo() {
ret = append(ret,
[]interface{}{
swSystem.Ip,
swSystem.Hostname,
swSystem.Model,
swSystem.Uptime,
fmt.Sprintf("%d%%", swSystem.Cpu),
fmt.Sprintf("%d%%", swSystem.Mem),
fmt.Sprintf("%sms", swSystem.Ping),
})
}
RenderDataJson(w, ret)
})
}
开发者ID:heafod,项目名称:swcollector,代码行数:32,代码来源:sw.go
示例8: connMetrics
func connMetrics(ip string, ch chan SwConn) {
var swConn SwConn
vendor, _ := sw.SysVendor(ip, community, snmpTimeout)
if !strings.Contains(vendor, "Cisco_ASA") {
ch <- swConn
return
}
ConnectionStat, err := sw.ConnectionStat(ip, g.Config().Switch.Community, g.Config().Switch.SnmpTimeout, g.Config().Switch.SnmpRetry)
if err != nil {
log.Println(err)
}
swConn.Ip = ip
swConn.ConnectionStat = ConnectionStat
ch <- swConn
return
}
开发者ID:freedomkk-qfeng,项目名称:swcollector,代码行数:18,代码来源:swconn.go
示例9: Start
func Start() {
if !g.Config().Http.Enabled {
return
}
addr := g.Config().Http.Listen
if addr == "" {
return
}
s := &http.Server{
Addr: addr,
MaxHeaderBytes: 1 << 30,
}
log.Println("listening", addr)
log.Fatalln(s.ListenAndServe())
}
开发者ID:heafod,项目名称:swcollector,代码行数:18,代码来源:http.go
示例10: pingMetrics
func pingMetrics(ip string, ch chan SwPing) {
var swPing SwPing
timeout := g.Config().Switch.PingTimeout * g.Config().Switch.PingRetry
fastPingMode := g.Config().Switch.FastPingMode
rtt, err := sw.PingRtt(ip, timeout, fastPingMode)
if err != nil {
log.Println(ip, err)
swPing.Ip = ip
swPing.Ping = -1
ch <- swPing
return
}
if g.Config().Debug {
log.Println(ip, rtt)
}
swPing.Ip = ip
swPing.Ping = rtt
ch <- swPing
return
}
开发者ID:freedomkk-qfeng,项目名称:swcollector,代码行数:21,代码来源:swping.go
示例11: initVariable
func initVariable() {
pingTimeout = g.Config().Switch.PingTimeout
pingRetry = g.Config().Switch.PingRetry
community = g.Config().Switch.Community
snmpTimeout = g.Config().Switch.SnmpTimeout
snmpRetry = g.Config().Switch.SnmpRetry
ignoreIface = g.Config().Switch.IgnoreIface
ignorePkt = g.Config().Switch.IgnorePkt
}
开发者ID:heafod,项目名称:swcollector,代码行数:11,代码来源:swifstat.go
示例12: AllSwitchIp
func AllSwitchIp() (allIp []string) {
switchIp := g.Config().Switch.IpRange
if len(switchIp) > 0 {
for _, sip := range switchIp {
aip := sw.ParseIp(sip)
for _, ip := range aip {
allIp = append(allIp, ip)
}
}
}
return allIp
}
开发者ID:freedomkk-qfeng,项目名称:swcollector,代码行数:13,代码来源:swifstat.go
示例13: BuildMappers
func BuildMappers() {
interval := g.Config().Transfer.Interval
Mappers = []FuncsAndInterval{
FuncsAndInterval{
Fs: []func() []*model.MetricValue{
SwIfMetrics,
AgentMetrics,
CpuMetrics,
MemMetrics,
PingMetrics,
},
Interval: interval,
},
}
}
开发者ID:heafod,项目名称:swcollector,代码行数:15,代码来源:funcs.go
示例14: pingMetrics
func pingMetrics(ip string, ch chan SwPing) {
var swPing SwPing
timeout := g.Config().Switch.PingTimeout * 4
rtt, err := sw.PingRtt(ip, timeout)
if err != nil {
log.Println(ip, err)
swPing.Ping = 0
}
swPing.Ip = ip
swPing.Ping = rtt
ch <- swPing
return
}
开发者ID:heafod,项目名称:swcollector,代码行数:16,代码来源:swping.go
示例15: syncTrustableIps
func syncTrustableIps() {
duration := time.Duration(g.Config().Heartbeat.Interval) * time.Second
for {
REST:
time.Sleep(duration)
var ips string
err := g.HbsClient.Call("Agent.TrustableIps", model.NullRpcRequest{}, &ips)
if err != nil {
log.Println("ERROR: call Agent.TrustableIps fail", err)
goto REST
}
g.SetTrustableIps(ips)
}
}
开发者ID:heafod,项目名称:swcollector,代码行数:18,代码来源:ips.go
示例16: NewMetricValueIp
func NewMetricValueIp(TS int64, ip, metric string, val interface{}, dataType string, tags ...string) *model.MetricValue {
sec := int64(g.Config().Transfer.Interval)
mv := model.MetricValue{
Metric: metric,
Value: val,
Type: dataType,
Endpoint: ip,
Step: sec,
Timestamp: TS,
}
size := len(tags)
if size > 0 {
mv.Tags = strings.Join(tags, ",")
}
return &mv
}
开发者ID:heafod,项目名称:swcollector,代码行数:20,代码来源:common.go
示例17: SyncTrustableIps
func SyncTrustableIps() {
if g.Config().Heartbeat.Enabled && g.Config().Heartbeat.Addr != "" {
go syncTrustableIps()
}
}
开发者ID:heafod,项目名称:swcollector,代码行数:5,代码来源:ips.go
示例18: syncBuiltinMetrics
func syncBuiltinMetrics() {
var timestamp int64 = -1
var checksum string = "nil"
duration := time.Duration(g.Config().Heartbeat.Interval) * time.Second
for {
REST:
time.Sleep(duration)
var ports = []int64{}
var procs = make(map[string]map[int]string)
hostname, err := g.Hostname()
if err != nil {
goto REST
}
req := model.AgentHeartbeatRequest{
Hostname: hostname,
Checksum: checksum,
}
var resp model.BuiltinMetricResponse
err = g.HbsClient.Call("Agent.BuiltinMetrics", req, &resp)
if err != nil {
log.Println("ERROR:", err)
goto REST
}
if resp.Timestamp <= timestamp {
goto REST
}
if resp.Checksum == checksum {
goto REST
}
timestamp = resp.Timestamp
checksum = resp.Checksum
for _, metric := range resp.Metrics {
if metric.Metric == "net.port.listen" {
if !strings.Contains(metric.Tags, "=") {
// illegal
continue
}
if port, err := strconv.ParseInt(metric.Tags[5:], 10, 64); err == nil {
ports = append(ports, port)
}
continue
}
if metric.Metric == "proc.num" {
arr := strings.Split(metric.Tags, ",")
tmpMap := make(map[int]string)
for i := 0; i < len(arr); i++ {
if strings.HasPrefix(arr[i], "name=") {
tmpMap[1] = arr[i][5:]
} else if strings.HasPrefix(arr[i], "cmdline=") {
tmpMap[2] = arr[i][8:]
}
}
procs[metric.Tags] = tmpMap
}
}
g.SetReportPorts(ports)
g.SetReportProcs(procs)
}
}
开发者ID:heafod,项目名称:swcollector,代码行数:78,代码来源:builtin.go
示例19: SyncBuiltinMetrics
func SyncBuiltinMetrics() {
if g.Config().Heartbeat.Enabled && g.Config().Heartbeat.Addr != "" {
go syncBuiltinMetrics()
}
}
开发者ID:heafod,项目名称:swcollector,代码行数:5,代码来源:builtin.go
示例20: SwIfMetrics
func SwIfMetrics() (L []*model.MetricValue) {
if g.Config().Switch.Enabled && len(g.Config().Switch.IpRange) > 0 {
return swIfMetrics()
}
return
}
开发者ID:freedomkk-qfeng,项目名称:swcollector,代码行数:6,代码来源:swifstat.go
注:本文中的github.com/gaochao1/swcollector/g.Config函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论