Как мне сгенерировать 'RowMetri c' с помощью для l oop?
Ниже я создал рабочий для l oop, чтобы отправить массив значений измерений в InfluxDB (2.0). Поскольку каждое отдельное значение измерения отправляется отдельно в InlfuxDB, это l oop далеко не эффективно. Мне нравится переписывать это l oop, чтобы он сразу отправлял весь массив в InfluxDB. Обратите внимание, что тег 'Frequency' должен иметь различное значение в каждом новом RowMetri c. Другие теги одинаковы для всего массива.
for _, measurementValueString := range stringArray {
measurementValue,_ := strconv.ParseFloat(measurementValueString,64)
{
myMetrics = []influxdb.Metric{
influxdb.NewRowMetric(
map[string]interface{}{"measurementValue": measurementValue},
"measurements",
map[string]string{
"Frequency": FreqNextMeasurementString,
"FileType": headerFileType,
"LocationName": headerLocationName,
"Latitude": headerLatitudeDDString,
"Longitude": headerLongitudeDDString,
"AntennaType": headerAntennaType,
"FilterBandwidth": headerFilterBandwidthString,
"LevelUnits": headerLevelUnits,
"Detector": headerDetector,
"Note": headerNote,
"AntennaAzimuth": headerAntennaAzimuthString,
"AntennaElevation": headerAntennaElevationString,
"Attenuation": headerAttenuationString,
"FilterType": headerFilterType,
"DisplayedNote": headerDisplayedNote,
"MeasurementAccuracy": headerMeasurementAccuracy,
"VideoFilterType": headerVideoFilterType,
},
time.Date(int(dayMeasurementYear), time.Month(int(dayMeasurementMonth)), int(dayMeasurementDay), int(timeMeasurementHour), int(timeMeasurementMin), int(timeMeasurementSec), 0, time.UTC)),
}
if _, err := influx.Write(context.Background(), "test", "at", myMetrics...); err != nil
{
log.Fatal(err)
}
FreqNextMeasurement = FreqNextMeasurement + frequencyStep
FreqNextMeasurementString = strconv.FormatFloat(FreqNextMeasurement, 'f', -1, 64)
}
}
influx.Close()