func ReportLoadResult(params *LoadReportParams, totalItems int64, valueRate float64, inputSpeed float64, loadDuration time.Duration, extraVals ...ExtraVal) error {
	c, p, err := initReport(&params.ReportParams, "load_benchmarks")
	if err != nil {
		return err
	}
	p.AddTag("gzip", strconv.FormatBool(params.IsGzip))
	p.AddTag("batch_size", strconv.Itoa(params.BatchSize))
	p.AddInt64Field("total_items", totalItems)
	p.AddFloat64Field("values_rate", valueRate)
	p.AddFloat64Field("input_rate", inputSpeed)
	p.AddFloat64Field("duration", loadDuration.Seconds())
	for _, v := range extraVals {
		switch v.Value.(type) {
		case float64:
			p.AddFloat64Field(v.Name, v.Value.(float64))
			break
		case int64:
			p.AddInt64Field(v.Name, v.Value.(int64))
			break
		case int:
			p.AddInt64Field(v.Name, int64(v.Value.(int)))
			break
		default:
			panic("unsupported type " + reflect.TypeOf(v.Value).String())
		}
	}
	err = finishReport(c, p)
	return err
}
ReportLoadResult send results from bulk load to an influxdb according to the given parameters
package report
import (
	"reflect"
	"strconv"
	"strings"
	"time"
)
type ReportParams struct {
	DBType             string
	ReportDatabaseName string
	ReportHost         string
	ReportUser         string
	ReportPassword     string
	ReportTags         [][2]string
	Hostname           string
	DestinationUrl     string
	Workers            int
	ItemLimit          int
}
type LoadReportParams struct {
	ReportParams
	IsGzip    bool
	BatchSize int
}
type QueryReportParams struct {
	ReportParams
	BurnIn int64
}
type ExtraVal struct {
	Name  string
	Value interface{}
}