parcacol

package
v0.13.0 Latest Latest
Warning

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

Go to latest
Published: Oct 20, 2022 License: Apache-2.0 Imports: 31 Imported by: 2

Documentation

Index

Constants

View Source
const (
	SchemaName = "parca"
	// The columns are sorted by their name in the schema too.
	ColumnDuration       = "duration"
	ColumnLabels         = "labels"
	ColumnName           = "name"
	ColumnPeriod         = "period"
	ColumnPeriodType     = "period_type"
	ColumnPeriodUnit     = "period_unit"
	ColumnPprofLabels    = "pprof_labels"
	ColumnPprofNumLabels = "pprof_num_labels"
	ColumnSampleType     = "sample_type"
	ColumnSampleUnit     = "sample_unit"
	ColumnStacktrace     = "stacktrace"
	ColumnTimestamp      = "timestamp"
	ColumnValue          = "value"
)
View Source
const (
	UnsymolizableLocationAddress = 0x0
)

Variables

View Source
var (
	ErrTimestampColumnNotFound = errors.New("timestamp column not found")
	ErrValueColumnNotFound     = errors.New("value column not found")
)
View Source
var ErrMissingNameLabel = errors.New("missing __name__ label")

Functions

func BinaryFieldFromRecord added in v0.13.0

func BinaryFieldFromRecord(ar arrow.Record, name string) (*array.Binary, error)

func BooleanFieldFromRecord added in v0.13.0

func BooleanFieldFromRecord(ar arrow.Record, name string) (*array.Boolean, error)

func MatcherToBooleanExpression added in v0.13.0

func MatcherToBooleanExpression(matcher *labels.Matcher) (logicalplan.Expr, error)

func MatchersToBooleanExpressions added in v0.13.0

func MatchersToBooleanExpressions(matchers []*labels.Matcher) ([]logicalplan.Expr, error)

func NormalizedProfileToParquetBuffer added in v0.12.0

func NormalizedProfileToParquetBuffer(w io.Writer, schema *dynparquet.Schema, ls labels.Labels, p *profile.NormalizedProfile) error

NormalizedProfileToParquetBuffer converts a normalized profile to a Parquet buffer. The passed labels must be sorted.

func QueryToFilterExprs added in v0.13.0

func QueryToFilterExprs(query string) (profile.Meta, []logicalplan.Expr, error)

func SampleToParquetRow added in v0.12.0

func SampleToParquetRow(
	schema *dynparquet.Schema,
	row parquet.Row,
	profileLabelNames, profileNumLabelNames []string,
	ls labels.Labels,
	meta profile.Meta,
	s *profile.NormalizedSample,
) parquet.Row

SampleToParquetRow converts a sample to a Parquet row. The passed labels must be sorted.

func Schema

func Schema() (*dynparquet.Schema, error)

Types

type ArrowToProfileConverter added in v0.13.0

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

func NewArrowToProfileConverter added in v0.13.0

func NewArrowToProfileConverter(
	tracer trace.Tracer,
	m pb.MetastoreServiceClient,
) *ArrowToProfileConverter

func (*ArrowToProfileConverter) Convert added in v0.13.0

func (c *ArrowToProfileConverter) Convert(
	ctx context.Context,
	ar arrow.Record,
	valueColumnName string,
	meta profile.Meta,
) (*profile.Profile, error)

func (*ArrowToProfileConverter) SymbolizeNormalizedProfile added in v0.13.0

func (c *ArrowToProfileConverter) SymbolizeNormalizedProfile(ctx context.Context, p *profile.NormalizedProfile) (*profile.Profile, error)

type Engine added in v0.13.0

type Engine interface {
	ScanTable(name string) query.Builder
	ScanSchema(name string) query.Builder
}

type ErrMissingColumn added in v0.12.0

type ErrMissingColumn struct {
	Column  string
	Columns int
}

func (ErrMissingColumn) Error added in v0.12.0

func (e ErrMissingColumn) Error() string

type Ingester added in v0.12.0

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

func NewIngester added in v0.12.0

func NewIngester(
	logger log.Logger,
	normalizer *Normalizer,
	table Table,
	schema *dynparquet.Schema,
	bufferPool *sync.Pool,
) *Ingester

func (Ingester) Ingest added in v0.12.0

func (ing Ingester) Ingest(ctx context.Context, ls labels.Labels, p *pprofproto.Profile, normalized bool) error

func (Ingester) IngestProfile added in v0.12.0

func (ing Ingester) IngestProfile(ctx context.Context, ls labels.Labels, p *profile.NormalizedProfile) error

type Normalizer added in v0.12.0

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

func NewNormalizer added in v0.12.0

func NewNormalizer(metastore pb.MetastoreServiceClient) *Normalizer

func (*Normalizer) NormalizeFunctions added in v0.12.0

func (n *Normalizer) NormalizeFunctions(ctx context.Context, functions []*pprofpb.Function, stringTable []string) ([]*pb.Function, error)

func (*Normalizer) NormalizeLocations added in v0.12.0

func (n *Normalizer) NormalizeLocations(
	ctx context.Context,
	locations []*pprofpb.Location,
	mappings []mappingNormalizationInfo,
	functions []*pb.Function,
	normalizedAddress bool,
	stringTable []string,
) ([]*pb.Location, error)

func (*Normalizer) NormalizeMappings added in v0.12.0

func (n *Normalizer) NormalizeMappings(ctx context.Context, mappings []*pprofpb.Mapping, stringTable []string) ([]mappingNormalizationInfo, error)

func (*Normalizer) NormalizePprof added in v0.12.0

func (n *Normalizer) NormalizePprof(ctx context.Context, name string, takenLabelNames map[string]struct{}, p *pprofpb.Profile, normalizedAddress bool) ([]*profile.NormalizedProfile, error)

func (*Normalizer) NormalizeStacktraces added in v0.12.0

func (n *Normalizer) NormalizeStacktraces(ctx context.Context, samples []*pprofpb.Sample, locations []*pb.Location) ([]*pb.Stacktrace, error)

type Querier added in v0.13.0

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

func NewQuerier added in v0.13.0

func NewQuerier(
	tracer trace.Tracer,
	engine Engine,
	tableName string,
	metastore metastorepb.MetastoreServiceClient,
) *Querier

func (*Querier) Labels added in v0.13.0

func (q *Querier) Labels(
	ctx context.Context,
	match []string,
	start, end time.Time,
) ([]string, error)

func (*Querier) ProfileTypes added in v0.13.0

func (q *Querier) ProfileTypes(
	ctx context.Context,
) ([]*pb.ProfileType, error)

func (*Querier) QueryMerge added in v0.13.0

func (q *Querier) QueryMerge(ctx context.Context, query string, start, end time.Time) (*profile.Profile, error)

func (*Querier) QueryRange added in v0.13.0

func (q *Querier) QueryRange(
	ctx context.Context,
	query string,
	startTime, endTime time.Time,
	limit uint32,
) ([]*pb.MetricsSeries, error)

func (*Querier) QuerySingle added in v0.13.0

func (q *Querier) QuerySingle(
	ctx context.Context,
	query string,
	time time.Time,
) (*profile.Profile, error)

func (*Querier) Values added in v0.13.0

func (q *Querier) Values(
	ctx context.Context,
	labelName string,
	match []string,
	start, end time.Time,
) ([]string, error)

type Table

type Table interface {
	Schema() *dynparquet.Schema
	Insert(context.Context, []byte) (tx uint64, err error)
}

Jump to

Keyboard shortcuts

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