mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-23 20:37:12 +01:00
app/{vminsert,vmagent}: add -influxSkipMeasurement
command-line flag for using field name as metric name
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/626
This commit is contained in:
parent
e1107fec10
commit
4081e2295e
@ -311,7 +311,8 @@ VictoriaMetrics maps Influx data using the following rules:
|
|||||||
unless `db` tag exists in the Influx line.
|
unless `db` tag exists in the Influx line.
|
||||||
* Field names are mapped to time series names prefixed with `{measurement}{separator}` value,
|
* Field names are mapped to time series names prefixed with `{measurement}{separator}` value,
|
||||||
where `{separator}` equals to `_` by default. It can be changed with `-influxMeasurementFieldSeparator` command-line flag.
|
where `{separator}` equals to `_` by default. It can be changed with `-influxMeasurementFieldSeparator` command-line flag.
|
||||||
See also `-influxSkipSingleField` command-line flag. If `{measurement}` is empty, then time series names correspond to field names.
|
See also `-influxSkipSingleField` command-line flag.
|
||||||
|
If `{measurement}` is empty or `-influxSkipMeasurement` command-line flag is set, then time series names correspond to field names.
|
||||||
* Field values are mapped to time series values.
|
* Field values are mapped to time series values.
|
||||||
* Tags are mapped to Prometheus labels as-is.
|
* Tags are mapped to Prometheus labels as-is.
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@ import (
|
|||||||
var (
|
var (
|
||||||
measurementFieldSeparator = flag.String("influxMeasurementFieldSeparator", "_", "Separator for '{measurement}{separator}{field_name}' metric name when inserted via Influx line protocol")
|
measurementFieldSeparator = flag.String("influxMeasurementFieldSeparator", "_", "Separator for '{measurement}{separator}{field_name}' metric name when inserted via Influx line protocol")
|
||||||
skipSingleField = flag.Bool("influxSkipSingleField", false, "Uses '{measurement}' instead of '{measurement}{separator}{field_name}' for metic name if Influx line contains only a single field")
|
skipSingleField = flag.Bool("influxSkipSingleField", false, "Uses '{measurement}' instead of '{measurement}{separator}{field_name}' for metic name if Influx line contains only a single field")
|
||||||
|
skipMeasurement = flag.Bool("influxSkipMeasurement", false, "Uses '{field_name}' as a metric name while ignoring '{measurement}' and '-influxMeasurementFieldSeparator'")
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -79,7 +80,10 @@ func insertRows(db string, rows []parser.Row) error {
|
|||||||
Value: db,
|
Value: db,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
ctx.metricGroupBuf = append(ctx.metricGroupBuf[:0], r.Measurement...)
|
ctx.metricGroupBuf = ctx.metricGroupBuf[:0]
|
||||||
|
if !*skipMeasurement {
|
||||||
|
ctx.metricGroupBuf = append(ctx.metricGroupBuf, r.Measurement...)
|
||||||
|
}
|
||||||
skipFieldKey := len(r.Fields) == 1 && *skipSingleField
|
skipFieldKey := len(r.Fields) == 1 && *skipSingleField
|
||||||
if len(ctx.metricGroupBuf) > 0 && !skipFieldKey {
|
if len(ctx.metricGroupBuf) > 0 && !skipFieldKey {
|
||||||
ctx.metricGroupBuf = append(ctx.metricGroupBuf, *measurementFieldSeparator...)
|
ctx.metricGroupBuf = append(ctx.metricGroupBuf, *measurementFieldSeparator...)
|
||||||
|
@ -19,6 +19,7 @@ import (
|
|||||||
var (
|
var (
|
||||||
measurementFieldSeparator = flag.String("influxMeasurementFieldSeparator", "_", "Separator for '{measurement}{separator}{field_name}' metric name when inserted via Influx line protocol")
|
measurementFieldSeparator = flag.String("influxMeasurementFieldSeparator", "_", "Separator for '{measurement}{separator}{field_name}' metric name when inserted via Influx line protocol")
|
||||||
skipSingleField = flag.Bool("influxSkipSingleField", false, "Uses '{measurement}' instead of '{measurement}{separator}{field_name}' for metic name if Influx line contains only a single field")
|
skipSingleField = flag.Bool("influxSkipSingleField", false, "Uses '{measurement}' instead of '{measurement}{separator}{field_name}' for metic name if Influx line contains only a single field")
|
||||||
|
skipMeasurement = flag.Bool("influxSkipMeasurement", false, "Uses '{field_name}' as a metric name while ignoring '{measurement}' and '-influxMeasurementFieldSeparator'")
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -75,7 +76,10 @@ func insertRows(db string, rows []parser.Row) error {
|
|||||||
if len(db) > 0 && !hasDBLabel {
|
if len(db) > 0 && !hasDBLabel {
|
||||||
ic.AddLabel("db", db)
|
ic.AddLabel("db", db)
|
||||||
}
|
}
|
||||||
ctx.metricGroupBuf = append(ctx.metricGroupBuf[:0], r.Measurement...)
|
ctx.metricGroupBuf = ctx.metricGroupBuf[:0]
|
||||||
|
if !*skipMeasurement {
|
||||||
|
ctx.metricGroupBuf = append(ctx.metricGroupBuf, r.Measurement...)
|
||||||
|
}
|
||||||
skipFieldKey := len(r.Fields) == 1 && *skipSingleField
|
skipFieldKey := len(r.Fields) == 1 && *skipSingleField
|
||||||
if len(ctx.metricGroupBuf) > 0 && !skipFieldKey {
|
if len(ctx.metricGroupBuf) > 0 && !skipFieldKey {
|
||||||
ctx.metricGroupBuf = append(ctx.metricGroupBuf, *measurementFieldSeparator...)
|
ctx.metricGroupBuf = append(ctx.metricGroupBuf, *measurementFieldSeparator...)
|
||||||
|
Loading…
Reference in New Issue
Block a user