models

package
v0.2.13 Latest Latest
Warning

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

Go to latest
Published: Aug 8, 2025 License: Apache-2.0 Imports: 0 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CephConfig

type CephConfig map[string]map[string]string

type CephConfigDifference

type CephConfigDifference struct {
	Kind     CephConfigDifferenceKind
	Section  string
	Key      string
	OldValue *string
	Value    *string
}

type CephConfigDifferenceKind

type CephConfigDifferenceKind string
const (
	CephConfigDifferenceKindAdd    CephConfigDifferenceKind = "add"
	CephConfigDifferenceKindChange CephConfigDifferenceKind = "change"
	CephConfigDifferenceKindRemove CephConfigDifferenceKind = "remove"
)

type CephOSDConfig added in v0.2.0

type CephOSDConfig struct {
	AllowCrimson           bool    `yaml:"allow_crimson" diff:"allow_crimson" default:"false"`
	BackfillfullRatio      float32 `yaml:"backfillfull_ratio" diff:"backfillfull_ratio" default:"0.9"`
	FullRatio              float32 `yaml:"full_ratio" diff:"full_ratio" default:"0.95"`
	NearfullRatio          float32 `yaml:"nearfull_ratio" diff:"nearfull_ratio" default:"0.85"`
	RequireMinCompatClient string  `yaml:"require_min_compat_client" diff:"require_min_compat_client" default:"reef"`
}

type CephOSDConfigDifference added in v0.2.0

type CephOSDConfigDifference struct {
	Key      string
	OldValue string
	Value    string
}

type CephOSDConfigDifferenceKind added in v0.2.0

type CephOSDConfigDifferenceKind string

type ClusterHealthIndicator

type ClusterHealthIndicator struct {
	Indicator          ClusterHealthIndicatorType
	CurrentValue       string
	CurrentValueStatus ClusterHealthIndicatorStatus
}

type ClusterHealthIndicatorStatus

type ClusterHealthIndicatorStatus string
const (
	ClusterHealthIndicatorStatusGood      ClusterHealthIndicatorStatus = "GOOD"
	ClusterHealthIndicatorStatusAtRisk    ClusterHealthIndicatorStatus = "AT_RISK"
	ClusterHealthIndicatorStatusDangerous ClusterHealthIndicatorStatus = "DANGEROUS"
	ClusterHealthIndicatorStatusUnknown   ClusterHealthIndicatorStatus = "UNKNOWN"
)

type ClusterHealthIndicatorType

type ClusterHealthIndicatorType string
const (
	// ClusterHealthIndicatorTypeAllowCrimson reflects allow_crimson flag state
	//
	// Description: allow_crimson flag means possibility of using Crimson OSD
	// 	releases which are future releases so not marked as release or stable
	//  which makes it risky to use in production environment.
	//
	// Ref: https://docs.ceph.com/en/latest/glossary/#term-Crimson
	//
	// Good: false
	// AtRisk: true
	// Dangerous: n/a
	ClusterHealthIndicatorTypeAllowCrimson ClusterHealthIndicatorType = "ALLOW_CRIMSON"

	// ClusterHealthIndicatorTypeClusterStatus reflects overall cluster status
	// 	reported by ceph status command
	//
	// Description: cluster health is the universal indicator for overall cluster
	//	status which is also displayed via `ceph status` command.
	//
	// Ref: https://docs.ceph.com/en/latest/rados/operations/health-checks/
	//
	// Good: HEALTH_OK
	// AtRisk: HEALTH_WARN
	// Dangerous: HEALTH_ERR
	ClusterHealthIndicatorTypeClusterStatus ClusterHealthIndicatorType = "CLUSTER_STATUS"

	// ClusterHealthIndicatorTypeInactivePGs reflects amount of PGs which are not in
	// 	active state
	//
	// Description: Inactive PGs indicator shows how many PGs are inactive i.e. can not be
	// 	used to perform IO operations at the moment.
	//
	// Ref: https://docs.ceph.com/en/latest/rados/operations/monitoring-osd-pg/#monitoring-pg-states
	//
	// Good: 0
	// AtRisk: n/a
	// Dangerous: >0
	ClusterHealthIndicatorTypeInactivePGs ClusterHealthIndicatorType = "INACTIVE_PGS"

	// ClusterHealthIndicatorTypeIPCollision ensures each IP is used by the only OSD daemon
	// 	active state
	//
	// Good: no collisions
	// AtRisk: n/a
	// Dangerous: collisions found
	ClusterHealthIndicatorTypeIPCollision ClusterHealthIndicatorType = "IP_COLLISION"

	// ClusterHealthIndicatorTypeMonsDown reflects amount of monitor nodes which are down
	//
	// Description: amount of monitors which are not up at the moment
	//
	// Good: 0
	// AtRisk: >0
	// Dangerous: n/a
	ClusterHealthIndicatorTypeMonsDown ClusterHealthIndicatorType = "MON_DOWN"

	// ClusterHealthIndicatorTypeMutesAmount reflects amount of mutes set on the cluster
	//
	// Description: Ceph allows to mute checks i.e. exclude them from triggering
	// 	overall cluster status. Muted checks are easy to miss when making decision
	//  of performing any maintenance which could cause a more serious cluster
	//  state or even data loss.
	//
	// Good: 0
	// AtRisk: >0
	// Dangerous: n/a
	ClusterHealthIndicatorTypeMutesAmount ClusterHealthIndicatorType = "MUTES_AMOUNT"

	// ClusterHealthIndicatorTypeOSDsDown reflects amount of OSD nodes which are down
	//
	// Description: Amount of OSDs in down state
	//
	// Good: 0
	// AtRisk: >0
	// Dangerous: n/a
	ClusterHealthIndicatorTypeOSDsDown ClusterHealthIndicatorType = "OSD_DOWN"

	// ClusterHealthIndicatorTypeOSDsMetadataSize reflects metadata size in percents of total OSD capacity
	//
	// Description: In Ceph documentation is described typical data usage for
	// 	block.db volume which is between 1-4%, however using RGW increases this
	//	estimation to 4% at least. This value allows to estimate size of block.db
	// 	volume for hybrid OSD and growing over block.db volume capacity will
	//  cause spillover - i.e. writing metadata to data volume which is usually
	//  much slower.
	//
	// Ref: https://docs.ceph.com/en/latest/rados/configuration/bluestore-config-ref/#sizing
	//
	// Good: 0-7
	// AtRisk: >15
	// Dangerous: >20
	ClusterHealthIndicatorTypeOSDsMetadataSize ClusterHealthIndicatorType = "OSD_METADATA_SIZE"

	// ClusterHealthIndicatorTypeOSDVersionMismatch indicates different versions
	// 	of running OSD daemons at the same time
	//
	// Description: running different versions of components is normal only
	// 	while upgrade procedure is a go. In all other cases daemon versions
	// 	should match i.e. their amount must be equal 1 except the case of
	// 	upgrade.
	//
	// Good: 1
	// AtRisk: 2
	// Dangerous: >2
	ClusterHealthIndicatorTypeOSDsNumDaemonVersions ClusterHealthIndicatorType = "OSD_NUM_DAEMON_VERSIONS"

	// ClusterHealthIndicatorTypeOSDsOut reflects amount of OSD nodes which are out
	//
	// Description: Amount of OSDs in out state
	//
	// Good: 0
	// AtRisk: >0
	// Dangerous: n/a
	ClusterHealthIndicatorTypeOSDsOut ClusterHealthIndicatorType = "OSD_OUT"

	// ClusterHealthIndicatorTypeQuorum reflects monitor quorum status
	//
	// Description: monitors in quorum which should be the same as total
	// 	monitors amount
	//
	// Good: 0
	// AtRisk: >0
	// Dangerous: n/a
	ClusterHealthIndicatorTypeQuorum ClusterHealthIndicatorType = "QUORUM"

	// ClusterHealthIndicatorTypeDownPGs reflects amount of PGs which are down
	//
	// Description: Down PGs indicator shows how many PGs are down i.e. are stored
	// 	on OSDs which are down and there's no available copy or a way to reconstruct
	// 	them
	//
	// Ref: https://docs.ceph.com/en/latest/rados/operations/monitoring-osd-pg/#monitoring-pg-states
	//
	// Good: 0
	// AtRisk: n/a
	// Dangerous: >0
	ClusterHealthIndicatorTypeDownPGs ClusterHealthIndicatorType = "DOWN_PGS"

	// ClusterHealthIndicatorTypeUncleanPGs reflects amount of PGs which are not in clean state
	//
	// Description: Inactive PGs indicator shows how many PGs are inactive i.e. can not be
	// 	used to perform IO operations at the moment.
	//
	// Ref: https://docs.ceph.com/en/latest/rados/operations/monitoring-osd-pg/#monitoring-pg-states
	//
	// Good: 0
	// AtRisk: >0
	// Dangerous: n/a
	ClusterHealthIndicatorTypeUncleanPGs ClusterHealthIndicatorType = "UNCLEAN_PGS"

	// ClusterHealthIndicatorTypeDeviceHealthWearout reflects devices with risky wearout levels
	//
	// Good: 0
	// AtRisk: at least 1 devices w/ wear out >50%
	// Dangerous: at least 1 device w/ wear out >75%
	ClusterHealthIndicatorTypeDeviceHealthWearout ClusterHealthIndicatorType = "DEVICE_HEALTH_WEAROUT"
)

type ClusterReport

type ClusterReport struct {
	AllowCrimson                 bool
	BackfillfullRatio            float32
	Checks                       []ClusterStatusCheck
	Devices                      []Device
	FullRatio                    float32
	HealthStatus                 ClusterStatusHealth
	MutedChecks                  []ClusterStatusMutedCheck
	NearfullRatio                float32
	NumMons                      uint8
	NumMonsInQuorum              uint8
	NumOSDs                      uint16
	NumOSDsByDeviceType          map[string]uint16
	NumOSDsByRelease             map[string]uint16
	NumOSDsByVersion             map[string]uint16
	NumOSDsIn                    uint16
	NumOSDsUp                    uint16
	NumOSDsWithoutClusterAddress uint16
	NumPGs                       uint32
	NumPGsByState                map[string]uint32
	NumPools                     uint16
	OSDDaemons                   []OSDDaemon
	RequireMinCompatClient       string
	StretchMode                  bool
	TotalOSDCapacityKB           uint64
	TotalOSDUsedDataKB           uint64
	TotalOSDUsedMetaKB           uint64
	TotalOSDUsedOMAPKB           uint64
}

type ClusterStatus

type ClusterStatus struct {
	HealthStatus   ClusterStatusHealth
	Checks         []ClusterStatusCheck
	MutedChecks    []ClusterStatusMutedCheck
	QuorumAmount   uint
	MonsTotal      uint
	MonsDownAmount uint
	MGRsDownAmount uint
	MDSsDownAmount uint
	OSDsDownAmount uint
	UncleanPGs     uint
	InactivePGs    uint
}

type ClusterStatusCheck

type ClusterStatusCheck struct {
	Code     string
	Severity ClusterStatusHealth
	Summary  string
}

type ClusterStatusHealth

type ClusterStatusHealth string
const (
	ClusterStatusHealthOK      ClusterStatusHealth = "HEALTH_OK"
	ClusterStatusHealthWARN    ClusterStatusHealth = "HEALTH_WARN"
	ClusterStatusHealthERR     ClusterStatusHealth = "HEALTH_ERR"
	ClusterStatusHealthUnknown ClusterStatusHealth = "UNKNOWN"
)

type ClusterStatusMutedCheck

type ClusterStatusMutedCheck struct {
	Code    string
	Summary string
}

type Device

type Device struct {
	ID        string
	Daemons   []string
	WearLevel float64
}

type OSDDaemon

type OSDDaemon struct {
	ID               uint16
	Hostname         string
	Architecture     string
	FrontIP          string
	BackIP           string
	MemoryTotalBytes uint64
	SwapTotalBytes   uint64
	IsRotational     bool
	Devices          []string
}

Jump to

Keyboard shortcuts

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