func importCsvResult()

in plugins/inputs/haproxy/haproxy.go [232:436]


func importCsvResult(r io.Reader, acc telegraf.Accumulator, host string) error {
	csv := csv.NewReader(r)
	result, err := csv.ReadAll()
	now := time.Now()

	for _, row := range result {
		fields := make(map[string]interface{})
		tags := map[string]string{
			"server": host,
			"proxy":  row[HF_PXNAME],
			"sv":     row[HF_SVNAME],
		}
		for field, v := range row {
			switch field {
			case HF_QCUR:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["qcur"] = ival
				}
			case HF_QMAX:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["qmax"] = ival
				}
			case HF_SCUR:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["scur"] = ival
				}
			case HF_SMAX:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["smax"] = ival
				}
			case HF_SLIM:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["slim"] = ival
				}
			case HF_STOT:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["stot"] = ival
				}
			case HF_BIN:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["bin"] = ival
				}
			case HF_BOUT:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["bout"] = ival
				}
			case HF_DREQ:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["dreq"] = ival
				}
			case HF_DRESP:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["dresp"] = ival
				}
			case HF_EREQ:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["ereq"] = ival
				}
			case HF_ECON:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["econ"] = ival
				}
			case HF_ERESP:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["eresp"] = ival
				}
			case HF_WRETR:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["wretr"] = ival
				}
			case HF_WREDIS:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["wredis"] = ival
				}
			case HF_ACT:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["active_servers"] = ival
				}
			case HF_BCK:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["backup_servers"] = ival
				}
			case HF_DOWNTIME:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["downtime"] = ival
				}
			case HF_THROTTLE:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["throttle"] = ival
				}
			case HF_LBTOT:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["lbtot"] = ival
				}
			case HF_RATE:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["rate"] = ival
				}
			case HF_RATE_MAX:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["rate_max"] = ival
				}
			case HF_CHECK_DURATION:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["check_duration"] = ival
				}
			case HF_HRSP_1xx:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["http_response.1xx"] = ival
				}
			case HF_HRSP_2xx:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["http_response.2xx"] = ival
				}
			case HF_HRSP_3xx:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["http_response.3xx"] = ival
				}
			case HF_HRSP_4xx:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["http_response.4xx"] = ival
				}
			case HF_HRSP_5xx:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["http_response.5xx"] = ival
				}
			case HF_REQ_RATE:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["req_rate"] = ival
				}
			case HF_REQ_RATE_MAX:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["req_rate_max"] = ival
				}
			case HF_REQ_TOT:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["req_tot"] = ival
				}
			case HF_CLI_ABRT:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["cli_abort"] = ival
				}
			case HF_SRV_ABRT:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["srv_abort"] = ival
				}
			case HF_QTIME:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["qtime"] = ival
				}
			case HF_CTIME:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["ctime"] = ival
				}
			case HF_RTIME:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["rtime"] = ival
				}
			case HF_TTIME:
				ival, err := strconv.ParseUint(v, 10, 64)
				if err == nil {
					fields["ttime"] = ival
				}
			}
		}
		acc.AddFields("haproxy", fields, tags, now)
	}
	return err
}