本文整理汇总了Golang中github.com/google/cadvisor/client.Client类的典型用法代码示例。如果您正苦于以下问题:Golang Client类的具体用法?Golang Client怎么用?Golang Client使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Client类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: getContainerAlias
func getContainerAlias(cAdvisorClient *client.Client, ContainerName string) string {
containerAliases.Lock()
defer containerAliases.Unlock()
if containerAliases.Aliases == nil {
containerAliases.Aliases = make(map[string]ContainerAliasInfo)
}
alias := containerAliases.Aliases[ContainerName].ContainerAlias
if alias == "" {
request := info.ContainerInfoRequest{
NumStats: 1,
}
cInfo, err := cAdvisorClient.ContainerInfo(ContainerName, &request)
if err == nil {
alias := getAliasSafely(cInfo.Aliases)
glog.V(4).Infof("Adding map during get: " + ContainerName + " -> " + alias)
info := &ContainerAliasInfo{alias, time.Now()}
containerAliases.Aliases[ContainerName] = *info
}
alias = containerAliases.Aliases[ContainerName].ContainerAlias
}
return alias
}
示例2: c_cadvisor
func c_cadvisor(c *client.Client, config *conf.Cadvisor) (opentsdb.MultiDataPoint, error) {
var md opentsdb.MultiDataPoint
containers, err := c.AllDockerContainers(&v1.ContainerInfoRequest{NumStats: 1})
if err != nil {
slog.Errorf("Error fetching containers from cadvisor: %v", err)
return md, err
}
for _, container := range containers {
statsForContainer(&md, &container, config)
}
return md, nil
}
示例3: getAllContainers
func (self *cadvisorSource) getAllContainers(client *cadvisorClient.Client, start, end time.Time, resolution time.Duration, align bool) (subcontainers []*api.Container, root *api.Container, err error) {
allContainers, err := client.SubcontainersInfo("/", &cadvisor.ContainerInfoRequest{Start: start, End: end})
if err != nil {
return nil, nil, err
}
for _, containerInfo := range allContainers {
container := parseStat(&containerInfo, start, resolution, align)
if containerInfo.Name == "/" {
root = container
} else {
subcontainers = append(subcontainers, container)
}
}
return subcontainers, root, nil
}
示例4: getAllContainers
func (self *cadvisorSource) getAllContainers(client *cadvisorClient.Client, numStats int) (subcontainers []*api.Container, root *api.Container, err error) {
allContainers, err := client.SubcontainersInfo("/",
&cadvisor.ContainerInfoRequest{NumStats: numStats})
if err != nil {
return nil, nil, err
}
for _, containerInfo := range allContainers {
container := self.parseStat(&containerInfo)
if containerInfo.Name == "/" {
root = container
} else {
subcontainers = append(subcontainers, container)
}
}
return subcontainers, root, nil
}
示例5: getAllContainers
// Get all containers from cAdvisor and separates the root container and other contianers.
func (self *CadvisorSource) getAllContainers(client *cadvisorClient.Client, start, end time.Time) (subcontainers []*Container, root *Container, err error) {
allContainers, err := client.SubcontainersInfo("/",
&cadvisor.ContainerInfoRequest{})
if err != nil {
glog.Errorf("Got error when trying to get container info: %v", err)
return nil, nil, err
}
for _, containerInfo := range allContainers {
container := self.parseStat(&containerInfo)
if containerInfo.Name == "/" {
root = container
} else {
subcontainers = append(subcontainers, container)
}
}
return subcontainers, root, nil
}
示例6: getContainerInfo
func getContainerInfo(client *client.Client, container string) (containerInfo info.ContainerInfo, err error) {
query := info.ContainerInfoRequest{}
cinfos, err := client.SubcontainersInfo("/", &query)
if err != nil {
return info.ContainerInfo{}, err
}
tempContainer := "/" + container
for _, cinfo := range cinfos {
if strings.HasSuffix(cinfo.Name, tempContainer) {
return cinfo, nil
}
}
return info.ContainerInfo{}, errors.New("not find container " + container)
}
示例7: GetAllContainer
func GetAllContainer(client *client.Client) ([]info.ContainerInfo, error) {
query := info.ContainerInfoRequest{}
query.NumStats = 1
cinfos, err := client.SubcontainersInfo("/", &query)
return cinfos, err
}