Exemplo n.º 1
0
func (u *Fping) CalcStats(row []float64, length int) map[string]string {
	dataMap := map[string]string{
		"rttmin":    "-1",
		"rttmax":    "-1",
		"rttavg":    "-1",
		"rttmdev":   "-1",
		"rttmedian": "-1",
	}

	pktxmt := length
	pktrcv := len(row)
	var d stats.Float64Data = row
	median, _ := d.Median()
	max, _ := d.Max()
	min, _ := d.Min()
	mean, _ := d.Mean()
	dev, _ := d.StandardDeviation()

	if len(row) > 0 {
		dataMap["rttmin"] = strconv.FormatFloat(min, 'f', 2, 64)
		dataMap["rttmax"] = strconv.FormatFloat(max, 'f', 2, 64)
		dataMap["rttavg"] = strconv.FormatFloat(mean, 'f', 2, 64)
		dataMap["rttmdev"] = strconv.FormatFloat(dev, 'f', 2, 64)
		dataMap["rttmedian"] = strconv.FormatFloat(median, 'f', 2, 64)
	}
	dataMap["pkttransmit"] = strconv.Itoa(pktxmt)
	dataMap["pktreceive"] = strconv.Itoa(pktrcv)

	return dataMap
}