in opentelemetry_collector/receiver/dockerstats/scraper.go [187:204]
func (s *scraper) readResourceUsageStats(ctx context.Context, id string) (*types.StatsJSON, error) {
st, err := s.docker.ContainerStats(ctx, id, false /*stream*/)
if err != nil {
return nil, fmt.Errorf("failed to retrieve stats: %v", err)
}
defer st.Body.Close()
b, err := ioutil.ReadAll(st.Body)
if err != nil {
return nil, fmt.Errorf("failed to read stats: %v", err)
}
var stats types.StatsJSON
if err = json.Unmarshal(b, &stats); err != nil {
return nil, fmt.Errorf("failed to unmarshal stats JSON: %v", err)
}
return &stats, nil
}