Skip to content
This repository was archived by the owner on Mar 18, 2025. It is now read-only.

Commit 6d00a46

Browse files
committed
Return an error in case of bad syntax
1 parent e3241b8 commit 6d00a46

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

pkg/remotewrite/config.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,9 @@ func GetConsolidatedConfig(jsonRawConf json.RawMessage, env map[string]string, _
180180
}
181181

182182
func parseEnvs(env map[string]string) (Config, error) {
183-
var c Config
183+
c := Config{
184+
Headers: make(map[string]string),
185+
}
184186

185187
getEnvBool := func(env map[string]string, name string) (null.Bool, error) {
186188
if v, vDefined := env[name]; vDefined {
@@ -231,20 +233,14 @@ func parseEnvs(env map[string]string) (Config, error) {
231233

232234
envHeaders := getEnvMap(env, "K6_PROMETHEUS_RW_HEADERS_")
233235
for k, v := range envHeaders {
234-
if c.Headers == nil {
235-
c.Headers = make(map[string]string)
236-
}
237236
c.Headers[k] = v
238237
}
239238

240239
if headers, headersDefined := env["K6_PROMETHEUS_RW_HTTP_HEADERS"]; headersDefined {
241-
if c.Headers == nil {
242-
c.Headers = make(map[string]string)
243-
}
244240
for _, kvPair := range strings.Split(headers, ",") {
245241
header := strings.Split(kvPair, ":")
246242
if len(header) != 2 {
247-
continue
243+
return c, fmt.Errorf("the provided header (%s) does not respect the expected format <header key>:<value>", kvPair)
248244
}
249245
c.Headers[header[0]] = header[1]
250246
}

pkg/remotewrite/config_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,13 +256,13 @@ func TestOptionHeaders(t *testing.T) {
256256
jsonRaw json.RawMessage
257257
}{
258258
"JSON": {jsonRaw: json.RawMessage(
259-
`{"headers":{"X-MY-HEADER1":"hval1","X-MY-HEADER2":"hval2","X-Scope-OrgID":"my-org-id","another-header":"true"}}`)},
259+
`{"headers":{"X-MY-HEADER1":"hval1","X-MY-HEADER2":"hval2","X-Scope-OrgID":"my-org-id","another-header":"true","empty":""}}`)},
260260
"Env": {env: map[string]string{
261261
"K6_PROMETHEUS_RW_HEADERS_X-MY-HEADER1": "hval1",
262262
"K6_PROMETHEUS_RW_HEADERS_X-MY-HEADER2": "hval2",
263263
// it assert that the new method using HTTP_HEADERS overwrites it
264264
"K6_PROMETHEUS_RW_HEADERS_X-Scope-OrgID": "my-org-id-old-method",
265-
"K6_PROMETHEUS_RW_HTTP_HEADERS": "X-Scope-OrgID:my-org-id,another-header:true",
265+
"K6_PROMETHEUS_RW_HTTP_HEADERS": "X-Scope-OrgID:my-org-id,another-header:true,empty:",
266266
}},
267267
//nolint:gocritic
268268
//"Arg": {arg: "headers.X-MY-HEADER1=hval1,headers.X-MY-HEADER2=hval2"},
@@ -277,6 +277,7 @@ func TestOptionHeaders(t *testing.T) {
277277
"X-MY-HEADER2": "hval2",
278278
"X-Scope-OrgID": "my-org-id",
279279
"another-header": "true",
280+
"empty": "",
280281
},
281282
TrendStats: []string{"p(99)"},
282283
StaleMarkers: null.BoolFrom(false),

0 commit comments

Comments
 (0)