mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-15 08:23:34 +01:00
app/{vmagent,vminsert}: add -usePromCompatibleNaming
command-line flag for normalizing metric names and label names in the ingested samples
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3113 Thanks to @erkexzcx for the idea and the initial pull request at https://github.com/VictoriaMetrics/VictoriaMetrics/pull/3146
This commit is contained in:
parent
594a4ab345
commit
6a6cf9c590
@ -189,6 +189,7 @@ with [the official Grafana dashboard for VictoriaMetrics cluster](https://grafan
|
|||||||
or [an alternative dashboard for VictoriaMetrics cluster](https://grafana.com/grafana/dashboards/11831). Graphs on these dashboards contain useful hints - hover the `i` icon at the top left corner of each graph in order to read it.
|
or [an alternative dashboard for VictoriaMetrics cluster](https://grafana.com/grafana/dashboards/11831). Graphs on these dashboards contain useful hints - hover the `i` icon at the top left corner of each graph in order to read it.
|
||||||
|
|
||||||
It is recommended setting up alerts in [vmalert](https://docs.victoriametrics.com/vmalert.html) or in Prometheus from [this config](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/cluster/deployment/docker/alerts.yml).
|
It is recommended setting up alerts in [vmalert](https://docs.victoriametrics.com/vmalert.html) or in Prometheus from [this config](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/cluster/deployment/docker/alerts.yml).
|
||||||
|
See more details in the article [VictoriaMetrics Monitoring](https://victoriametrics.com/blog/victoriametrics-monitoring/).
|
||||||
|
|
||||||
## Cardinality limiter
|
## Cardinality limiter
|
||||||
|
|
||||||
@ -770,6 +771,8 @@ Below is the output for `/path/to/vminsert -help`:
|
|||||||
Supports an array of values separated by comma or specified via multiple flags.
|
Supports an array of values separated by comma or specified via multiple flags.
|
||||||
-tlsKeyFile string
|
-tlsKeyFile string
|
||||||
Path to file with TLS key if -tls is set. The provided key file is automatically re-read every second, so it can be dynamically updated
|
Path to file with TLS key if -tls is set. The provided key file is automatically re-read every second, so it can be dynamically updated
|
||||||
|
-usePromCompatibleNaming
|
||||||
|
Whether to replace characters unsupported by Prometheus with underscores in the ingested metric names and label names. For example, foo.bar{a.b='c'} is transformed into foo_bar{a_b='c'} during data ingestion if this flag is set. See https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels
|
||||||
-version
|
-version
|
||||||
Show VictoriaMetrics version
|
Show VictoriaMetrics version
|
||||||
-vmstorageDialTimeout duration
|
-vmstorageDialTimeout duration
|
||||||
|
@ -1267,6 +1267,8 @@ See the docs at https://docs.victoriametrics.com/vmagent.html .
|
|||||||
Supports an array of values separated by comma or specified via multiple flags.
|
Supports an array of values separated by comma or specified via multiple flags.
|
||||||
-tlsKeyFile string
|
-tlsKeyFile string
|
||||||
Path to file with TLS key if -tls is set. The provided key file is automatically re-read every second, so it can be dynamically updated
|
Path to file with TLS key if -tls is set. The provided key file is automatically re-read every second, so it can be dynamically updated
|
||||||
|
-usePromCompatibleNaming
|
||||||
|
Whether to replace characters unsupported by Prometheus with underscores in the ingested metric names and label names. For example, foo.bar{a.b='c'} is transformed into foo_bar{a_b='c'} during data ingestion if this flag is set. See https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels
|
||||||
-version
|
-version
|
||||||
Show VictoriaMetrics version
|
Show VictoriaMetrics version
|
||||||
```
|
```
|
||||||
|
@ -3,6 +3,7 @@ package remotewrite
|
|||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
@ -25,6 +26,10 @@ var (
|
|||||||
relabelDebug = flagutil.NewArrayBool("remoteWrite.urlRelabelDebug", "Whether to log metrics before and after relabeling with -remoteWrite.urlRelabelConfig. "+
|
relabelDebug = flagutil.NewArrayBool("remoteWrite.urlRelabelDebug", "Whether to log metrics before and after relabeling with -remoteWrite.urlRelabelConfig. "+
|
||||||
"If the -remoteWrite.urlRelabelDebug is enabled, then the metrics aren't sent to the corresponding -remoteWrite.url. "+
|
"If the -remoteWrite.urlRelabelDebug is enabled, then the metrics aren't sent to the corresponding -remoteWrite.url. "+
|
||||||
"This is useful for debugging the relabeling configs")
|
"This is useful for debugging the relabeling configs")
|
||||||
|
|
||||||
|
usePromCompatibleNaming = flag.Bool("usePromCompatibleNaming", false, "Whether to replace characters unsupported by Prometheus with underscores "+
|
||||||
|
"in the ingested metric names and label names. For example, foo.bar{a.b='c'} is transformed into foo_bar{a_b='c'} during data ingestion if this flag is set. "+
|
||||||
|
"See https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels")
|
||||||
)
|
)
|
||||||
|
|
||||||
var labelsGlobal []prompbmarshal.Label
|
var labelsGlobal []prompbmarshal.Label
|
||||||
@ -107,6 +112,18 @@ func (rctx *relabelCtx) applyRelabeling(tss []prompbmarshal.TimeSeries, extraLab
|
|||||||
labels = append(labels, *extraLabel)
|
labels = append(labels, *extraLabel)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if *usePromCompatibleNaming {
|
||||||
|
// Replace unsupported Prometheus chars in label names and metric names with underscores.
|
||||||
|
tmpLabels := labels[labelsLen:]
|
||||||
|
for j := range tmpLabels {
|
||||||
|
label := &tmpLabels[j]
|
||||||
|
if label.Name == "__name__" {
|
||||||
|
label.Value = unsupportedPromChars.ReplaceAllString(label.Value, "_")
|
||||||
|
} else {
|
||||||
|
label.Name = unsupportedPromChars.ReplaceAllString(label.Name, "_")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
labels = pcs.Apply(labels, labelsLen, true)
|
labels = pcs.Apply(labels, labelsLen, true)
|
||||||
if len(labels) == labelsLen {
|
if len(labels) == labelsLen {
|
||||||
// Drop the current time series, since relabeling removed all the labels.
|
// Drop the current time series, since relabeling removed all the labels.
|
||||||
@ -121,6 +138,9 @@ func (rctx *relabelCtx) applyRelabeling(tss []prompbmarshal.TimeSeries, extraLab
|
|||||||
return tssDst
|
return tssDst
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// See https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels
|
||||||
|
var unsupportedPromChars = regexp.MustCompile(`[^a-zA-Z0-9_:]`)
|
||||||
|
|
||||||
type relabelCtx struct {
|
type relabelCtx struct {
|
||||||
// pool for labels, which are used during the relabeling.
|
// pool for labels, which are used during the relabeling.
|
||||||
labels []prompbmarshal.Label
|
labels []prompbmarshal.Label
|
||||||
|
@ -3,6 +3,7 @@ package relabel
|
|||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"regexp"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
|
|
||||||
"github.com/VictoriaMetrics/VictoriaMetrics/lib/bytesutil"
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/bytesutil"
|
||||||
@ -20,6 +21,10 @@ var (
|
|||||||
"See https://docs.victoriametrics.com/#relabeling for details. The config is reloaded on SIGHUP signal")
|
"See https://docs.victoriametrics.com/#relabeling for details. The config is reloaded on SIGHUP signal")
|
||||||
relabelDebug = flag.Bool("relabelDebug", false, "Whether to log metrics before and after relabeling with -relabelConfig. If the -relabelDebug is enabled, "+
|
relabelDebug = flag.Bool("relabelDebug", false, "Whether to log metrics before and after relabeling with -relabelConfig. If the -relabelDebug is enabled, "+
|
||||||
"then the metrics aren't sent to storage. This is useful for debugging the relabeling configs")
|
"then the metrics aren't sent to storage. This is useful for debugging the relabeling configs")
|
||||||
|
|
||||||
|
usePromCompatibleNaming = flag.Bool("usePromCompatibleNaming", false, "Whether to replace characters unsupported by Prometheus with underscores "+
|
||||||
|
"in the ingested metric names and label names. For example, foo.bar{a.b='c'} is transformed into foo_bar{a_b='c'} during data ingestion if this flag is set. "+
|
||||||
|
"See https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels")
|
||||||
)
|
)
|
||||||
|
|
||||||
// Init must be called after flag.Parse and before using the relabel package.
|
// Init must be called after flag.Parse and before using the relabel package.
|
||||||
@ -67,7 +72,7 @@ func loadRelabelConfig() (*promrelabel.ParsedConfigs, error) {
|
|||||||
// HasRelabeling returns true if there is global relabeling.
|
// HasRelabeling returns true if there is global relabeling.
|
||||||
func HasRelabeling() bool {
|
func HasRelabeling() bool {
|
||||||
pcs := pcsGlobal.Load().(*promrelabel.ParsedConfigs)
|
pcs := pcsGlobal.Load().(*promrelabel.ParsedConfigs)
|
||||||
return pcs.Len() > 0
|
return pcs.Len() > 0 || *usePromCompatibleNaming
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ctx holds relabeling context.
|
// Ctx holds relabeling context.
|
||||||
@ -87,11 +92,11 @@ func (ctx *Ctx) Reset() {
|
|||||||
// The returned labels are valid until the next call to ApplyRelabeling.
|
// The returned labels are valid until the next call to ApplyRelabeling.
|
||||||
func (ctx *Ctx) ApplyRelabeling(labels []prompb.Label) []prompb.Label {
|
func (ctx *Ctx) ApplyRelabeling(labels []prompb.Label) []prompb.Label {
|
||||||
pcs := pcsGlobal.Load().(*promrelabel.ParsedConfigs)
|
pcs := pcsGlobal.Load().(*promrelabel.ParsedConfigs)
|
||||||
if pcs.Len() == 0 {
|
if pcs.Len() == 0 && !*usePromCompatibleNaming {
|
||||||
// There are no relabeling rules.
|
// There are no relabeling rules.
|
||||||
return labels
|
return labels
|
||||||
}
|
}
|
||||||
// Convert src to prompbmarshal.Label format suitable for relabeling.
|
// Convert labels to prompbmarshal.Label format suitable for relabeling.
|
||||||
tmpLabels := ctx.tmpLabels[:0]
|
tmpLabels := ctx.tmpLabels[:0]
|
||||||
for _, label := range labels {
|
for _, label := range labels {
|
||||||
name := bytesutil.ToUnsafeString(label.Name)
|
name := bytesutil.ToUnsafeString(label.Name)
|
||||||
@ -105,13 +110,28 @@ func (ctx *Ctx) ApplyRelabeling(labels []prompb.Label) []prompb.Label {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply relabeling
|
if *usePromCompatibleNaming {
|
||||||
tmpLabels = pcs.Apply(tmpLabels, 0, true)
|
// Replace unsupported Prometheus chars in label names and metric names with underscores.
|
||||||
ctx.tmpLabels = tmpLabels
|
for i := range tmpLabels {
|
||||||
if len(tmpLabels) == 0 {
|
label := &tmpLabels[i]
|
||||||
metricsDropped.Inc()
|
if label.Name == "__name__" {
|
||||||
|
label.Value = unsupportedPromChars.ReplaceAllString(label.Value, "_")
|
||||||
|
} else {
|
||||||
|
label.Name = unsupportedPromChars.ReplaceAllString(label.Name, "_")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if pcs.Len() > 0 {
|
||||||
|
// Apply relabeling
|
||||||
|
tmpLabels = pcs.Apply(tmpLabels, 0, true)
|
||||||
|
if len(tmpLabels) == 0 {
|
||||||
|
metricsDropped.Inc()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.tmpLabels = tmpLabels
|
||||||
|
|
||||||
// Return back labels to the desired format.
|
// Return back labels to the desired format.
|
||||||
dst := labels[:0]
|
dst := labels[:0]
|
||||||
for _, label := range tmpLabels {
|
for _, label := range tmpLabels {
|
||||||
@ -129,3 +149,6 @@ func (ctx *Ctx) ApplyRelabeling(labels []prompb.Label) []prompb.Label {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var metricsDropped = metrics.NewCounter(`vm_relabel_metrics_dropped_total`)
|
var metricsDropped = metrics.NewCounter(`vm_relabel_metrics_dropped_total`)
|
||||||
|
|
||||||
|
// See https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels
|
||||||
|
var unsupportedPromChars = regexp.MustCompile(`[^a-zA-Z0-9_:]`)
|
||||||
|
@ -19,6 +19,7 @@ The following tip changes can be tested by building VictoriaMetrics components f
|
|||||||
|
|
||||||
**Update note 2:** [vmalert](https://docs.victoriametrics.com/vmalert.html) changes default value for command-line flag `-datasource.queryStep` from `0s` to `5m`. The change supposed to improve reliability of the rules evaluation when evaluation interval is lower than scraping interval.
|
**Update note 2:** [vmalert](https://docs.victoriametrics.com/vmalert.html) changes default value for command-line flag `-datasource.queryStep` from `0s` to `5m`. The change supposed to improve reliability of the rules evaluation when evaluation interval is lower than scraping interval.
|
||||||
|
|
||||||
|
* FEATURE: add `-usePromCompatibleNaming` command-line flag to [vmagent](https://docs.victoriametrics.com/vmagent.html), to single-node VictoriaMetrics and to `vminsert` component of VictoriaMetrics cluster. This flag can be used for normalizing the ingested metric names and label names to [Prometheus-compatible form](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels). If this flag is set, then all the chars unsupported by Prometheus are replaced with `_` chars in metric names and labels of the ingested samples. See [this feature request](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3113).
|
||||||
* FEATURE: check the correctess of raw sample timestamps stored on disk when reading them. This reduces the probability of possible silent corruption of the data stored on disk. This should help [this](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2998) and [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3011).
|
* FEATURE: check the correctess of raw sample timestamps stored on disk when reading them. This reduces the probability of possible silent corruption of the data stored on disk. This should help [this](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2998) and [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3011).
|
||||||
* FEATURE: atomically delete directories with snapshots, parts and partitions at [storage level](https://docs.victoriametrics.com/#storage). Previously such directories can be left in partially deleted state when the deletion operation was interrupted by unclean shutdown. This may result in `cannot open file ...: no such file or directory` error on the next start. The probability of this error was quite high when NFS or EFS was used as persistent storage for VictoriaMetrics data. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3038).
|
* FEATURE: atomically delete directories with snapshots, parts and partitions at [storage level](https://docs.victoriametrics.com/#storage). Previously such directories can be left in partially deleted state when the deletion operation was interrupted by unclean shutdown. This may result in `cannot open file ...: no such file or directory` error on the next start. The probability of this error was quite high when NFS or EFS was used as persistent storage for VictoriaMetrics data. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3038).
|
||||||
* FEATURE: set the `start` arg to `end - 5 minutes` if isn't passed explicitly to [/api/v1/labels](https://docs.victoriametrics.com/url-examples.html#apiv1labels) and [/api/v1/label/.../values](https://docs.victoriametrics.com/url-examples.html#apiv1labelvalues). See [this pull request](https://github.com/VictoriaMetrics/VictoriaMetrics/pull/3052).
|
* FEATURE: set the `start` arg to `end - 5 minutes` if isn't passed explicitly to [/api/v1/labels](https://docs.victoriametrics.com/url-examples.html#apiv1labels) and [/api/v1/label/.../values](https://docs.victoriametrics.com/url-examples.html#apiv1labelvalues). See [this pull request](https://github.com/VictoriaMetrics/VictoriaMetrics/pull/3052).
|
||||||
|
@ -775,6 +775,8 @@ Below is the output for `/path/to/vminsert -help`:
|
|||||||
Supports an array of values separated by comma or specified via multiple flags.
|
Supports an array of values separated by comma or specified via multiple flags.
|
||||||
-tlsKeyFile string
|
-tlsKeyFile string
|
||||||
Path to file with TLS key if -tls is set. The provided key file is automatically re-read every second, so it can be dynamically updated
|
Path to file with TLS key if -tls is set. The provided key file is automatically re-read every second, so it can be dynamically updated
|
||||||
|
-usePromCompatibleNaming
|
||||||
|
Whether to replace characters unsupported by Prometheus with underscores in the ingested metric names and label names. For example, foo.bar{a.b='c'} is transformed into foo_bar{a_b='c'} during data ingestion if this flag is set. See https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels
|
||||||
-version
|
-version
|
||||||
Show VictoriaMetrics version
|
Show VictoriaMetrics version
|
||||||
-vmstorageDialTimeout duration
|
-vmstorageDialTimeout duration
|
||||||
|
@ -465,6 +465,9 @@ VictoriaMetrics performs the following transformations to the ingested InfluxDB
|
|||||||
* 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. See also `-influxSkipSingleField` command-line flag. If `{measurement}` is empty or if `-influxSkipMeasurement` command-line flag is set, then time series names correspond to field names.
|
* 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. See also `-influxSkipSingleField` command-line flag. If `{measurement}` is empty or if `-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.
|
||||||
|
* If `-usePromCompatibleNaming` command-line flag is set, then all the metric names and label names
|
||||||
|
are normalized to [Prometheus-compatible naming](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels) by replacing unsupported chars with `_`.
|
||||||
|
For example, `foo.bar-baz/1` metric name or label name is substituted with `foo_bar_baz_1`.
|
||||||
|
|
||||||
For example, the following InfluxDB line:
|
For example, the following InfluxDB line:
|
||||||
|
|
||||||
@ -2333,6 +2336,8 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li
|
|||||||
Supports an array of values separated by comma or specified via multiple flags.
|
Supports an array of values separated by comma or specified via multiple flags.
|
||||||
-tlsKeyFile string
|
-tlsKeyFile string
|
||||||
Path to file with TLS key if -tls is set. The provided key file is automatically re-read every second, so it can be dynamically updated
|
Path to file with TLS key if -tls is set. The provided key file is automatically re-read every second, so it can be dynamically updated
|
||||||
|
-usePromCompatibleNaming
|
||||||
|
Whether to replace characters unsupported by Prometheus with underscores in the ingested metric names and label names. For example, foo.bar{a.b='c'} is transformed into foo_bar{a_b='c'} during data ingestion if this flag is set. See https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels
|
||||||
-version
|
-version
|
||||||
Show VictoriaMetrics version
|
Show VictoriaMetrics version
|
||||||
-vmalert.proxyURL string
|
-vmalert.proxyURL string
|
||||||
|
@ -469,6 +469,9 @@ VictoriaMetrics performs the following transformations to the ingested InfluxDB
|
|||||||
* 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. See also `-influxSkipSingleField` command-line flag. If `{measurement}` is empty or if `-influxSkipMeasurement` command-line flag is set, then time series names correspond to field names.
|
* 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. See also `-influxSkipSingleField` command-line flag. If `{measurement}` is empty or if `-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.
|
||||||
|
* If `-usePromCompatibleNaming` command-line flag is set, then all the metric names and label names
|
||||||
|
are normalized to [Prometheus-compatible naming](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels) by replacing unsupported chars with `_`.
|
||||||
|
For example, `foo.bar-baz/1` metric name or label name is substituted with `foo_bar_baz_1`.
|
||||||
|
|
||||||
For example, the following InfluxDB line:
|
For example, the following InfluxDB line:
|
||||||
|
|
||||||
@ -2337,6 +2340,8 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li
|
|||||||
Supports an array of values separated by comma or specified via multiple flags.
|
Supports an array of values separated by comma or specified via multiple flags.
|
||||||
-tlsKeyFile string
|
-tlsKeyFile string
|
||||||
Path to file with TLS key if -tls is set. The provided key file is automatically re-read every second, so it can be dynamically updated
|
Path to file with TLS key if -tls is set. The provided key file is automatically re-read every second, so it can be dynamically updated
|
||||||
|
-usePromCompatibleNaming
|
||||||
|
Whether to replace characters unsupported by Prometheus with underscores in the ingested metric names and label names. For example, foo.bar{a.b='c'} is transformed into foo_bar{a_b='c'} during data ingestion if this flag is set. See https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels
|
||||||
-version
|
-version
|
||||||
Show VictoriaMetrics version
|
Show VictoriaMetrics version
|
||||||
-vmalert.proxyURL string
|
-vmalert.proxyURL string
|
||||||
|
@ -1271,6 +1271,8 @@ See the docs at https://docs.victoriametrics.com/vmagent.html .
|
|||||||
Supports an array of values separated by comma or specified via multiple flags.
|
Supports an array of values separated by comma or specified via multiple flags.
|
||||||
-tlsKeyFile string
|
-tlsKeyFile string
|
||||||
Path to file with TLS key if -tls is set. The provided key file is automatically re-read every second, so it can be dynamically updated
|
Path to file with TLS key if -tls is set. The provided key file is automatically re-read every second, so it can be dynamically updated
|
||||||
|
-usePromCompatibleNaming
|
||||||
|
Whether to replace characters unsupported by Prometheus with underscores in the ingested metric names and label names. For example, foo.bar{a.b='c'} is transformed into foo_bar{a_b='c'} during data ingestion if this flag is set. See https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels
|
||||||
-version
|
-version
|
||||||
Show VictoriaMetrics version
|
Show VictoriaMetrics version
|
||||||
```
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user