Add an option to specify a custom datadog URL (#4800)
This commit is contained in:
parent
422c142463
commit
34caf12db5
|
@ -18,7 +18,7 @@ type Datadog struct {
|
||||||
Apikey string
|
Apikey string
|
||||||
Timeout internal.Duration
|
Timeout internal.Duration
|
||||||
|
|
||||||
apiUrl string
|
URL string `toml:"url"`
|
||||||
client *http.Client
|
client *http.Client
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,6 +26,9 @@ var sampleConfig = `
|
||||||
## Datadog API key
|
## Datadog API key
|
||||||
apikey = "my-secret-key" # required.
|
apikey = "my-secret-key" # required.
|
||||||
|
|
||||||
|
# The base endpoint URL can optionally be specified but it defaults to:
|
||||||
|
#url = "https://app.datadoghq.com/api/v1/series"
|
||||||
|
|
||||||
## Connection timeout.
|
## Connection timeout.
|
||||||
# timeout = "5s"
|
# timeout = "5s"
|
||||||
`
|
`
|
||||||
|
@ -45,12 +48,6 @@ type Point [2]float64
|
||||||
|
|
||||||
const datadog_api = "https://app.datadoghq.com/api/v1/series"
|
const datadog_api = "https://app.datadoghq.com/api/v1/series"
|
||||||
|
|
||||||
func NewDatadog(apiUrl string) *Datadog {
|
|
||||||
return &Datadog{
|
|
||||||
apiUrl: apiUrl,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (d *Datadog) Connect() error {
|
func (d *Datadog) Connect() error {
|
||||||
if d.Apikey == "" {
|
if d.Apikey == "" {
|
||||||
return fmt.Errorf("apikey is a required field for datadog output")
|
return fmt.Errorf("apikey is a required field for datadog output")
|
||||||
|
@ -139,7 +136,7 @@ func (d *Datadog) authenticatedUrl() string {
|
||||||
q := url.Values{
|
q := url.Values{
|
||||||
"api_key": []string{d.Apikey},
|
"api_key": []string{d.Apikey},
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("%s?%s", d.apiUrl, q.Encode())
|
return fmt.Sprintf("%s?%s", d.URL, q.Encode())
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildMetrics(m telegraf.Metric) (map[string]Point, error) {
|
func buildMetrics(m telegraf.Metric) (map[string]Point, error) {
|
||||||
|
@ -201,6 +198,8 @@ func (d *Datadog) Close() error {
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
outputs.Add("datadog", func() telegraf.Output {
|
outputs.Add("datadog", func() telegraf.Output {
|
||||||
return NewDatadog(datadog_api)
|
return &Datadog{
|
||||||
|
URL: datadog_api,
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,12 @@ var (
|
||||||
fakeApiKey = "123456"
|
fakeApiKey = "123456"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func NewDatadog(url string) *Datadog {
|
||||||
|
return &Datadog{
|
||||||
|
URL: url,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func fakeDatadog() *Datadog {
|
func fakeDatadog() *Datadog {
|
||||||
d := NewDatadog(fakeUrl)
|
d := NewDatadog(fakeUrl)
|
||||||
d.Apikey = fakeApiKey
|
d.Apikey = fakeApiKey
|
||||||
|
|
Loading…
Reference in New Issue