當前位置: 首頁>>代碼示例>>Golang>>正文


Golang Flow.GetStatistics方法代碼示例

本文整理匯總了Golang中github.com/redhat-cip/skydive/flow.Flow.GetStatistics方法的典型用法代碼示例。如果您正苦於以下問題:Golang Flow.GetStatistics方法的具體用法?Golang Flow.GetStatistics怎麽用?Golang Flow.GetStatistics使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/redhat-cip/skydive/flow.Flow的用法示例。


在下文中一共展示了Flow.GetStatistics方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: Enhance

func (gfe *GraphFlowEnhancer) Enhance(f *flow.Flow) {
	if f.IfSrcGraphPath == "" {
		f.IfSrcGraphPath = gfe.getPath(f.GetStatistics().Endpoints[flow.FlowEndpointType_ETHERNET.Value()].AB.Value)
	}
	if f.IfDstGraphPath == "" {
		f.IfDstGraphPath = gfe.getPath(f.GetStatistics().Endpoints[flow.FlowEndpointType_ETHERNET.Value()].BA.Value)
	}
}
開發者ID:mestery,項目名稱:skydive,代碼行數:8,代碼來源:graph.go

示例2: CheckFlow

func (s *TestStorage) CheckFlow(t *testing.T, f *flow.Flow, trace *flowsTraceInfo) bool {
	eth := f.GetStatistics().Endpoints[flow.FlowEndpointType_ETHERNET.Value()]

	for _, fi := range trace.flowStat {
		if fi.Path == f.LayersPath {
			if (fi.ABPackets == eth.AB.Packets) && (fi.ABBytes == eth.AB.Bytes) && (fi.BAPackets == eth.BA.Packets) && (fi.BABytes == eth.BA.Bytes) {
				fi.Checked = true
				return true
			}
		}
	}

	return false
}
開發者ID:mestery,項目名稱:skydive,代碼行數:14,代碼來源:agent_sflow_test.go

示例3: flow2OldFlow

func flow2OldFlow(f *flow.Flow) OldFlow {
	fs := f.GetStatistics()
	eth := fs.Endpoints[flow.FlowEndpointType_ETHERNET.Value()]
	ip := fs.Endpoints[flow.FlowEndpointType_IPV4.Value()]
	port := fs.Endpoints[flow.FlowEndpointType_TCPPORT.Value()]
	if port != nil {
		port = fs.Endpoints[flow.FlowEndpointType_UDPPORT.Value()]
		if port != nil {
			port = fs.Endpoints[flow.FlowEndpointType_SCTPPORT.Value()]
		}
	}

	of := OldFlow{}
	of.UUID = f.UUID
	of.LayersPath = f.LayersPath
	of.EtherSrc = eth.AB.Value
	of.EtherDst = eth.BA.Value
	of.Ipv4Src = ""
	of.Ipv4Dst = ""
	of.PortSrc = 0
	of.PortDst = 0
	if ip != nil {
		of.Ipv4Src = ip.AB.Value
		of.Ipv4Dst = ip.BA.Value
	}
	if port != nil {
		portInt, _ := strconv.Atoi(port.AB.Value)
		of.PortSrc = uint32(portInt)
		portInt, _ = strconv.Atoi(port.BA.Value)
		of.PortDst = uint32(portInt)
	}
	of.ID = 0
	of.Timestamp = uint64(fs.Start)

	of.ProbeGraphPath = f.ProbeGraphPath

	of.IfSrcName = ""
	of.IfSrcType = ""
	of.IfSrcGraphPath = ""
	of.IfSrcTenantID = ""
	of.IfSrcVNI = 0

	of.IfDstName = ""
	of.IfDstType = ""
	of.IfDstGraphPath = ""
	of.IfDstTenantID = ""
	of.IfDstVNI = 0
	return of
}
開發者ID:mestery,項目名稱:skydive,代碼行數:49,代碼來源:elasticsearch.go

示例4: Enhance

func (gfe *OvsFlowEnhancer) Enhance(f *flow.Flow) {
	var eth *flow.FlowEndpointsStatistics
	if f.IfSrcGraphPath == "" || f.IfDstGraphPath == "" {
		eth = f.GetStatistics().GetEndpointsType(flow.FlowEndpointType_ETHERNET)
		if eth == nil {
			return
		}
	}
	if f.IfSrcGraphPath == "" {
		f.IfSrcGraphPath = gfe.getPath(eth.AB.Value)
	}
	if f.IfDstGraphPath == "" {
		f.IfDstGraphPath = gfe.getPath(eth.BA.Value)
	}
}
開發者ID:lebauce,項目名稱:skydive,代碼行數:15,代碼來源:ovs.go

示例5: pcapTraceCheckFlow

func pcapTraceCheckFlow(t *testing.T, f *flow.Flow, trace *flowsTraceInfo) bool {
	eth := f.GetStatistics().GetEndpointsType(flow.FlowEndpointType_ETHERNET)
	if eth == nil {
		t.Fail()
	}

	for _, fi := range trace.flowStat {
		if fi.Path == f.LayersPath {
			if (fi.ABPackets == eth.AB.Packets) && (fi.ABBytes == eth.AB.Bytes) && (fi.BAPackets == eth.BA.Packets) && (fi.BABytes == eth.BA.Bytes) {
				fi.Checked = true
				return true
			}
		}
	}

	return false
}
開發者ID:lebauce,項目名稱:skydive,代碼行數:17,代碼來源:flow_test.go


注:本文中的github.com/redhat-cip/skydive/flow.Flow.GetStatistics方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。