metastorev1

package
v1.36.11-2025012415382... Latest Latest
Warning

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

Go to latest
Published: unknown License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	CompactionJobStatus_name = map[int32]string{
		0: "COMPACTION_STATUS_UNSPECIFIED",
		1: "COMPACTION_STATUS_IN_PROGRESS",
		2: "COMPACTION_STATUS_SUCCESS",
	}
	CompactionJobStatus_value = map[string]int32{
		"COMPACTION_STATUS_UNSPECIFIED": 0,
		"COMPACTION_STATUS_IN_PROGRESS": 1,
		"COMPACTION_STATUS_SUCCESS":     2,
	}
)

Enum value maps for CompactionJobStatus.

View Source
var File_metastore_v1_compactor_proto protoreflect.FileDescriptor
View Source
var File_metastore_v1_index_proto protoreflect.FileDescriptor
View Source
var File_metastore_v1_query_proto protoreflect.FileDescriptor
View Source
var File_metastore_v1_tenant_proto protoreflect.FileDescriptor
View Source
var File_metastore_v1_types_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type AddBlockRequest

type AddBlockRequest struct {
	Block *BlockMeta `protobuf:"bytes,1,opt,name=block,proto3" json:"block,omitempty"`
	// contains filtered or unexported fields
}

func (*AddBlockRequest) ClearBlock

func (x *AddBlockRequest) ClearBlock()

func (*AddBlockRequest) GetBlock

func (x *AddBlockRequest) GetBlock() *BlockMeta

func (*AddBlockRequest) HasBlock

func (x *AddBlockRequest) HasBlock() bool

func (*AddBlockRequest) ProtoMessage

func (*AddBlockRequest) ProtoMessage()

func (*AddBlockRequest) ProtoReflect

func (x *AddBlockRequest) ProtoReflect() protoreflect.Message

func (*AddBlockRequest) Reset

func (x *AddBlockRequest) Reset()

func (*AddBlockRequest) SetBlock

func (x *AddBlockRequest) SetBlock(v *BlockMeta)

func (*AddBlockRequest) String

func (x *AddBlockRequest) String() string

type AddBlockRequest_builder

type AddBlockRequest_builder struct {
	Block *BlockMeta
	// contains filtered or unexported fields
}

func (AddBlockRequest_builder) Build

type AddBlockResponse

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

func (*AddBlockResponse) ProtoMessage

func (*AddBlockResponse) ProtoMessage()

func (*AddBlockResponse) ProtoReflect

func (x *AddBlockResponse) ProtoReflect() protoreflect.Message

func (*AddBlockResponse) Reset

func (x *AddBlockResponse) Reset()

func (*AddBlockResponse) String

func (x *AddBlockResponse) String() string

type AddBlockResponse_builder

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

func (AddBlockResponse_builder) Build

type BlockList

type BlockList struct {
	Tenant string   `protobuf:"bytes,1,opt,name=tenant,proto3" json:"tenant,omitempty"`
	Shard  uint32   `protobuf:"varint,2,opt,name=shard,proto3" json:"shard,omitempty"`
	Blocks []string `protobuf:"bytes,3,rep,name=blocks,proto3" json:"blocks,omitempty"`
	// contains filtered or unexported fields
}

func (*BlockList) GetBlocks

func (x *BlockList) GetBlocks() []string

func (*BlockList) GetShard

func (x *BlockList) GetShard() uint32

func (*BlockList) GetTenant

func (x *BlockList) GetTenant() string

func (*BlockList) ProtoMessage

func (*BlockList) ProtoMessage()

func (*BlockList) ProtoReflect

func (x *BlockList) ProtoReflect() protoreflect.Message

func (*BlockList) Reset

func (x *BlockList) Reset()

func (*BlockList) SetBlocks

func (x *BlockList) SetBlocks(v []string)

func (*BlockList) SetShard

func (x *BlockList) SetShard(v uint32)

func (*BlockList) SetTenant

func (x *BlockList) SetTenant(v string)

func (*BlockList) String

func (x *BlockList) String() string

type BlockList_builder

type BlockList_builder struct {
	Tenant string
	Shard  uint32
	Blocks []string
	// contains filtered or unexported fields
}

func (BlockList_builder) Build

func (b0 BlockList_builder) Build() *BlockList

type BlockMeta

type BlockMeta struct {
	FormatVersion uint32 `protobuf:"varint,1,opt,name=format_version,json=formatVersion,proto3" json:"format_version,omitempty"`
	// Block ID is a unique identifier for the block.
	// This is the only field that is not included into
	// the string table.
	Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
	// If empty, datasets belong to distinct tenants.
	Tenant          int32      `protobuf:"varint,3,opt,name=tenant,proto3" json:"tenant,omitempty"`
	Shard           uint32     `protobuf:"varint,4,opt,name=shard,proto3" json:"shard,omitempty"`
	CompactionLevel uint32     `protobuf:"varint,5,opt,name=compaction_level,json=compactionLevel,proto3" json:"compaction_level,omitempty"`
	MinTime         int64      `protobuf:"varint,6,opt,name=min_time,json=minTime,proto3" json:"min_time,omitempty"`
	MaxTime         int64      `protobuf:"varint,7,opt,name=max_time,json=maxTime,proto3" json:"max_time,omitempty"`
	CreatedBy       int32      `protobuf:"varint,8,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"`
	Size            uint64     `protobuf:"varint,9,opt,name=size,proto3" json:"size,omitempty"`
	Datasets        []*Dataset `protobuf:"bytes,10,rep,name=datasets,proto3" json:"datasets,omitempty"`
	// String table contains strings of the block.
	// By convention, the first string is always an empty string.
	StringTable []string `protobuf:"bytes,11,rep,name=string_table,json=stringTable,proto3" json:"string_table,omitempty"`
	// contains filtered or unexported fields
}

BlockMeta is a metadata entry that describes the block's contents. A block is a collection of datasets that share certain properties, such as shard ID, compaction level, tenant ID, time range, creation time, and more.

The block content's format denotes the binary format of the datasets and the metadata entry (to address logical dependencies). Each dataset has its own table of contents that lists the sections within the dataset. Each dataset has its own set of attributes (labels) that describe its specific contents.

func (*BlockMeta) GetCompactionLevel

func (x *BlockMeta) GetCompactionLevel() uint32

func (*BlockMeta) GetCreatedBy

func (x *BlockMeta) GetCreatedBy() int32

func (*BlockMeta) GetDatasets

func (x *BlockMeta) GetDatasets() []*Dataset

func (*BlockMeta) GetFormatVersion

func (x *BlockMeta) GetFormatVersion() uint32

func (*BlockMeta) GetId

func (x *BlockMeta) GetId() string

func (*BlockMeta) GetMaxTime

func (x *BlockMeta) GetMaxTime() int64

func (*BlockMeta) GetMinTime

func (x *BlockMeta) GetMinTime() int64

func (*BlockMeta) GetShard

func (x *BlockMeta) GetShard() uint32

func (*BlockMeta) GetSize

func (x *BlockMeta) GetSize() uint64

func (*BlockMeta) GetStringTable

func (x *BlockMeta) GetStringTable() []string

func (*BlockMeta) GetTenant

func (x *BlockMeta) GetTenant() int32

func (*BlockMeta) ProtoMessage

func (*BlockMeta) ProtoMessage()

func (*BlockMeta) ProtoReflect

func (x *BlockMeta) ProtoReflect() protoreflect.Message

func (*BlockMeta) Reset

func (x *BlockMeta) Reset()

func (*BlockMeta) SetCompactionLevel

func (x *BlockMeta) SetCompactionLevel(v uint32)

func (*BlockMeta) SetCreatedBy

func (x *BlockMeta) SetCreatedBy(v int32)

func (*BlockMeta) SetDatasets

func (x *BlockMeta) SetDatasets(v []*Dataset)

func (*BlockMeta) SetFormatVersion

func (x *BlockMeta) SetFormatVersion(v uint32)

func (*BlockMeta) SetId

func (x *BlockMeta) SetId(v string)

func (*BlockMeta) SetMaxTime

func (x *BlockMeta) SetMaxTime(v int64)

func (*BlockMeta) SetMinTime

func (x *BlockMeta) SetMinTime(v int64)

func (*BlockMeta) SetShard

func (x *BlockMeta) SetShard(v uint32)

func (*BlockMeta) SetSize

func (x *BlockMeta) SetSize(v uint64)

func (*BlockMeta) SetStringTable

func (x *BlockMeta) SetStringTable(v []string)

func (*BlockMeta) SetTenant

func (x *BlockMeta) SetTenant(v int32)

func (*BlockMeta) String

func (x *BlockMeta) String() string

type BlockMeta_builder

type BlockMeta_builder struct {
	FormatVersion uint32
	// Block ID is a unique identifier for the block.
	// This is the only field that is not included into
	// the string table.
	Id string
	// If empty, datasets belong to distinct tenants.
	Tenant          int32
	Shard           uint32
	CompactionLevel uint32
	MinTime         int64
	MaxTime         int64
	CreatedBy       int32
	Size            uint64
	Datasets        []*Dataset
	// String table contains strings of the block.
	// By convention, the first string is always an empty string.
	StringTable []string
	// contains filtered or unexported fields
}

func (BlockMeta_builder) Build

func (b0 BlockMeta_builder) Build() *BlockMeta

type BlockTombstones

type BlockTombstones struct {
	Name            string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Shard           uint32   `protobuf:"varint,2,opt,name=shard,proto3" json:"shard,omitempty"`
	Tenant          string   `protobuf:"bytes,3,opt,name=tenant,proto3" json:"tenant,omitempty"`
	CompactionLevel uint32   `protobuf:"varint,4,opt,name=compaction_level,json=compactionLevel,proto3" json:"compaction_level,omitempty"`
	Blocks          []string `protobuf:"bytes,5,rep,name=blocks,proto3" json:"blocks,omitempty"`
	// contains filtered or unexported fields
}

func (*BlockTombstones) GetBlocks

func (x *BlockTombstones) GetBlocks() []string

func (*BlockTombstones) GetCompactionLevel

func (x *BlockTombstones) GetCompactionLevel() uint32

func (*BlockTombstones) GetName

func (x *BlockTombstones) GetName() string

func (*BlockTombstones) GetShard

func (x *BlockTombstones) GetShard() uint32

func (*BlockTombstones) GetTenant

func (x *BlockTombstones) GetTenant() string

func (*BlockTombstones) ProtoMessage

func (*BlockTombstones) ProtoMessage()

func (*BlockTombstones) ProtoReflect

func (x *BlockTombstones) ProtoReflect() protoreflect.Message

func (*BlockTombstones) Reset

func (x *BlockTombstones) Reset()

func (*BlockTombstones) SetBlocks

func (x *BlockTombstones) SetBlocks(v []string)

func (*BlockTombstones) SetCompactionLevel

func (x *BlockTombstones) SetCompactionLevel(v uint32)

func (*BlockTombstones) SetName

func (x *BlockTombstones) SetName(v string)

func (*BlockTombstones) SetShard

func (x *BlockTombstones) SetShard(v uint32)

func (*BlockTombstones) SetTenant

func (x *BlockTombstones) SetTenant(v string)

func (*BlockTombstones) String

func (x *BlockTombstones) String() string

type BlockTombstones_builder

type BlockTombstones_builder struct {
	Name            string
	Shard           uint32
	Tenant          string
	CompactionLevel uint32
	Blocks          []string
	// contains filtered or unexported fields
}

func (BlockTombstones_builder) Build

type CompactedBlocks

type CompactedBlocks struct {
	SourceBlocks *BlockList   `protobuf:"bytes,1,opt,name=source_blocks,json=sourceBlocks,proto3" json:"source_blocks,omitempty"`
	NewBlocks    []*BlockMeta `protobuf:"bytes,2,rep,name=new_blocks,json=newBlocks,proto3" json:"new_blocks,omitempty"`
	// contains filtered or unexported fields
}

func (*CompactedBlocks) ClearSourceBlocks

func (x *CompactedBlocks) ClearSourceBlocks()

func (*CompactedBlocks) GetNewBlocks

func (x *CompactedBlocks) GetNewBlocks() []*BlockMeta

func (*CompactedBlocks) GetSourceBlocks

func (x *CompactedBlocks) GetSourceBlocks() *BlockList

func (*CompactedBlocks) HasSourceBlocks

func (x *CompactedBlocks) HasSourceBlocks() bool

func (*CompactedBlocks) ProtoMessage

func (*CompactedBlocks) ProtoMessage()

func (*CompactedBlocks) ProtoReflect

func (x *CompactedBlocks) ProtoReflect() protoreflect.Message

func (*CompactedBlocks) Reset

func (x *CompactedBlocks) Reset()

func (*CompactedBlocks) SetNewBlocks

func (x *CompactedBlocks) SetNewBlocks(v []*BlockMeta)

func (*CompactedBlocks) SetSourceBlocks

func (x *CompactedBlocks) SetSourceBlocks(v *BlockList)

func (*CompactedBlocks) String

func (x *CompactedBlocks) String() string

type CompactedBlocks_builder

type CompactedBlocks_builder struct {
	SourceBlocks *BlockList
	NewBlocks    []*BlockMeta
	// contains filtered or unexported fields
}

func (CompactedBlocks_builder) Build

type CompactionJob

type CompactionJob struct {
	Name            string        `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Shard           uint32        `protobuf:"varint,2,opt,name=shard,proto3" json:"shard,omitempty"`
	Tenant          string        `protobuf:"bytes,3,opt,name=tenant,proto3" json:"tenant,omitempty"`
	CompactionLevel uint32        `protobuf:"varint,4,opt,name=compaction_level,json=compactionLevel,proto3" json:"compaction_level,omitempty"`
	SourceBlocks    []string      `protobuf:"bytes,5,rep,name=source_blocks,json=sourceBlocks,proto3" json:"source_blocks,omitempty"`
	Tombstones      []*Tombstones `protobuf:"bytes,6,rep,name=tombstones,proto3" json:"tombstones,omitempty"`
	// contains filtered or unexported fields
}

func (*CompactionJob) GetCompactionLevel

func (x *CompactionJob) GetCompactionLevel() uint32

func (*CompactionJob) GetName

func (x *CompactionJob) GetName() string

func (*CompactionJob) GetShard

func (x *CompactionJob) GetShard() uint32

func (*CompactionJob) GetSourceBlocks

func (x *CompactionJob) GetSourceBlocks() []string

func (*CompactionJob) GetTenant

func (x *CompactionJob) GetTenant() string

func (*CompactionJob) GetTombstones

func (x *CompactionJob) GetTombstones() []*Tombstones

func (*CompactionJob) ProtoMessage

func (*CompactionJob) ProtoMessage()

func (*CompactionJob) ProtoReflect

func (x *CompactionJob) ProtoReflect() protoreflect.Message

func (*CompactionJob) Reset

func (x *CompactionJob) Reset()

func (*CompactionJob) SetCompactionLevel

func (x *CompactionJob) SetCompactionLevel(v uint32)

func (*CompactionJob) SetName

func (x *CompactionJob) SetName(v string)

func (*CompactionJob) SetShard

func (x *CompactionJob) SetShard(v uint32)

func (*CompactionJob) SetSourceBlocks

func (x *CompactionJob) SetSourceBlocks(v []string)

func (*CompactionJob) SetTenant

func (x *CompactionJob) SetTenant(v string)

func (*CompactionJob) SetTombstones

func (x *CompactionJob) SetTombstones(v []*Tombstones)

func (*CompactionJob) String

func (x *CompactionJob) String() string

type CompactionJobAssignment

type CompactionJobAssignment struct {
	Name           string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Token          uint64 `protobuf:"varint,2,opt,name=token,proto3" json:"token,omitempty"`
	LeaseExpiresAt int64  `protobuf:"varint,3,opt,name=lease_expires_at,json=leaseExpiresAt,proto3" json:"lease_expires_at,omitempty"`
	// contains filtered or unexported fields
}

func (*CompactionJobAssignment) GetLeaseExpiresAt

func (x *CompactionJobAssignment) GetLeaseExpiresAt() int64

func (*CompactionJobAssignment) GetName

func (x *CompactionJobAssignment) GetName() string

func (*CompactionJobAssignment) GetToken

func (x *CompactionJobAssignment) GetToken() uint64

func (*CompactionJobAssignment) ProtoMessage

func (*CompactionJobAssignment) ProtoMessage()

func (*CompactionJobAssignment) ProtoReflect

func (x *CompactionJobAssignment) ProtoReflect() protoreflect.Message

func (*CompactionJobAssignment) Reset

func (x *CompactionJobAssignment) Reset()

func (*CompactionJobAssignment) SetLeaseExpiresAt

func (x *CompactionJobAssignment) SetLeaseExpiresAt(v int64)

func (*CompactionJobAssignment) SetName

func (x *CompactionJobAssignment) SetName(v string)

func (*CompactionJobAssignment) SetToken

func (x *CompactionJobAssignment) SetToken(v uint64)

func (*CompactionJobAssignment) String

func (x *CompactionJobAssignment) String() string

type CompactionJobAssignment_builder

type CompactionJobAssignment_builder struct {
	Name           string
	Token          uint64
	LeaseExpiresAt int64
	// contains filtered or unexported fields
}

func (CompactionJobAssignment_builder) Build

type CompactionJobStatus

type CompactionJobStatus int32
const (
	CompactionJobStatus_COMPACTION_STATUS_UNSPECIFIED CompactionJobStatus = 0
	CompactionJobStatus_COMPACTION_STATUS_IN_PROGRESS CompactionJobStatus = 1
	CompactionJobStatus_COMPACTION_STATUS_SUCCESS     CompactionJobStatus = 2
)

func (CompactionJobStatus) Descriptor

func (CompactionJobStatus) Enum

func (CompactionJobStatus) Number

func (CompactionJobStatus) String

func (x CompactionJobStatus) String() string

func (CompactionJobStatus) Type

type CompactionJobStatusUpdate

type CompactionJobStatusUpdate struct {
	Name   string              `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Token  uint64              `protobuf:"varint,2,opt,name=token,proto3" json:"token,omitempty"`
	Status CompactionJobStatus `protobuf:"varint,3,opt,name=status,proto3,enum=metastore.v1.CompactionJobStatus" json:"status,omitempty"`
	// Only present if the job completed successfully.
	CompactedBlocks *CompactedBlocks `protobuf:"bytes,4,opt,name=compacted_blocks,json=compactedBlocks,proto3" json:"compacted_blocks,omitempty"`
	// contains filtered or unexported fields
}

func (*CompactionJobStatusUpdate) ClearCompactedBlocks

func (x *CompactionJobStatusUpdate) ClearCompactedBlocks()

func (*CompactionJobStatusUpdate) GetCompactedBlocks

func (x *CompactionJobStatusUpdate) GetCompactedBlocks() *CompactedBlocks

func (*CompactionJobStatusUpdate) GetName

func (x *CompactionJobStatusUpdate) GetName() string

func (*CompactionJobStatusUpdate) GetStatus

func (*CompactionJobStatusUpdate) GetToken

func (x *CompactionJobStatusUpdate) GetToken() uint64

func (*CompactionJobStatusUpdate) HasCompactedBlocks

func (x *CompactionJobStatusUpdate) HasCompactedBlocks() bool

func (*CompactionJobStatusUpdate) ProtoMessage

func (*CompactionJobStatusUpdate) ProtoMessage()

func (*CompactionJobStatusUpdate) ProtoReflect

func (*CompactionJobStatusUpdate) Reset

func (x *CompactionJobStatusUpdate) Reset()

func (*CompactionJobStatusUpdate) SetCompactedBlocks

func (x *CompactionJobStatusUpdate) SetCompactedBlocks(v *CompactedBlocks)

func (*CompactionJobStatusUpdate) SetName

func (x *CompactionJobStatusUpdate) SetName(v string)

func (*CompactionJobStatusUpdate) SetStatus

func (*CompactionJobStatusUpdate) SetToken

func (x *CompactionJobStatusUpdate) SetToken(v uint64)

func (*CompactionJobStatusUpdate) String

func (x *CompactionJobStatusUpdate) String() string

type CompactionJobStatusUpdate_builder

type CompactionJobStatusUpdate_builder struct {
	Name   string
	Token  uint64
	Status CompactionJobStatus
	// Only present if the job completed successfully.
	CompactedBlocks *CompactedBlocks
	// contains filtered or unexported fields
}

func (CompactionJobStatusUpdate_builder) Build

type CompactionJob_builder

type CompactionJob_builder struct {
	Name            string
	Shard           uint32
	Tenant          string
	CompactionLevel uint32
	SourceBlocks    []string
	Tombstones      []*Tombstones
	// contains filtered or unexported fields
}

func (CompactionJob_builder) Build

type Dataset

type Dataset struct {
	Tenant  int32 `protobuf:"varint,1,opt,name=tenant,proto3" json:"tenant,omitempty"`
	Name    int32 `protobuf:"varint,2,opt,name=name,proto3" json:"name,omitempty"`
	MinTime int64 `protobuf:"varint,3,opt,name=min_time,json=minTime,proto3" json:"min_time,omitempty"`
	MaxTime int64 `protobuf:"varint,4,opt,name=max_time,json=maxTime,proto3" json:"max_time,omitempty"`
	// Table of contents lists data sections within the tenant
	// service region. The offsets are absolute.
	//
	// The interpretation of the table of contents is specific
	// to the metadata format version. By default, the sections are:
	//   - 0: profiles.parquet
	//   - 1: index.tsdb
	//   - 2: symbols.symdb
	TableOfContents []uint64 `protobuf:"varint,5,rep,packed,name=table_of_contents,json=tableOfContents,proto3" json:"table_of_contents,omitempty"`
	// Size of the dataset in bytes.
	Size uint64 `protobuf:"varint,6,opt,name=size,proto3" json:"size,omitempty"`
	// Length prefixed label key-value pairs.
	//
	// Multiple label sets can be associated with a dataset to denote relationships
	// across multiple dimensions. For example, each dataset currently stores data
	// for multiple profile types:
	//   - service_name=A, profile_type=cpu
	//   - service_name=A, profile_type=memory
	//
	// Labels are primarily used to filter datasets based on their attributes.
	// For instance, labels can be used to select datasets containing a specific
	// service.
	//
	// The set of attributes is extensible and can grow over time. For example, a
	// namespace attribute could be added to datasets:
	//   - service_name=A, profile_type=cpu
	//   - service_name=A, profile_type=memory
	//   - service_name=B, namespace=N, profile_type=cpu
	//   - service_name=B, namespace=N, profile_type=memory
	//   - service_name=C, namespace=N, profile_type=cpu
	//   - service_name=C, namespace=N, profile_type=memory
	//
	// This organization enables querying datasets by namespace without accessing
	// the block contents, which significantly improves performance.
	//
	// Metadata labels are not required to be included in the block's TSDB index
	// and may be orthogonal to the data dimensions. Generally, attributes serve
	// two primary purposes:
	//   - To create data scopes that span multiple service, reducing the need to
	//     scan the entire set of block satisfying the query expression, i.e.,
	//     the time range and tenant ID.
	//   - To provide additional information about datasets without altering the
	//     storage schema or access methods.
	//
	// For example, this approach can support cost attribution or similar breakdown
	// analyses. It can also handle data dependencies (e.g., links to external data)
	// using labels.
	//
	// The cardinality of the labels is expected to remain relatively low (fewer
	// than a million unique combinations globally). However, this depends on the
	// metadata storage system.
	//
	// Metadata labels are represented as a slice of `int32` values that refer to
	// strings in the metadata entry's string table. The slice is a sequence of
	// length-prefixed key-value (KV) pairs:
	//
	// len(2) | k1 | v1 | k2 | v2 | len(3) | k1 | v3 | k2 | v4 | k3 | v5
	//
	// The order of KV pairs is not defined. The format is optimized for indexing
	// rather than querying, and it is not intended to be the most space-efficient
	// representation. Since entries are supposed to be indexed, the redundancy of
	// denormalized relationships is not a concern.
	Labels []int32 `protobuf:"varint,8,rep,packed,name=labels,proto3" json:"labels,omitempty"`
	// contains filtered or unexported fields
}

func (*Dataset) GetLabels

func (x *Dataset) GetLabels() []int32

func (*Dataset) GetMaxTime

func (x *Dataset) GetMaxTime() int64

func (*Dataset) GetMinTime

func (x *Dataset) GetMinTime() int64

func (*Dataset) GetName

func (x *Dataset) GetName() int32

func (*Dataset) GetSize

func (x *Dataset) GetSize() uint64

func (*Dataset) GetTableOfContents

func (x *Dataset) GetTableOfContents() []uint64

func (*Dataset) GetTenant

func (x *Dataset) GetTenant() int32

func (*Dataset) ProtoMessage

func (*Dataset) ProtoMessage()

func (*Dataset) ProtoReflect

func (x *Dataset) ProtoReflect() protoreflect.Message

func (*Dataset) Reset

func (x *Dataset) Reset()

func (*Dataset) SetLabels

func (x *Dataset) SetLabels(v []int32)

func (*Dataset) SetMaxTime

func (x *Dataset) SetMaxTime(v int64)

func (*Dataset) SetMinTime

func (x *Dataset) SetMinTime(v int64)

func (*Dataset) SetName

func (x *Dataset) SetName(v int32)

func (*Dataset) SetSize

func (x *Dataset) SetSize(v uint64)

func (*Dataset) SetTableOfContents

func (x *Dataset) SetTableOfContents(v []uint64)

func (*Dataset) SetTenant

func (x *Dataset) SetTenant(v int32)

func (*Dataset) String

func (x *Dataset) String() string

type Dataset_builder

type Dataset_builder struct {
	Tenant  int32
	Name    int32
	MinTime int64
	MaxTime int64
	// Table of contents lists data sections within the tenant
	// service region. The offsets are absolute.
	//
	// The interpretation of the table of contents is specific
	// to the metadata format version. By default, the sections are:
	//   - 0: profiles.parquet
	//   - 1: index.tsdb
	//   - 2: symbols.symdb
	TableOfContents []uint64
	// Size of the dataset in bytes.
	Size uint64
	// Length prefixed label key-value pairs.
	//
	// Multiple label sets can be associated with a dataset to denote relationships
	// across multiple dimensions. For example, each dataset currently stores data
	// for multiple profile types:
	//   - service_name=A, profile_type=cpu
	//   - service_name=A, profile_type=memory
	//
	// Labels are primarily used to filter datasets based on their attributes.
	// For instance, labels can be used to select datasets containing a specific
	// service.
	//
	// The set of attributes is extensible and can grow over time. For example, a
	// namespace attribute could be added to datasets:
	//   - service_name=A, profile_type=cpu
	//   - service_name=A, profile_type=memory
	//   - service_name=B, namespace=N, profile_type=cpu
	//   - service_name=B, namespace=N, profile_type=memory
	//   - service_name=C, namespace=N, profile_type=cpu
	//   - service_name=C, namespace=N, profile_type=memory
	//
	// This organization enables querying datasets by namespace without accessing
	// the block contents, which significantly improves performance.
	//
	// Metadata labels are not required to be included in the block's TSDB index
	// and may be orthogonal to the data dimensions. Generally, attributes serve
	// two primary purposes:
	//   - To create data scopes that span multiple service, reducing the need to
	//     scan the entire set of block satisfying the query expression, i.e.,
	//     the time range and tenant ID.
	//   - To provide additional information about datasets without altering the
	//     storage schema or access methods.
	//
	// For example, this approach can support cost attribution or similar breakdown
	// analyses. It can also handle data dependencies (e.g., links to external data)
	// using labels.
	//
	// The cardinality of the labels is expected to remain relatively low (fewer
	// than a million unique combinations globally). However, this depends on the
	// metadata storage system.
	//
	// Metadata labels are represented as a slice of `int32` values that refer to
	// strings in the metadata entry's string table. The slice is a sequence of
	// length-prefixed key-value (KV) pairs:
	//
	// len(2) | k1 | v1 | k2 | v2 | len(3) | k1 | v3 | k2 | v4 | k3 | v5
	//
	// The order of KV pairs is not defined. The format is optimized for indexing
	// rather than querying, and it is not intended to be the most space-efficient
	// representation. Since entries are supposed to be indexed, the redundancy of
	// denormalized relationships is not a concern.
	Labels []int32
	// contains filtered or unexported fields
}

func (Dataset_builder) Build

func (b0 Dataset_builder) Build() *Dataset

type DeleteTenantRequest

type DeleteTenantRequest struct {
	TenantId string `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	// contains filtered or unexported fields
}

func (*DeleteTenantRequest) GetTenantId

func (x *DeleteTenantRequest) GetTenantId() string

func (*DeleteTenantRequest) ProtoMessage

func (*DeleteTenantRequest) ProtoMessage()

func (*DeleteTenantRequest) ProtoReflect

func (x *DeleteTenantRequest) ProtoReflect() protoreflect.Message

func (*DeleteTenantRequest) Reset

func (x *DeleteTenantRequest) Reset()

func (*DeleteTenantRequest) SetTenantId

func (x *DeleteTenantRequest) SetTenantId(v string)

func (*DeleteTenantRequest) String

func (x *DeleteTenantRequest) String() string

type DeleteTenantRequest_builder

type DeleteTenantRequest_builder struct {
	TenantId string
	// contains filtered or unexported fields
}

func (DeleteTenantRequest_builder) Build

type DeleteTenantResponse

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

func (*DeleteTenantResponse) ProtoMessage

func (*DeleteTenantResponse) ProtoMessage()

func (*DeleteTenantResponse) ProtoReflect

func (x *DeleteTenantResponse) ProtoReflect() protoreflect.Message

func (*DeleteTenantResponse) Reset

func (x *DeleteTenantResponse) Reset()

func (*DeleteTenantResponse) String

func (x *DeleteTenantResponse) String() string

type DeleteTenantResponse_builder

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

func (DeleteTenantResponse_builder) Build

type GetBlockMetadataRequest

type GetBlockMetadataRequest struct {
	Blocks *BlockList `protobuf:"bytes,1,opt,name=blocks,proto3" json:"blocks,omitempty"`
	// contains filtered or unexported fields
}

func (*GetBlockMetadataRequest) ClearBlocks

func (x *GetBlockMetadataRequest) ClearBlocks()

func (*GetBlockMetadataRequest) GetBlocks

func (x *GetBlockMetadataRequest) GetBlocks() *BlockList

func (*GetBlockMetadataRequest) HasBlocks

func (x *GetBlockMetadataRequest) HasBlocks() bool

func (*GetBlockMetadataRequest) ProtoMessage

func (*GetBlockMetadataRequest) ProtoMessage()

func (*GetBlockMetadataRequest) ProtoReflect

func (x *GetBlockMetadataRequest) ProtoReflect() protoreflect.Message

func (*GetBlockMetadataRequest) Reset

func (x *GetBlockMetadataRequest) Reset()

func (*GetBlockMetadataRequest) SetBlocks

func (x *GetBlockMetadataRequest) SetBlocks(v *BlockList)

func (*GetBlockMetadataRequest) String

func (x *GetBlockMetadataRequest) String() string

type GetBlockMetadataRequest_builder

type GetBlockMetadataRequest_builder struct {
	Blocks *BlockList
	// contains filtered or unexported fields
}

func (GetBlockMetadataRequest_builder) Build

type GetBlockMetadataResponse

type GetBlockMetadataResponse struct {
	Blocks []*BlockMeta `protobuf:"bytes,1,rep,name=blocks,proto3" json:"blocks,omitempty"`
	// contains filtered or unexported fields
}

func (*GetBlockMetadataResponse) GetBlocks

func (x *GetBlockMetadataResponse) GetBlocks() []*BlockMeta

func (*GetBlockMetadataResponse) ProtoMessage

func (*GetBlockMetadataResponse) ProtoMessage()

func (*GetBlockMetadataResponse) ProtoReflect

func (x *GetBlockMetadataResponse) ProtoReflect() protoreflect.Message

func (*GetBlockMetadataResponse) Reset

func (x *GetBlockMetadataResponse) Reset()

func (*GetBlockMetadataResponse) SetBlocks

func (x *GetBlockMetadataResponse) SetBlocks(v []*BlockMeta)

func (*GetBlockMetadataResponse) String

func (x *GetBlockMetadataResponse) String() string

type GetBlockMetadataResponse_builder

type GetBlockMetadataResponse_builder struct {
	Blocks []*BlockMeta
	// contains filtered or unexported fields
}

func (GetBlockMetadataResponse_builder) Build

type GetTenantRequest

type GetTenantRequest struct {
	TenantId string `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	// contains filtered or unexported fields
}

func (*GetTenantRequest) GetTenantId

func (x *GetTenantRequest) GetTenantId() string

func (*GetTenantRequest) ProtoMessage

func (*GetTenantRequest) ProtoMessage()

func (*GetTenantRequest) ProtoReflect

func (x *GetTenantRequest) ProtoReflect() protoreflect.Message

func (*GetTenantRequest) Reset

func (x *GetTenantRequest) Reset()

func (*GetTenantRequest) SetTenantId

func (x *GetTenantRequest) SetTenantId(v string)

func (*GetTenantRequest) String

func (x *GetTenantRequest) String() string

type GetTenantRequest_builder

type GetTenantRequest_builder struct {
	TenantId string
	// contains filtered or unexported fields
}

func (GetTenantRequest_builder) Build

type GetTenantResponse

type GetTenantResponse struct {
	Stats *TenantStats `protobuf:"bytes,1,opt,name=stats,proto3" json:"stats,omitempty"`
	// contains filtered or unexported fields
}

func (*GetTenantResponse) ClearStats

func (x *GetTenantResponse) ClearStats()

func (*GetTenantResponse) GetStats

func (x *GetTenantResponse) GetStats() *TenantStats

func (*GetTenantResponse) HasStats

func (x *GetTenantResponse) HasStats() bool

func (*GetTenantResponse) ProtoMessage

func (*GetTenantResponse) ProtoMessage()

func (*GetTenantResponse) ProtoReflect

func (x *GetTenantResponse) ProtoReflect() protoreflect.Message

func (*GetTenantResponse) Reset

func (x *GetTenantResponse) Reset()

func (*GetTenantResponse) SetStats

func (x *GetTenantResponse) SetStats(v *TenantStats)

func (*GetTenantResponse) String

func (x *GetTenantResponse) String() string

type GetTenantResponse_builder

type GetTenantResponse_builder struct {
	Stats *TenantStats
	// contains filtered or unexported fields
}

func (GetTenantResponse_builder) Build

type PollCompactionJobsRequest

type PollCompactionJobsRequest struct {
	StatusUpdates []*CompactionJobStatusUpdate `protobuf:"bytes,1,rep,name=status_updates,json=statusUpdates,proto3" json:"status_updates,omitempty"`
	// How many new jobs a worker can be assigned to.
	JobCapacity uint32 `protobuf:"varint,2,opt,name=job_capacity,json=jobCapacity,proto3" json:"job_capacity,omitempty"`
	// contains filtered or unexported fields
}

func (*PollCompactionJobsRequest) GetJobCapacity

func (x *PollCompactionJobsRequest) GetJobCapacity() uint32

func (*PollCompactionJobsRequest) GetStatusUpdates

func (x *PollCompactionJobsRequest) GetStatusUpdates() []*CompactionJobStatusUpdate

func (*PollCompactionJobsRequest) ProtoMessage

func (*PollCompactionJobsRequest) ProtoMessage()

func (*PollCompactionJobsRequest) ProtoReflect

func (*PollCompactionJobsRequest) Reset

func (x *PollCompactionJobsRequest) Reset()

func (*PollCompactionJobsRequest) SetJobCapacity

func (x *PollCompactionJobsRequest) SetJobCapacity(v uint32)

func (*PollCompactionJobsRequest) SetStatusUpdates

func (x *PollCompactionJobsRequest) SetStatusUpdates(v []*CompactionJobStatusUpdate)

func (*PollCompactionJobsRequest) String

func (x *PollCompactionJobsRequest) String() string

type PollCompactionJobsRequest_builder

type PollCompactionJobsRequest_builder struct {
	StatusUpdates []*CompactionJobStatusUpdate
	// How many new jobs a worker can be assigned to.
	JobCapacity uint32
	// contains filtered or unexported fields
}

func (PollCompactionJobsRequest_builder) Build

type PollCompactionJobsResponse

type PollCompactionJobsResponse struct {
	CompactionJobs []*CompactionJob           `protobuf:"bytes,1,rep,name=compaction_jobs,json=compactionJobs,proto3" json:"compaction_jobs,omitempty"`
	Assignments    []*CompactionJobAssignment `protobuf:"bytes,2,rep,name=assignments,proto3" json:"assignments,omitempty"`
	// contains filtered or unexported fields
}

func (*PollCompactionJobsResponse) GetAssignments

func (x *PollCompactionJobsResponse) GetAssignments() []*CompactionJobAssignment

func (*PollCompactionJobsResponse) GetCompactionJobs

func (x *PollCompactionJobsResponse) GetCompactionJobs() []*CompactionJob

func (*PollCompactionJobsResponse) ProtoMessage

func (*PollCompactionJobsResponse) ProtoMessage()

func (*PollCompactionJobsResponse) ProtoReflect

func (*PollCompactionJobsResponse) Reset

func (x *PollCompactionJobsResponse) Reset()

func (*PollCompactionJobsResponse) SetAssignments

func (x *PollCompactionJobsResponse) SetAssignments(v []*CompactionJobAssignment)

func (*PollCompactionJobsResponse) SetCompactionJobs

func (x *PollCompactionJobsResponse) SetCompactionJobs(v []*CompactionJob)

func (*PollCompactionJobsResponse) String

func (x *PollCompactionJobsResponse) String() string

type PollCompactionJobsResponse_builder

type PollCompactionJobsResponse_builder struct {
	CompactionJobs []*CompactionJob
	Assignments    []*CompactionJobAssignment
	// contains filtered or unexported fields
}

func (PollCompactionJobsResponse_builder) Build

type QueryMetadataLabelsRequest

type QueryMetadataLabelsRequest struct {
	TenantId  []string `protobuf:"bytes,1,rep,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	StartTime int64    `protobuf:"varint,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	EndTime   int64    `protobuf:"varint,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	Query     string   `protobuf:"bytes,4,opt,name=query,proto3" json:"query,omitempty"`
	Labels    []string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryMetadataLabelsRequest) GetEndTime

func (x *QueryMetadataLabelsRequest) GetEndTime() int64

func (*QueryMetadataLabelsRequest) GetLabels

func (x *QueryMetadataLabelsRequest) GetLabels() []string

func (*QueryMetadataLabelsRequest) GetQuery

func (x *QueryMetadataLabelsRequest) GetQuery() string

func (*QueryMetadataLabelsRequest) GetStartTime

func (x *QueryMetadataLabelsRequest) GetStartTime() int64

func (*QueryMetadataLabelsRequest) GetTenantId

func (x *QueryMetadataLabelsRequest) GetTenantId() []string

func (*QueryMetadataLabelsRequest) ProtoMessage

func (*QueryMetadataLabelsRequest) ProtoMessage()

func (*QueryMetadataLabelsRequest) ProtoReflect

func (*QueryMetadataLabelsRequest) Reset

func (x *QueryMetadataLabelsRequest) Reset()

func (*QueryMetadataLabelsRequest) SetEndTime

func (x *QueryMetadataLabelsRequest) SetEndTime(v int64)

func (*QueryMetadataLabelsRequest) SetLabels

func (x *QueryMetadataLabelsRequest) SetLabels(v []string)

func (*QueryMetadataLabelsRequest) SetQuery

func (x *QueryMetadataLabelsRequest) SetQuery(v string)

func (*QueryMetadataLabelsRequest) SetStartTime

func (x *QueryMetadataLabelsRequest) SetStartTime(v int64)

func (*QueryMetadataLabelsRequest) SetTenantId

func (x *QueryMetadataLabelsRequest) SetTenantId(v []string)

func (*QueryMetadataLabelsRequest) String

func (x *QueryMetadataLabelsRequest) String() string

type QueryMetadataLabelsRequest_builder

type QueryMetadataLabelsRequest_builder struct {
	TenantId  []string
	StartTime int64
	EndTime   int64
	Query     string
	Labels    []string
	// contains filtered or unexported fields
}

func (QueryMetadataLabelsRequest_builder) Build

type QueryMetadataLabelsResponse

type QueryMetadataLabelsResponse struct {
	Labels []*v1.Labels `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryMetadataLabelsResponse) GetLabels

func (x *QueryMetadataLabelsResponse) GetLabels() []*v1.Labels

func (*QueryMetadataLabelsResponse) ProtoMessage

func (*QueryMetadataLabelsResponse) ProtoMessage()

func (*QueryMetadataLabelsResponse) ProtoReflect

func (*QueryMetadataLabelsResponse) Reset

func (x *QueryMetadataLabelsResponse) Reset()

func (*QueryMetadataLabelsResponse) SetLabels

func (x *QueryMetadataLabelsResponse) SetLabels(v []*v1.Labels)

func (*QueryMetadataLabelsResponse) String

func (x *QueryMetadataLabelsResponse) String() string

type QueryMetadataLabelsResponse_builder

type QueryMetadataLabelsResponse_builder struct {
	Labels []*v1.Labels
	// contains filtered or unexported fields
}

func (QueryMetadataLabelsResponse_builder) Build

type QueryMetadataRequest

type QueryMetadataRequest struct {
	TenantId  []string `protobuf:"bytes,1,rep,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
	StartTime int64    `protobuf:"varint,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	EndTime   int64    `protobuf:"varint,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	Query     string   `protobuf:"bytes,4,opt,name=query,proto3" json:"query,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryMetadataRequest) GetEndTime

func (x *QueryMetadataRequest) GetEndTime() int64

func (*QueryMetadataRequest) GetQuery

func (x *QueryMetadataRequest) GetQuery() string

func (*QueryMetadataRequest) GetStartTime

func (x *QueryMetadataRequest) GetStartTime() int64

func (*QueryMetadataRequest) GetTenantId

func (x *QueryMetadataRequest) GetTenantId() []string

func (*QueryMetadataRequest) ProtoMessage

func (*QueryMetadataRequest) ProtoMessage()

func (*QueryMetadataRequest) ProtoReflect

func (x *QueryMetadataRequest) ProtoReflect() protoreflect.Message

func (*QueryMetadataRequest) Reset

func (x *QueryMetadataRequest) Reset()

func (*QueryMetadataRequest) SetEndTime

func (x *QueryMetadataRequest) SetEndTime(v int64)

func (*QueryMetadataRequest) SetQuery

func (x *QueryMetadataRequest) SetQuery(v string)

func (*QueryMetadataRequest) SetStartTime

func (x *QueryMetadataRequest) SetStartTime(v int64)

func (*QueryMetadataRequest) SetTenantId

func (x *QueryMetadataRequest) SetTenantId(v []string)

func (*QueryMetadataRequest) String

func (x *QueryMetadataRequest) String() string

type QueryMetadataRequest_builder

type QueryMetadataRequest_builder struct {
	TenantId  []string
	StartTime int64
	EndTime   int64
	Query     string
	// contains filtered or unexported fields
}

func (QueryMetadataRequest_builder) Build

type QueryMetadataResponse

type QueryMetadataResponse struct {
	Blocks []*BlockMeta `protobuf:"bytes,1,rep,name=blocks,proto3" json:"blocks,omitempty"`
	// contains filtered or unexported fields
}

func (*QueryMetadataResponse) GetBlocks

func (x *QueryMetadataResponse) GetBlocks() []*BlockMeta

func (*QueryMetadataResponse) ProtoMessage

func (*QueryMetadataResponse) ProtoMessage()

func (*QueryMetadataResponse) ProtoReflect

func (x *QueryMetadataResponse) ProtoReflect() protoreflect.Message

func (*QueryMetadataResponse) Reset

func (x *QueryMetadataResponse) Reset()

func (*QueryMetadataResponse) SetBlocks

func (x *QueryMetadataResponse) SetBlocks(v []*BlockMeta)

func (*QueryMetadataResponse) String

func (x *QueryMetadataResponse) String() string

type QueryMetadataResponse_builder

type QueryMetadataResponse_builder struct {
	Blocks []*BlockMeta
	// contains filtered or unexported fields
}

func (QueryMetadataResponse_builder) Build

type TenantStats

type TenantStats struct {

	// Whether we received any data at any time in the past.
	DataIngested bool `protobuf:"varint,1,opt,name=data_ingested,json=dataIngested,proto3" json:"data_ingested,omitempty"`
	// Milliseconds since epoch.
	OldestProfileTime int64 `protobuf:"varint,2,opt,name=oldest_profile_time,json=oldestProfileTime,proto3" json:"oldest_profile_time,omitempty"`
	// Milliseconds since epoch.
	NewestProfileTime int64 `protobuf:"varint,3,opt,name=newest_profile_time,json=newestProfileTime,proto3" json:"newest_profile_time,omitempty"`
	// contains filtered or unexported fields
}

func (*TenantStats) GetDataIngested

func (x *TenantStats) GetDataIngested() bool

func (*TenantStats) GetNewestProfileTime

func (x *TenantStats) GetNewestProfileTime() int64

func (*TenantStats) GetOldestProfileTime

func (x *TenantStats) GetOldestProfileTime() int64

func (*TenantStats) ProtoMessage

func (*TenantStats) ProtoMessage()

func (*TenantStats) ProtoReflect

func (x *TenantStats) ProtoReflect() protoreflect.Message

func (*TenantStats) Reset

func (x *TenantStats) Reset()

func (*TenantStats) SetDataIngested

func (x *TenantStats) SetDataIngested(v bool)

func (*TenantStats) SetNewestProfileTime

func (x *TenantStats) SetNewestProfileTime(v int64)

func (*TenantStats) SetOldestProfileTime

func (x *TenantStats) SetOldestProfileTime(v int64)

func (*TenantStats) String

func (x *TenantStats) String() string

type TenantStats_builder

type TenantStats_builder struct {

	// Whether we received any data at any time in the past.
	DataIngested bool
	// Milliseconds since epoch.
	OldestProfileTime int64
	// Milliseconds since epoch.
	NewestProfileTime int64
	// contains filtered or unexported fields
}

func (TenantStats_builder) Build

func (b0 TenantStats_builder) Build() *TenantStats

type Tombstones

type Tombstones struct {
	Blocks *BlockTombstones `protobuf:"bytes,1,opt,name=blocks,proto3" json:"blocks,omitempty"`
	// contains filtered or unexported fields
}

Tombstones represent objects removed from the index but still stored.

func (*Tombstones) ClearBlocks

func (x *Tombstones) ClearBlocks()

func (*Tombstones) GetBlocks

func (x *Tombstones) GetBlocks() *BlockTombstones

func (*Tombstones) HasBlocks

func (x *Tombstones) HasBlocks() bool

func (*Tombstones) ProtoMessage

func (*Tombstones) ProtoMessage()

func (*Tombstones) ProtoReflect

func (x *Tombstones) ProtoReflect() protoreflect.Message

func (*Tombstones) Reset

func (x *Tombstones) Reset()

func (*Tombstones) SetBlocks

func (x *Tombstones) SetBlocks(v *BlockTombstones)

func (*Tombstones) String

func (x *Tombstones) String() string

type Tombstones_builder

type Tombstones_builder struct {
	Blocks *BlockTombstones
	// contains filtered or unexported fields
}

func (Tombstones_builder) Build

func (b0 Tombstones_builder) Build() *Tombstones

Source Files

  • compactor.pb.go
  • index.pb.go
  • query.pb.go
  • tenant.pb.go
  • types.pb.go

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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