Documentation ¶
Index ¶
- Constants
- Variables
- type CachedResources
- type ComparableValue
- type DataCell
- type DataSelectQuery
- type DataSelector
- func (self *DataSelector) GetCumulativeMetrics(client client.HeapsterClient) *DataSelector
- func (self DataSelector) Len() int
- func (self DataSelector) Less(i, j int) bool
- func (self *DataSelector) Paginate() *DataSelector
- func (self *DataSelector) Sort() *DataSelector
- func (self DataSelector) Swap(i, j int)
- type MetricDataCell
- type MetricQuery
- type PaginationQuery
- type PropertyName
- type SortBy
- type SortQuery
- type StdComparableInt
- type StdComparableRFC3339Timestamp
- type StdComparableString
- type StdComparableTime
Constants ¶
const ( NameProperty = "name" CreationTimestampProperty = "creationTimestamp" NamespaceProperty = "namespace" )
List of all property names supported by the UI.
Variables ¶
var EmptyPagination = NewPaginationQuery(0, 0)
No items will be returned
var NoDataSelect = NewDataSelectQuery(NoPagination, NoSort, NoMetrics)
NoDataSelect is an option for no data select (same data will be returned).
var NoMetrics = NewMetricQuery(nil, nil)
var NoPagination = NewPaginationQuery(-1, -1)
By default backend pagination will not be applied.
var NoResourceCache = &CachedResources{}
var NoSort = &SortQuery{ SortByList: []SortBy{}, }
NoSort is as option for no sort.
Functions ¶
This section is empty.
Types ¶
type CachedResources ¶
CachedResources contains all resources that may be required by DataSelect functions. Depending on the need you may have to provide DataSelect with resources it requires, for example resource like deployment will need Pods in order to calculate its metrics.
type ComparableValue ¶
type ComparableValue interface { // Compares self with other value. Returns 1 if other value is smaller, 0 if they are the same, -1 if other is larger. Compare(ComparableValue) int }
ComparableValue hold any value that can be compared to its own kind.
type DataCell ¶
type DataCell interface { // GetPropertyAtIndex returns the property of this data cell. // Value returned has to have Compare method which is required by Sort functionality of DataSelect. GetProperty(PropertyName) ComparableValue }
GenericDataCell describes the interface of the data cell that contains all the necessary methods needed to perform complex data selection GenericDataSelect takes a list of these interfaces and performs selection operation. Therefore as long as the list is composed of GenericDataCells you can perform any data selection!
func GenericDataSelect ¶
func GenericDataSelect(dataList []DataCell, dsQuery *DataSelectQuery) []DataCell
GenericDataSelect takes a list of GenericDataCells and DataSelectQuery and returns selected data as instructed by dsQuery.
func GenericDataSelectWithMetrics ¶
func GenericDataSelectWithMetrics(dataList []DataCell, dsQuery *DataSelectQuery, cachedResources *CachedResources, heapsterClient client.HeapsterClient) ([]DataCell, metric.MetricPromises)
GenericDataSelect takes a list of GenericDataCells and DataSelectQuery and returns selected data as instructed by dsQuery.
type DataSelectQuery ¶
type DataSelectQuery struct { PaginationQuery *PaginationQuery SortQuery *SortQuery // Filter *FilterQuery MetricQuery *MetricQuery }
Options for GenericDataSelect which takes []GenericDataCell and returns selected data. Can be extended to include any kind of selection - for example filtering. Currently included only Pagination and Sort options.
func NewDataSelectQuery ¶
func NewDataSelectQuery(paginationQuery *PaginationQuery, sortQuery *SortQuery, graphQuery *MetricQuery) *DataSelectQuery
NewDataSelectQuery creates DataSelectQuery object from simpler data select queries.
type DataSelector ¶
type DataSelector struct { // GenericDataList hold generic data cells that are being selected. GenericDataList []DataCell // DataSelectQuery holds instructions for data select. DataSelectQuery *DataSelectQuery // CachedResources stores resources that may be needed during data selection process CachedResources *CachedResources // CumulativeMetricsPromises is a list of promises holding aggregated metrics for resources in GenericDataList. // The metrics will be calculated after calling GetCumulativeMetrics method. CumulativeMetricsPromises metric.MetricPromises }
SelectableData contains all the required data to perform data selection. It implements sort.Interface so its sortable under sort.Sort You can use its Select method to get selected GenericDataCell list.
func (*DataSelector) GetCumulativeMetrics ¶
func (self *DataSelector) GetCumulativeMetrics(client client.HeapsterClient) *DataSelector
GetCumulativeMetrics downloads and aggregates metrics for data cells currently present in self.GenericDataList as instructed by MetricQuery and inserts resulting MetricPromises to self.CumulativeMetricsPromises.
func (DataSelector) Len ¶
func (self DataSelector) Len() int
Len returns the length of data inside SelectableData.
func (DataSelector) Less ¶
func (self DataSelector) Less(i, j int) bool
Less compares 2 indices inside SelectableData and returns true if first index is larger.
func (*DataSelector) Paginate ¶
func (self *DataSelector) Paginate() *DataSelector
Paginate paginetes the data inside as instructed by DataSelectQuery and returns itself to allow method chaining.
func (*DataSelector) Sort ¶
func (self *DataSelector) Sort() *DataSelector
Sort sorts the data inside as instructed by DataSelectQuery and returns itself to allow method chaining.
func (DataSelector) Swap ¶
func (self DataSelector) Swap(i, j int)
Swap swaps 2 indices inside SelectableData.
type MetricDataCell ¶
type MetricDataCell interface { // GetPropertyAtIndex returns the property of this data cell. // Value returned has to have Compare method which is required by Sort functionality of DataSelect. GetProperty(PropertyName) ComparableValue // GetResourceSelector returns ResourceSelector for this resource. The ResourceSelector can be used to get, // HeapsterSelector which in turn can be used to download metrics. GetResourceSelector() *metric.ResourceSelector }
MetricDataCell extends interface of DataCells and additionally supports metric download.
type MetricQuery ¶
type MetricQuery struct { // Metrics to download, all available metric names can be found here: // https://github.com/kubernetes/heapster/blob/master/docs/storage-schema.md MetricNames []string // Aggregations to be performed for each metric. Check available aggregations in aggregation.go. // If empty, default aggregation will be used (sum). Aggregations metric.AggregationNames }
MetricQuery holds parameters for metric extraction process. It accepts list of metrics to be downloaded and a list of aggregations that should be performed for each metric. Query has this format metrics=metric1,metric2,...&aggregations=aggregation1,aggregation2,...
func NewMetricQuery ¶
func NewMetricQuery(metricNames []string, aggregations metric.AggregationNames) *MetricQuery
NewMetricQuery returns a metric query from provided settings.
type PaginationQuery ¶
type PaginationQuery struct { // How many items per page should be returned ItemsPerPage int // Number of page that should be returned when pagination is applied to the list Page int }
PaginationQuery structure represents pagination settings
func NewPaginationQuery ¶
func NewPaginationQuery(itemsPerPage, page int) *PaginationQuery
NewPaginationQuery return pagination query structure based on given parameters
func (*PaginationQuery) GetPaginationSettings ¶
func (p *PaginationQuery) GetPaginationSettings(itemsCount int) (startIndex int, endIndex int)
GetPaginationSettings based on number of items and pagination query parameters returns start and end index that can be used to return paginated list of items.
func (*PaginationQuery) IsPageAvailable ¶
func (p *PaginationQuery) IsPageAvailable(itemsCount, startingIndex int) bool
IsPageAvailable returns true if at least one element can be placed on page. False otherwise
func (*PaginationQuery) IsValidPagination ¶
func (p *PaginationQuery) IsValidPagination() bool
IsValidPagination returns true if pagination has non negative parameters
type PropertyName ¶
type PropertyName string
PropertyName is used to get the value of certain property of data cell. For example if we want to get the namespace of certain Deployment we can use DeploymentCell.GetProperty(NamespaceProperty)
type SortBy ¶
type SortBy struct { Property PropertyName Ascending bool }
SortBy holds the name of the property that should be sorted and whether order should be ascending or descending.
type SortQuery ¶
type SortQuery struct {
SortByList []SortBy
}
SortQuery holds options for sort functionality of data select.
func NewSortQuery ¶
NewSortQuery takes raw sort options list and returns SortQuery object. For example: ["a", "parameter1", "d", "parameter2"] - means that the data should be sorted by parameter1 (ascending) and later - for results that return equal under parameter 1 sort - by parameter2 (descending)
type StdComparableInt ¶
type StdComparableInt int
func (StdComparableInt) Compare ¶
func (self StdComparableInt) Compare(otherV ComparableValue) int
type StdComparableRFC3339Timestamp ¶
type StdComparableRFC3339Timestamp string
StdComparableRFC3339Timestamp takes RFC3339 Timestamp strings and compares them as TIMES. In case of time parsing error compares values as strings.
func (StdComparableRFC3339Timestamp) Compare ¶
func (self StdComparableRFC3339Timestamp) Compare(otherV ComparableValue) int
type StdComparableString ¶
type StdComparableString string
func (StdComparableString) Compare ¶
func (self StdComparableString) Compare(otherV ComparableValue) int
type StdComparableTime ¶
func (StdComparableTime) Compare ¶
func (self StdComparableTime) Compare(otherV ComparableValue) int