in agent/stats/snapshotter.go [39:67]
func (snapshotter *Snapshotter) StartSnapshot(agentConfig config.AgentConfig) {
httpClient, err := client.CreateRetryableHttpClientForEnvoyServer(agentConfig)
httpClient.HTTPClient.Timeout = EnvoyStatsClientHttpTimeout
if err != nil {
log.Errorf("unable to create Retryable Http Client: %v", err)
return
}
snapshotter.HttpClient = httpClient
queryParams := url.Values{}
queryParams.Add(usedOnlyQueryKey, "")
queryParams.Add(filterQueryKey, QuerySet[filterQueryKey].(string))
queryString := constructQueryString(queryParams)
requestUrl := getEnvoyStatsUrl(&agentConfig, queryString)
statsRequest, err := client.CreateRetryableAgentRequest(http.MethodGet, requestUrl, nil)
if err != nil {
log.Errorf("failed to create Retryable Http request, requestUrl: %s, error: %v", requestUrl, err)
return
}
snapshotter.HttpRequest = statsRequest
ticker := time.NewTicker(snapshotInterval)
// Loop forever
for {
select {
case <-ticker.C:
snapshotter.makeSnapshot()
}
}
}