diff --git a/app/vmagent/remotewrite/client.go b/app/vmagent/remotewrite/client.go index 0ebff6203d..e23a27aeba 100644 --- a/app/vmagent/remotewrite/client.go +++ b/app/vmagent/remotewrite/client.go @@ -151,12 +151,15 @@ func newHTTPClient(argIdx int, remoteWriteURL, sanitizedURL string, fq *persiste } func (c *client) init(argIdx, concurrency int, sanitizedURL string) { + // custom proto encoding is supported only over http connections + isHTTPClient := c.hc != nil + useVMProto := forceVMProto.GetOptionalArg(argIdx) usePromProto := forcePromProto.GetOptionalArg(argIdx) if useVMProto && usePromProto { logger.Fatalf("-remoteWrite.useVMProto and -remoteWrite.usePromProto cannot be set simultaneously for -remoteWrite.url=%s", sanitizedURL) } - if !useVMProto && !usePromProto { + if isHTTPClient && !useVMProto && !usePromProto { // Auto-detect whether the remote storage supports VictoriaMetrics remote write protocol. doRequest := func(url string) (*http.Response, error) { return c.doRequest(url, nil) @@ -167,7 +170,9 @@ func (c *client) init(argIdx, concurrency int, sanitizedURL string) { "See https://docs.victoriametrics.com/vmagent.html#victoriametrics-remote-write-protocol", sanitizedURL) } } - c.useVMProto = useVMProto + if isHTTPClient { + c.useVMProto = useVMProto + } if bytesPerSec := rateLimit.GetOptionalArgOrDefault(argIdx, 0); bytesPerSec > 0 { logger.Infof("applying %d bytes per second rate limit for -remoteWrite.url=%q", bytesPerSec, sanitizedURL)