package accelerators

import "github.com/google/cadvisor/accelerators"

Copyright 2017 Google Inc. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2017 Google Inc. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Types

type AcceleratorCollector

type AcceleratorCollector interface {
	UpdateStats(*info.ContainerStats) error
}

type AcceleratorManager

type AcceleratorManager interface {
	Setup()
	Destroy()
	GetCollector(deviceCgroup string) (AcceleratorCollector, error)
}

This is supposed to store global state about an accelerator metrics collector. cadvisor manager will call Setup() when it starts and Destroy() when it stops. For each container detected by the cadvisor manager, it will call GetCollector() with the devices cgroup path for that container. GetCollector() is supposed to return an object that can update accelerator stats for that container.

type NvidiaCollector

type NvidiaCollector struct {
	// Exposed for testing
	Devices []gonvml.Device
}

func (*NvidiaCollector) UpdateStats

func (nc *NvidiaCollector) UpdateStats(stats *info.ContainerStats) error

UpdateStats updates the stats for NVIDIA GPUs (if any) attached to the container.

type NvidiaManager

type NvidiaManager struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*NvidiaManager) Destroy

func (nm *NvidiaManager) Destroy()

Destroy shuts down NVML.

func (*NvidiaManager) GetCollector

func (nm *NvidiaManager) GetCollector(devicesCgroupPath string) (AcceleratorCollector, error)

GetCollector returns a collector that can fetch nvidia gpu metrics for nvidia devices present in the devices.list file in the given devicesCgroupPath.

func (*NvidiaManager) Setup

func (nm *NvidiaManager) Setup()

Setup initializes NVML if nvidia devices are present on the node.

Source Files

nvidia.go types.go

Version
v0.33.0
Published
Feb 27, 2019
Platform
darwin/amd64
Imports
12 packages
Last checked
12 minutes ago

Tools for package owners.