metric

package
v1.6.1 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2024 License: Apache-2.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CsiGrpcExecTimeCollectorName = "csi_grpc_exec_time"
	CsiGrpcExecTimeLabelMethod   = "method"
	CsiGrpcExecTimeLabelType     = "type"
	CsiGrpcExecTimeLabelCode     = "code"
)
View Source
const (
	NFSMetricsCount = 16
	GiBSize         = 1024 * 1024 * 1024
)
View Source
const (
	VolumeStatsCollectorName = "volume_stats"
	VolumeStatsLabelType     = "type"
	VolumeStatsLabelCode     = "error_code"
)
View Source
const (

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

Variables

View Source
var CsiGrpcExecTimeCollector = csiGrpcExecTimeCollector{
	ExecCountMetric: prometheus.NewCounterVec(prometheus.CounterOpts{
		Namespace: csiNamespace,
		Subsystem: grpcSubsystem,
		Name:      "execution_count",
		Help:      "CSI grpc execution count.",
	}, csiGrpcExecTimeLabels),
	ExecTimeTotalMetric: prometheus.NewCounterVec(prometheus.CounterOpts{
		Namespace: csiNamespace,
		Subsystem: grpcSubsystem,
		Name:      "execution_time_total",
		Help:      "CSI grpc execution time in total.",
	}, csiGrpcExecTimeLabels),
}
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")
View Source
var VolumeStatCollector = volumeStatCollector{
	AttachmentCountMetric: prometheus.NewCounterVec(prometheus.CounterOpts{
		Namespace: nodeNamespace,
		Subsystem: volumeSubsystem,
		Name:      "attachment_count",
		Help:      "Volume attachment count.",
	}, volumeStatLabels),
	AttachmentTimeTotalMetric: prometheus.NewCounterVec(prometheus.CounterOpts{
		Namespace: nodeNamespace,
		Subsystem: volumeSubsystem,
		Name:      "attachment_time_total",
		Help:      "Volume attachment time in total.",
	}, volumeStatLabels),
}

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 GetCsiGrpcExecTimeCollector added in v1.6.0

func GetCsiGrpcExecTimeCollector() (Collector, error)

func GetVolumeStatCollector added in v1.6.0

func GetVolumeStatCollector() (Collector, error)

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(driverNames []string, serviceType utils.ServiceType) *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 VolumeStatType added in v1.6.0

type VolumeStatType uint8
const VolumeAttachTimeStat VolumeStatType = 0

Jump to

Keyboard shortcuts

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