metric

package
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2024 License: Apache-2.0 Imports: 41 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// GBSIZE metrics
	GBSIZE          = 1024 * 1024 * 1024
	NFSMetricsCount = 16
)
View Source
const (

	// unknown metric value
	UnknownValue string = "unknown"
)

Variables

View Source
var ErrNoData = errors.New("Collector returned no data")

ErrNoData indicates the collector found no data to collect, but had no other error.

View Source
var ErrUnexpectedVolumeType = errors.New("VolumeType is not the expected type")

Functions

func IsNoDataError

func IsNoDataError(err error) bool

IsNoDataError method is to determine whether the Collector has no data to return

Types

type CSICollector

type CSICollector struct {
	Collectors map[string]Collector
}

CSICollector implements the prometheus.Collector interface.

func (CSICollector) Collect

func (csi CSICollector) Collect(ch chan<- prometheus.Metric)

Collect implements the prometheus.Collector interface.

func (CSICollector) Describe

func (csi CSICollector) Describe(ch chan<- *prometheus.Desc)

Describe implements the prometheus.Collector interface.

type Collector

type Collector interface {
	// Get new metrics and expose them via prometheus registry.
	Update(ch chan<- prometheus.Metric) error
}

Collector is the interface a collector has to implement.

func NewDiskStatCollector

func NewDiskStatCollector() (Collector, error)

NewDiskStatCollector returns a new Collector exposing disk stats.

func NewFuseStatCollector added in v1.1.7

func NewFuseStatCollector() (Collector, error)

NewUsFsStatCollector returns a new Collector exposing user space fs stats.

func NewKubeletStatsSummaryCollector added in v1.4.0

func NewKubeletStatsSummaryCollector() (Collector, error)

func NewNfsStatCollector added in v1.1.2

func NewNfsStatCollector() (Collector, error)

NewNfsStatCollector returns a new Collector exposing nfs stats.

func NewPfsRawBlockStatCollector added in v1.1.1

func NewPfsRawBlockStatCollector() (Collector, error)

NewPfsRawBlockStatCollector returns a new Collector exposing stats.

type Handler

type Handler struct {
}

Handler is a package of promHttp,metric entry

func NewMetricHandler

func NewMetricHandler(serviceType string, driverNames []string) *Handler

NewMetricHandler method returns a promHttp object

func (*Handler) ServeHTTP

func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP implements http.Handler.

type Mount added in v1.1.2

type Mount struct {
	// Name of the device.
	Device string
	// The mount point of the device.
	Mount string
	// The filesystem type used by the device.
	Type string
	// If available additional statistics related to this Mount.
	// Use a type assertion to determine if additional statistics are available.
	Stats MountStats
}

A Mount is a device mount parsed from /proc/[pid]/mountstats.

type MountStats added in v1.1.2

type MountStats interface {
	// contains filtered or unexported methods
}

A MountStats is a type which contains detailed statistics for a specific type of Mount.

type MountStatsNFS added in v1.1.2

type MountStatsNFS struct {
	// The version of statistics provided.
	StatVersion string
	// The mount options of the NFS mount.
	Opts map[string]string
	// The age of the NFS mount.
	Age time.Duration
	// Statistics related to byte counters for various operations.
	Bytes NFSBytesStats
	// Statistics related to various NFS event occurrences.
	Events NFSEventsStats
	// Statistics broken down by filesystem operation.
	Operations []NFSOperationStats
	// Statistics about the NFS RPC transport.
	Transport NFSTransportStats
}

A MountStatsNFS is a MountStats implementation for NFSv3 and v4 mounts.

type NFSBytesStats added in v1.1.2

type NFSBytesStats struct {
	// Number of bytes read using the read() syscall.
	Read uint64
	// Number of bytes written using the write() syscall.
	Write uint64
	// Number of bytes read using the read() syscall in O_DIRECT mode.
	DirectRead uint64
	// Number of bytes written using the write() syscall in O_DIRECT mode.
	DirectWrite uint64
	// Number of bytes read from the NFS server, in total.
	ReadTotal uint64
	// Number of bytes written to the NFS server, in total.
	WriteTotal uint64
	// Number of pages read directly via mmap()'d files.
	ReadPages uint64
	// Number of pages written directly via mmap()'d files.
	WritePages uint64
}

A NFSBytesStats contains statistics about the number of bytes read and written by an NFS client to and from an NFS server.

type NFSEventsStats added in v1.1.2

type NFSEventsStats struct {
	// Number of times cached inode attributes are re-validated from the server.
	InodeRevalidate uint64
	// Number of times cached dentry nodes are re-validated from the server.
	DnodeRevalidate uint64
	// Number of times an inode cache is cleared.
	DataInvalidate uint64
	// Number of times cached inode attributes are invalidated.
	AttributeInvalidate uint64
	// Number of times files or directories have been open()'d.
	VFSOpen uint64
	// Number of times a directory lookup has occurred.
	VFSLookup uint64
	// Number of times permissions have been checked.
	VFSAccess uint64
	// Number of updates (and potential writes) to pages.
	VFSUpdatePage uint64
	// Number of pages read directly via mmap()'d files.
	VFSReadPage uint64
	// Number of times a group of pages have been read.
	VFSReadPages uint64
	// Number of pages written directly via mmap()'d files.
	VFSWritePage uint64
	// Number of times a group of pages have been written.
	VFSWritePages uint64
	// Number of times directory entries have been read with getdents().
	VFSGetdents uint64
	// Number of times attributes have been set on inodes.
	VFSSetattr uint64
	// Number of pending writes that have been forcefully flushed to the server.
	VFSFlush uint64
	// Number of times fsync() has been called on directories and files.
	VFSFsync uint64
	// Number of times locking has been attempted on a file.
	VFSLock uint64
	// Number of times files have been closed and released.
	VFSFileRelease uint64
	// Unknown.  Possibly unused.
	CongestionWait uint64
	// Number of times files have been truncated.
	Truncation uint64
	// Number of times a file has been grown due to writes beyond its existing end.
	WriteExtension uint64
	// Number of times a file was removed while still open by another process.
	SillyRename uint64
	// Number of times the NFS server gave less data than expected while reading.
	ShortRead uint64
	// Number of times the NFS server wrote less data than expected while writing.
	ShortWrite uint64
	// Number of times the NFS server indicated EJUKEBOX; retrieving data from
	// offline storage.
	JukeboxDelay uint64
	// Number of NFS v4.1+ pNFS reads.
	PNFSRead uint64
	// Number of NFS v4.1+ pNFS writes.
	PNFSWrite uint64
}

A NFSEventsStats contains statistics about NFS event occurrences.

type NFSOperationStats added in v1.1.2

type NFSOperationStats struct {
	// The name of the operation.
	Operation string
	// Number of requests performed for this operation.
	Requests uint64
	// Number of times an actual RPC request has been transmitted for this operation.
	Transmissions uint64
	// Number of times a request has had a major timeout.
	MajorTimeouts uint64
	// Number of bytes sent for this operation, including RPC headers and payload.
	BytesSent uint64
	// Number of bytes received for this operation, including RPC headers and payload.
	BytesReceived uint64
	// Duration all requests spent queued for transmission before they were sent.
	CumulativeQueueMilliseconds uint64
	// Duration it took to get a reply back after the request was transmitted.
	CumulativeTotalResponseMilliseconds uint64
	// Duration from when a request was enqueued to when it was completely handled.
	CumulativeTotalRequestMilliseconds uint64
	// The count of operations that complete with tk_status < 0.  These statuses usually indicate error conditions.
	Errors uint64
}

A NFSOperationStats contains statistics for a single operation.

type NFSTransportStats added in v1.1.2

type NFSTransportStats struct {
	// The transport protocol used for the NFS mount.
	Protocol string
	// The local port used for the NFS mount.
	Port uint64
	// Number of times the client has had to establish a connection from scratch
	// to the NFS server.
	Bind uint64
	// Number of times the client has made a TCP connection to the NFS server.
	Connect uint64
	// Duration (in jiffies, a kernel internal unit of time) the NFS mount has
	// spent waiting for connections to the server to be established.
	ConnectIdleTime uint64
	// Duration since the NFS mount last saw any RPC traffic.
	IdleTimeSeconds uint64
	// Number of RPC requests for this mount sent to the NFS server.
	Sends uint64
	// Number of RPC responses for this mount received from the NFS server.
	Receives uint64
	// Number of times the NFS server sent a response with a transaction ID
	// unknown to this client.
	BadTransactionIDs uint64
	// A running counter, incremented on each request as the current difference
	// ebetween sends and receives.
	CumulativeActiveRequests uint64
	// A running counter, incremented on each request by the current backlog
	// queue size.
	CumulativeBacklog uint64

	// Maximum number of simultaneously active RPC requests ever used.
	MaximumRPCSlotsUsed uint64
	// A running counter, incremented on each request as the current size of the
	// sending queue.
	CumulativeSendingQueue uint64
	// A running counter, incremented on each request as the current size of the
	// pending queue.
	CumulativePendingQueue uint64
}

A NFSTransportStats contains statistics for the NFS mount RPC requests and responses.

type StorageMonitorClient added in v1.3.0

type StorageMonitorClient struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewStorageMonitorClient added in v1.3.0

func NewStorageMonitorClient(kubeClient kubernetes.Interface) *StorageMonitorClient

func (*StorageMonitorClient) GetNasCapacityInfo added in v1.3.0

func (c *StorageMonitorClient) GetNasCapacityInfo(pv string) (*nfsCapacityInfo, error)

type UDSClient added in v1.1.7

type UDSClient struct {
	// contains filtered or unexported fields
}

UDSClient is unix domain socket client with server client

func NewUDSClient added in v1.1.7

func NewUDSClient(socketPath string) *UDSClient

func (*UDSClient) Close added in v1.1.7

func (u *UDSClient) Close(resp *http.Response)

Close to close response

func (*UDSClient) Get added in v1.1.7

func (u *UDSClient) Get(url string) (*http.Response, error)

func (*UDSClient) ReadBody added in v1.1.7

func (u *UDSClient) ReadBody(resp *http.Response) string

ReadBody to read body from response

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL