change throw_package_rate to capture_package_rate
This commit is contained in:
parent
b13f9eec6c
commit
03c0a3effd
|
@ -116,16 +116,16 @@ func (nc *networkCard) listenNormal() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// throw packets according to a certain probability
|
// capture packets according to a certain probability
|
||||||
throwPacketRate := communicator.GetTCPThrowPacketRate()
|
capturePacketRate := communicator.GetTCPCapturePacketRate()
|
||||||
if throwPacketRate >= 1.0 {
|
if capturePacketRate <= 0 {
|
||||||
time.Sleep(time.Second*3)
|
time.Sleep(time.Second*3)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
} else if 0 < throwPacketRate && throwPacketRate < 1.0 {
|
} else if 0 < capturePacketRate && capturePacketRate < 1.0 {
|
||||||
// fall into throw range
|
// fall into throw range
|
||||||
rn := rand.Float64()
|
rn := rand.Float64()
|
||||||
if rn <= throwPacketRate {
|
if rn > capturePacketRate {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,23 +8,28 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
THROW_PACKET_RATE = "throw_packet_rate"
|
CAPTURE_PACKET_RATE = "capture_packet_rate"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
communicatePort int
|
communicatePort int
|
||||||
|
// capturePacketRate float64
|
||||||
router = mux.NewRouter()
|
router = mux.NewRouter()
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
configMapLock sync.RWMutex
|
configMapLock sync.RWMutex
|
||||||
configMap map[string]configItem
|
configMap map[string]configItem
|
||||||
throwPacketRate *throwPacketRateConfig
|
catpurePacketRate *capturePacketRateConfig
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
catpurePacketRate = newCapturePacketRateConfig()
|
||||||
|
|
||||||
flag.IntVar(&communicatePort, "communicate_port", 8088, "http server port. Default is 8088")
|
flag.IntVar(&communicatePort, "communicate_port", 8088, "http server port. Default is 8088")
|
||||||
|
var cpr float64
|
||||||
|
flag.Float64Var(&cpr, CAPTURE_PACKET_RATE, 1, "capture packet rate. Default is 1.0")
|
||||||
|
_ = catpurePacketRate.setVal(cpr)
|
||||||
|
|
||||||
configMap = make(map[string]configItem)
|
configMap = make(map[string]configItem)
|
||||||
throwPacketRate = newThrowPacketRateConfig()
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,10 +82,10 @@ func outletSetConfig(resp http.ResponseWriter, req *http.Request) {
|
||||||
mp.Err = SetConfig(ep.ConfigName, ep.Value)
|
mp.Err = SetConfig(ep.ConfigName, ep.Value)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetTCPThrowPacketRate() float64 {
|
func GetTCPCapturePacketRate() float64 {
|
||||||
return throwPacketRate.tcpTPR
|
return catpurePacketRate.tcpTPR
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetMysqlThrowPacketRate() float64 {
|
func GetMysqlCapturePacketRate() float64 {
|
||||||
return throwPacketRate.mysqlTPR
|
return catpurePacketRate.mysqlTPR
|
||||||
}
|
}
|
|
@ -4,8 +4,8 @@ import "fmt"
|
||||||
|
|
||||||
// SetConfig set config by config key(name) and value
|
// SetConfig set config by config key(name) and value
|
||||||
func SetConfig(key string, val interface{}) (err error) {
|
func SetConfig(key string, val interface{}) (err error) {
|
||||||
if key == throwPacketRate.name {
|
if key == catpurePacketRate.name {
|
||||||
err = throwPacketRate.setVal(val)
|
err = catpurePacketRate.setVal(val)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,33 +10,33 @@ type configItem interface {
|
||||||
getVal () interface{}
|
getVal () interface{}
|
||||||
}
|
}
|
||||||
|
|
||||||
type throwPacketRateConfig struct {
|
type capturePacketRateConfig struct {
|
||||||
name string
|
name string
|
||||||
tcpTPR float64
|
tcpTPR float64
|
||||||
mysqlTPR float64
|
mysqlTPR float64
|
||||||
}
|
}
|
||||||
|
|
||||||
func newThrowPacketRateConfig() (tpr *throwPacketRateConfig) {
|
func newCapturePacketRateConfig() (cprc *capturePacketRateConfig) {
|
||||||
tpr = &throwPacketRateConfig{
|
cprc = &capturePacketRateConfig{
|
||||||
name: THROW_PACKET_RATE,
|
name: CAPTURE_PACKET_RATE,
|
||||||
tcpTPR: 0.0,
|
tcpTPR: 1.0,
|
||||||
mysqlTPR: 0.0,
|
mysqlTPR: 1.0,
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tc *throwPacketRateConfig) setVal (val interface{}) (err error){
|
func (cprc *capturePacketRateConfig) setVal (val interface{}) (err error){
|
||||||
realVal, ok := val.(float64)
|
realVal, ok := val.(float64)
|
||||||
if !ok {
|
if !ok {
|
||||||
err = fmt.Errorf("cannot reansform val: %v to float64", val)
|
err = fmt.Errorf("cannot reansform val: %v to float64", val)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
tc.mysqlTPR = realVal
|
cprc.mysqlTPR = realVal
|
||||||
tc.tcpTPR = math.Sqrt(realVal)
|
cprc.tcpTPR = math.Sqrt(realVal)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tc *throwPacketRateConfig) getVal () (val interface{}){
|
func (cprc *capturePacketRateConfig) getVal () (val interface{}){
|
||||||
return tc.mysqlTPR
|
return cprc.mysqlTPR
|
||||||
}
|
}
|
|
@ -313,5 +313,5 @@ func filterQueryPieceBySQL(mqp *model.PooledMysqlQueryPiece, querySQL []byte) (m
|
||||||
func (ms *MysqlSession) composeQueryPiece() (mqp *model.PooledMysqlQueryPiece) {
|
func (ms *MysqlSession) composeQueryPiece() (mqp *model.PooledMysqlQueryPiece) {
|
||||||
return model.NewPooledMysqlQueryPiece(
|
return model.NewPooledMysqlQueryPiece(
|
||||||
ms.connectionID, ms.clientHost, ms.visitUser, ms.visitDB, ms.clientHost, ms.serverIP,
|
ms.connectionID, ms.clientHost, ms.visitUser, ms.visitDB, ms.clientHost, ms.serverIP,
|
||||||
ms.clientPort, ms.serverPort, communicator.GetMysqlThrowPacketRate(), ms.stmtBeginTime)
|
ms.clientPort, ms.serverPort, communicator.GetMysqlCapturePacketRate(), ms.stmtBeginTime)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue