parent
e9d33726a9
commit
2457d95262
|
@ -34,6 +34,11 @@ API endpoint. In the following order the plugin will attempt to authenticate.
|
||||||
## Metric Statistic Namespace (required)
|
## Metric Statistic Namespace (required)
|
||||||
namespace = 'AWS/ELB'
|
namespace = 'AWS/ELB'
|
||||||
|
|
||||||
|
## Maximum requests per second. Note that the global default AWS rate limit is
|
||||||
|
## 10 reqs/sec, so if you define multiple namespaces, these should add up to a
|
||||||
|
## maximum of 10.
|
||||||
|
ratelimit = 10
|
||||||
|
|
||||||
## Metrics to Pull (optional)
|
## Metrics to Pull (optional)
|
||||||
## Defaults to all Metrics in Namespace if nothing is provided
|
## Defaults to all Metrics in Namespace if nothing is provided
|
||||||
## Refreshes Namespace available metrics every 1h
|
## Refreshes Namespace available metrics every 1h
|
||||||
|
|
|
@ -28,11 +28,12 @@ type (
|
||||||
Filename string `toml:"shared_credential_file"`
|
Filename string `toml:"shared_credential_file"`
|
||||||
Token string `toml:"token"`
|
Token string `toml:"token"`
|
||||||
|
|
||||||
Period internal.Duration `toml:"period"`
|
Period internal.Duration `toml:"period"`
|
||||||
Delay internal.Duration `toml:"delay"`
|
Delay internal.Duration `toml:"delay"`
|
||||||
Namespace string `toml:"namespace"`
|
Namespace string `toml:"namespace"`
|
||||||
Metrics []*Metric `toml:"metrics"`
|
Metrics []*Metric `toml:"metrics"`
|
||||||
CacheTTL internal.Duration `toml:"cache_ttl"`
|
CacheTTL internal.Duration `toml:"cache_ttl"`
|
||||||
|
RateLimit internal.RateLimit `toml:"ratelimit"`
|
||||||
client cloudwatchClient
|
client cloudwatchClient
|
||||||
metricCache *MetricCache
|
metricCache *MetricCache
|
||||||
}
|
}
|
||||||
|
@ -175,7 +176,7 @@ func (c *CloudWatch) Gather(acc telegraf.Accumulator) error {
|
||||||
// limit concurrency or we can easily exhaust user connection limit
|
// limit concurrency or we can easily exhaust user connection limit
|
||||||
// see cloudwatch API request limits:
|
// see cloudwatch API request limits:
|
||||||
// http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_limits.html
|
// http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_limits.html
|
||||||
lmtr := limiter.NewRateLimiter(10, time.Second)
|
lmtr := limiter.NewRateLimiter(c.RateLimit, time.Second)
|
||||||
defer lmtr.Stop()
|
defer lmtr.Stop()
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
wg.Add(len(metrics))
|
wg.Add(len(metrics))
|
||||||
|
|
Loading…
Reference in New Issue