Additional request header parameters for httpjson plugin

closes #471
This commit is contained in:
Andrea Sosso 2016-01-26 14:18:22 +01:00 committed by Cameron Sparr
parent c10227a766
commit f8930b9cbc
3 changed files with 30 additions and 0 deletions

View File

@ -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: # Example:

View File

@ -21,6 +21,7 @@ type HttpJson struct {
Method string Method string
TagKeys []string TagKeys []string
Parameters map[string]string Parameters map[string]string
Headers map[string]string
client HTTPClient client HTTPClient
} }
@ -70,6 +71,12 @@ var sampleConfig = `
[inputs.httpjson.parameters] [inputs.httpjson.parameters]
event_type = "cpu_spike" event_type = "cpu_spike"
threshold = "0.75" 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 { func (h *HttpJson) SampleConfig() string {
@ -191,6 +198,11 @@ func (h *HttpJson) sendRequest(serverURL string) (string, float64, error) {
return "", -1, err return "", -1, err
} }
// Add header parameters
for k, v := range h.Headers {
req.Header.Add(k, v)
}
start := time.Now() start := time.Now()
resp, err := h.client.MakeRequest(req) resp, err := h.client.MakeRequest(req)
if err != nil { if err != nil {

View File

@ -97,6 +97,10 @@ func genMockHttpJson(response string, statusCode int) []*HttpJson {
"httpParam1": "12", "httpParam1": "12",
"httpParam2": "the second parameter", "httpParam2": "the second parameter",
}, },
Headers: map[string]string{
"X-Auth-Token": "the-first-parameter",
"apiVersion": "v1",
},
}, },
&HttpJson{ &HttpJson{
client: mockHTTPClient{responseBody: response, statusCode: statusCode}, client: mockHTTPClient{responseBody: response, statusCode: statusCode},
@ -110,6 +114,10 @@ func genMockHttpJson(response string, statusCode int) []*HttpJson {
"httpParam1": "12", "httpParam1": "12",
"httpParam2": "the second parameter", "httpParam2": "the second parameter",
}, },
Headers: map[string]string{
"X-Auth-Token": "the-first-parameter",
"apiVersion": "v1",
},
TagKeys: []string{ TagKeys: []string{
"role", "role",
"build", "build",