consumer/sync.go
func (c *Consumer) ContainerMetrics(appGuid string, authToken string) ([]*events.ContainerMetric, error) {
	envelopes, err := c.ContainerEnvelopes(appGuid, authToken)
	if err != nil {
		return nil, err
	}
	messages := make([]*events.ContainerMetric, 0, len(envelopes))
	for _, env := range envelopes {
		messages = append(messages, env.GetContainerMetric())
	}
	noaa.SortContainerMetrics(messages)
	return messages, nil
}
func (c *Consumer) ContainerMetrics(appGuid string, authToken string) ([]*events.ContainerMetric, error) {
	envelopes, err := c.ContainerEnvelopes(appGuid, authToken)
	if err != nil {
		return nil, err
	}
	messages := make([]*events.ContainerMetric, 0, len(envelopes))
	for _, env := range envelopes {
		messages = append(messages, env.GetContainerMetric())
	}
	noaa.SortContainerMetrics(messages)
	return messages, nil
}
// ContainerMetrics is deprecated in favor of ContainerEnvelopes, since
// returning the ContainerMetric type directly hides important
// information, like the timestamp.
//
// The returned values will be the same as ContainerEnvelopes, just with
// the Envelope stripped out.