Skip to content

Commit

Permalink
Additional request header parameters for httpjson plugin
Browse files Browse the repository at this point in the history
closes #471
  • Loading branch information
Andrea Sosso authored and sparrc committed Jan 26, 2016
1 parent c10227a commit f8930b9
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
10 changes: 10 additions & 0 deletions plugins/inputs/httpjson/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,16 @@ You can also specify additional request parameters for the service:
```

You can also specify additional request header parameters for the service:

```
[[httpjson.services]]
...
[httpjson.services.headers]
X-Auth-Token = "my-xauth-token"
apiVersion = "v1"
```

# Example:

Expand Down
12 changes: 12 additions & 0 deletions plugins/inputs/httpjson/httpjson.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ type HttpJson struct {
Method string
TagKeys []string
Parameters map[string]string
Headers map[string]string
client HTTPClient
}

Expand Down Expand Up @@ -70,6 +71,12 @@ var sampleConfig = `
[inputs.httpjson.parameters]
event_type = "cpu_spike"
threshold = "0.75"
# HTTP Header parameters (all values must be strings)
# [inputs.httpjson.headers]
# X-Auth-Token = "my-xauth-token"
# apiVersion = "v1"
`

func (h *HttpJson) SampleConfig() string {
Expand Down Expand Up @@ -191,6 +198,11 @@ func (h *HttpJson) sendRequest(serverURL string) (string, float64, error) {
return "", -1, err
}

// Add header parameters
for k, v := range h.Headers {
req.Header.Add(k, v)
}

start := time.Now()
resp, err := h.client.MakeRequest(req)
if err != nil {
Expand Down
8 changes: 8 additions & 0 deletions plugins/inputs/httpjson/httpjson_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ func genMockHttpJson(response string, statusCode int) []*HttpJson {
"httpParam1": "12",
"httpParam2": "the second parameter",
},
Headers: map[string]string{
"X-Auth-Token": "the-first-parameter",
"apiVersion": "v1",
},
},
&HttpJson{
client: mockHTTPClient{responseBody: response, statusCode: statusCode},
Expand All @@ -110,6 +114,10 @@ func genMockHttpJson(response string, statusCode int) []*HttpJson {
"httpParam1": "12",
"httpParam2": "the second parameter",
},
Headers: map[string]string{
"X-Auth-Token": "the-first-parameter",
"apiVersion": "v1",
},
TagKeys: []string{
"role",
"build",
Expand Down

0 comments on commit f8930b9

Please sign in to comment.