Documentation
¶
Index ¶
Constants ¶
View Source
const ( // CreateSnapshotOperationName is the operation that tracks how long the controller takes to create a snapshot. // Specifically, the operation metric is emitted based on the following timestamps: // - Start_time: controller notices the first time that there is a new VolumeSnapshot CR to dynamically provision a snapshot // - End_time: controller notices that the CR has a status with CreationTime field set to be non-nil CreateSnapshotOperationName = "CreateSnapshot" // CreateSnapshotAndReadyOperationName is the operation that tracks how long the controller takes to create a snapshot and for it to be ready. // Specifically, the operation metric is emitted based on the following timestamps: // - Start_time: controller notices the first time that there is a new VolumeSnapshot CR(both dynamic and pre-provisioned cases) // - End_time: controller notices that the CR has a status with Ready field set to be true CreateSnapshotAndReadyOperationName = "CreateSnapshotAndReady" // DeleteSnapshotOperationName is the operation that tracks how long a snapshot deletion takes. // Specifically, the operation metric is emitted based on the following timestamps: // - Start_time: controller notices the first time that there is a deletion timestamp placed on the VolumeSnapshot CR and the CR is ready to be deleted. Note that if the CR is being used by a PVC for rehydration, the controller should *NOT* set the start_time. // - End_time: controller removed all finalizers on the VolumeSnapshot CR such that the CR is ready to be removed in the API server. DeleteSnapshotOperationName = "DeleteSnapshot" // DynamicSnapshotType represents a snapshot that is being dynamically provisioned DynamicSnapshotType = snapshotProvisionType("dynamic") // PreProvisionedSnapshotType represents a snapshot that is pre-provisioned PreProvisionedSnapshotType = snapshotProvisionType("pre-provisioned") // SnapshotStatusTypeUnknown represents that the status is unknown SnapshotStatusTypeUnknown snapshotStatusType = "unknown" // Success and Cancel are statuses for operation time (operation_total_seconds) as seen by snapshot controller // SnapshotStatusTypeSuccess represents that a CreateSnapshot, CreateSnapshotAndReady, // or DeleteSnapshot has finished successfully. // Individual reconciliations (reconciliation_total_seconds) also use this status. SnapshotStatusTypeSuccess snapshotStatusType = "success" // SnapshotStatusTypeCancel represents that a CreateSnapshot, CreateSnapshotAndReady, // or DeleteSnapshot has been deleted before finishing. SnapshotStatusTypeCancel snapshotStatusType = "cancel" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MetricsManager ¶
type MetricsManager interface {
// PrepareMetricsPath prepares the metrics path the specified pattern for
// metrics managed by this MetricsManager.
// If the "pattern" is empty (i.e., ""), it will not be registered.
// An error will be returned if there is any.
PrepareMetricsPath(mux *http.ServeMux, pattern string, logger promhttp.Logger) error
// OperationStart takes in an operation and caches its start time.
// if the operation already exists, it's an no-op.
OperationStart(key OperationKey, val OperationValue)
// DropOperation removes an operation from cache.
// if the operation does not exist, it's an no-op.
DropOperation(op OperationKey)
// RecordMetrics records a metric point. Note that it will be an no-op if an
// operation has NOT been marked "Started" previously via invoking "OperationStart".
// Invoking of RecordMetrics effectively removes the cached entry.
// op - the operation which the metric is associated with.
// status - the operation status, if not specified, i.e., status == nil, an
// "Unknown" status of the passed-in operation is assumed.
RecordMetrics(op OperationKey, status OperationStatus, driverName string)
// GetRegistry() returns the metrics.KubeRegistry used by this metrics manager.
GetRegistry() k8smetrics.KubeRegistry
}
func NewMetricsManager ¶
func NewMetricsManager() MetricsManager
NewMetricsManager creates a new MetricsManager instance
type OperationKey ¶
type OperationKey struct {
// Name is the name of the operation, for example: "CreateSnapshot", "DeleteSnapshot"
Name string
// ResourceID is the resource UID to which the operation has been executed against
ResourceID types.UID
}
OperationKey is a structure which holds information to uniquely identify a snapshot related operation
func NewOperationKey ¶
func NewOperationKey(name string, snapshotUID types.UID) OperationKey
NewOperationKey initializes a new OperationKey
type OperationStatus ¶
type OperationStatus interface {
String() string
}
OperationStatus is the interface type for representing an operation's execution status, with the nil value representing an "Unknown" status of the operation.
type OperationValue ¶
type OperationValue struct {
// Driver is the driver name which executes the operation
Driver string
// SnapshotType represents the snapshot type, for example: "dynamic", "pre-provisioned"
SnapshotType string
// contains filtered or unexported fields
}
OperationValue is a structure which holds operation metadata
func NewOperationValue ¶
func NewOperationValue(driver string, snapshotType snapshotProvisionType) OperationValue
NewOperationValue initializes a new OperationValue
type SnapshotOperationStatus ¶
type SnapshotOperationStatus struct {
// contains filtered or unexported fields
}
SnapshotOperationStatus represents the status for a snapshot controller operation
func NewSnapshotOperationStatus ¶
func NewSnapshotOperationStatus(status snapshotStatusType) SnapshotOperationStatus
NewSnapshotOperationStatus returns a new SnapshotOperationStatus
func (SnapshotOperationStatus) String ¶
func (sos SnapshotOperationStatus) String() string
Click to show internal directories.
Click to hide internal directories.