mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
app/vminsert/influx: add -influxSkipSingleField
flag for using {measurement}
instead of {measurement}{separator}{field_name}
for Influx lines with a single field
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/66
This commit is contained in:
parent
5f0b3589b2
commit
3b16d49514
1 changed files with 8 additions and 2 deletions
|
@ -22,6 +22,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")
|
||||||
)
|
)
|
||||||
|
|
||||||
var rowsInserted = tenantmetrics.NewCounterMap(`vm_rows_inserted_total{type="influx"}`)
|
var rowsInserted = tenantmetrics.NewCounterMap(`vm_rows_inserted_total{type="influx"}`)
|
||||||
|
@ -94,13 +95,18 @@ func (ctx *pushCtx) InsertRows(at *auth.Token, db string) error {
|
||||||
ic.MetricNameBuf = storage.MarshalMetricNameRaw(ic.MetricNameBuf[:0], at.AccountID, at.ProjectID, ic.Labels)
|
ic.MetricNameBuf = storage.MarshalMetricNameRaw(ic.MetricNameBuf[:0], at.AccountID, at.ProjectID, ic.Labels)
|
||||||
metricNameBufLen := len(ic.MetricNameBuf)
|
metricNameBufLen := len(ic.MetricNameBuf)
|
||||||
ctx.metricGroupBuf = append(ctx.metricGroupBuf[:0], r.Measurement...)
|
ctx.metricGroupBuf = append(ctx.metricGroupBuf[:0], r.Measurement...)
|
||||||
ctx.metricGroupBuf = append(ctx.metricGroupBuf, *measurementFieldSeparator...)
|
skipFieldKey := len(r.Fields) == 1 && *skipSingleField
|
||||||
|
if !skipFieldKey {
|
||||||
|
ctx.metricGroupBuf = append(ctx.metricGroupBuf, *measurementFieldSeparator...)
|
||||||
|
}
|
||||||
metricGroupPrefixLen := len(ctx.metricGroupBuf)
|
metricGroupPrefixLen := len(ctx.metricGroupBuf)
|
||||||
ic.AddLabel("", "placeholder")
|
ic.AddLabel("", "placeholder")
|
||||||
placeholderLabel := &ic.Labels[len(ic.Labels)-1]
|
placeholderLabel := &ic.Labels[len(ic.Labels)-1]
|
||||||
for j := range r.Fields {
|
for j := range r.Fields {
|
||||||
f := &r.Fields[j]
|
f := &r.Fields[j]
|
||||||
ctx.metricGroupBuf = append(ctx.metricGroupBuf[:metricGroupPrefixLen], f.Key...)
|
if !skipFieldKey {
|
||||||
|
ctx.metricGroupBuf = append(ctx.metricGroupBuf[:metricGroupPrefixLen], f.Key...)
|
||||||
|
}
|
||||||
metricGroup := bytesutil.ToUnsafeString(ctx.metricGroupBuf)
|
metricGroup := bytesutil.ToUnsafeString(ctx.metricGroupBuf)
|
||||||
ic.Labels = ic.Labels[:len(ic.Labels)-1]
|
ic.Labels = ic.Labels[:len(ic.Labels)-1]
|
||||||
ic.AddLabel("", metricGroup)
|
ic.AddLabel("", metricGroup)
|
||||||
|
|
Loading…
Reference in a new issue