Documentation
¶
Index ¶
- Constants
- Variables
- func BinaryFieldFromRecord(ar arrow.Record, name string) (*array.Binary, error)
- func BooleanFieldFromRecord(ar arrow.Record, name string) (*array.Boolean, error)
- func DictionaryFromRecord(ar arrow.Record, name string) (*array.Dictionary, error)
- func LabelNamesFromSamples(takenLabels map[string]string, stringTable []string, samples []*pprofpb.Sample, ...)
- func LabelsFromSample(takenLabelNames map[string]string, stringTable []string, ...) (map[string]string, map[string]int64)
- func MatcherToBooleanExpression(matcher *labels.Matcher) (logicalplan.Expr, error)
- func MatchersToBooleanExpressions(matchers []*labels.Matcher) ([]logicalplan.Expr, error)
- func NormalizedIngest(ctx context.Context, req *profilestorepb.WriteRawRequest, logger log.Logger, ...) error
- func ParquetBufToArrowRecord(ctx context.Context, buf *dynparquet.Buffer, rowsPerRecord uint) ([]arrow.Record, error)
- func SampleToParquetRow(schema *dynparquet.Schema, row parquet.Row, ...) parquet.Row
- func Schema() (*dynparquet.Schema, error)
- func SchemaDefinition() *schemapb.Schema
- func SeriesToArrowRecord(schema *dynparquet.Schema, series []Series, ...) (arrow.Record, error)
- func StringValueFromDictionary(arr *array.Dictionary, i int) string
- func ValidatePprofProfile(p *pprofpb.Profile) error
- type ArrowToProfileConverter
- type Engine
- type ErrMissingColumn
- type MetastoreNormalizer
- func (n *MetastoreNormalizer) NormalizeFunctions(ctx context.Context, functions []*pprofpb.Function, stringTable []string) ([]*pb.Function, error)
- func (n *MetastoreNormalizer) NormalizeLocations(ctx context.Context, locations []*pprofpb.Location, ...) ([]*pb.Location, error)
- func (n *MetastoreNormalizer) NormalizeMappings(ctx context.Context, mappings []*pprofpb.Mapping, stringTable []string) ([]mappingNormalizationInfo, error)
- func (n *MetastoreNormalizer) NormalizePprof(ctx context.Context, name string, takenLabelNames map[string]string, ...) ([]*profile.NormalizedProfile, error)
- func (n *MetastoreNormalizer) NormalizeStacktraces(ctx context.Context, samples []*pprofpb.Sample, locations []*pb.Location) ([]*pb.Stacktrace, error)
- type NormalizedIngester
- type NormalizedWriteRawRequest
- type Normalizer
- type Querier
- func (q *Querier) Labels(ctx context.Context, match []string, start, end time.Time) ([]string, error)
- func (q *Querier) ProfileTypes(ctx context.Context) ([]*pb.ProfileType, error)
- func (q *Querier) QueryMerge(ctx context.Context, query string, start, end time.Time) (*profile.Profile, error)
- func (q *Querier) QueryRange(ctx context.Context, query string, startTime, endTime time.Time, ...) ([]*pb.MetricsSeries, error)
- func (q *Querier) QuerySingle(ctx context.Context, query string, time time.Time) (*profile.Profile, error)
- func (q *Querier) Values(ctx context.Context, labelName string, match []string, start, end time.Time) ([]string, error)
- type QueryParts
- type Series
- type Table
Constants ¶
const ( ColumnDurationSum = "sum(" + ColumnDuration + ")" ColumnPeriodSum = "sum(" + ColumnPeriod + ")" ColumnValueCount = "count(" + ColumnValue + ")" ColumnValueSum = "sum(" + ColumnValue + ")" )
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" )
const (
UnsymolizableLocationAddress = 0x0
)
Variables ¶
var ErrMissingNameLabel = errors.New("missing __name__ label")
var ExperimentalArrow bool
Functions ¶
func BinaryFieldFromRecord ¶ added in v0.13.0
func BooleanFieldFromRecord ¶ added in v0.13.0
func DictionaryFromRecord ¶ added in v0.16.0
func LabelNamesFromSamples ¶ added in v0.15.0
func LabelsFromSample ¶ added in v0.15.0
func LabelsFromSample(takenLabelNames map[string]string, stringTable []string, plabels []*pprofpb.Label) (map[string]string, map[string]int64)
TODO: support num label units.
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 NormalizedIngest ¶ added in v0.18.0
func NormalizedIngest( ctx context.Context, req *profilestorepb.WriteRawRequest, logger log.Logger, table Table, schema *dynparquet.Schema, metastore metastorepb.MetastoreServiceClient, bufferPool *sync.Pool, enableAddressNormalization bool, ) error
NormalizedIngest normalizes and persists pprof samples (mappings, functions, locations, stack traces). Note, normalization is used in broad terms (think db normalization), it doesn't necessarily mean address normalization (PIE).
func ParquetBufToArrowRecord ¶ added in v0.17.0
func ParquetBufToArrowRecord(ctx context.Context, buf *dynparquet.Buffer, rowsPerRecord uint) ([]arrow.Record, error)
ParquetBufToArrowRecord converts a parquet buffer to an arrow record. If rowsPerRecord is 0, then the entire buffer is converted to a single record.
func SampleToParquetRow ¶ added in v0.12.0
func SampleToParquetRow( schema *dynparquet.Schema, row parquet.Row, labelNames, profileLabelNames, profileNumLabelNames []string, lset map[string]string, 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)
func SchemaDefinition ¶ added in v0.17.0
func SeriesToArrowRecord ¶ added in v0.16.0
func StringValueFromDictionary ¶ added in v0.16.0
func StringValueFromDictionary(arr *array.Dictionary, i int) string
func ValidatePprofProfile ¶ added in v0.15.0
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) SymbolizeNormalizedProfile ¶ added in v0.13.0
func (c *ArrowToProfileConverter) SymbolizeNormalizedProfile(ctx context.Context, p *profile.NormalizedProfile) (*profile.Profile, error)
type ErrMissingColumn ¶ added in v0.12.0
func (ErrMissingColumn) Error ¶ added in v0.12.0
func (e ErrMissingColumn) Error() string
type MetastoreNormalizer ¶ added in v0.15.0
type MetastoreNormalizer struct {
// contains filtered or unexported fields
}
func NewNormalizer ¶ added in v0.12.0
func NewNormalizer(metastore pb.MetastoreServiceClient, enableAddressNormalization bool) *MetastoreNormalizer
func (*MetastoreNormalizer) NormalizeFunctions ¶ added in v0.15.0
func (*MetastoreNormalizer) NormalizeLocations ¶ added in v0.15.0
func (*MetastoreNormalizer) NormalizeMappings ¶ added in v0.15.0
func (*MetastoreNormalizer) NormalizePprof ¶ added in v0.15.0
func (*MetastoreNormalizer) NormalizeStacktraces ¶ added in v0.15.0
func (n *MetastoreNormalizer) NormalizeStacktraces(ctx context.Context, samples []*pprofpb.Sample, locations []*pb.Location) ([]*pb.Stacktrace, error)
type NormalizedIngester ¶ added in v0.15.0
type NormalizedIngester struct {
// contains filtered or unexported fields
}
func NewNormalizedIngester ¶ added in v0.15.0
type NormalizedWriteRawRequest ¶ added in v0.15.0
type NormalizedWriteRawRequest struct {
Series []Series
AllLabelNames []string
AllPprofLabelNames []string
AllPprofNumLabelNames []string
}
func NormalizeWriteRawRequest ¶ added in v0.15.0
func NormalizeWriteRawRequest(ctx context.Context, normalizer Normalizer, req *profilestorepb.WriteRawRequest) (NormalizedWriteRawRequest, error)
NormalizeWriteRawRequest normalizes the profiles (mappings, functions, locations, stack traces) to prepare for ingestion. It also validates label names of profiles' series, decompresses the samples, unmarshals and validates them.
type Normalizer ¶ added in v0.12.0
type Querier ¶ added in v0.13.0
type Querier struct {
// contains filtered or unexported fields
}
func NewQuerier ¶ added in v0.13.0
func NewQuerier( logger log.Logger, tracer trace.Tracer, engine Engine, tableName string, metastore metastorepb.MetastoreServiceClient, ) *Querier
func (*Querier) ProfileTypes ¶ added in v0.13.0
func (*Querier) QueryMerge ¶ added in v0.13.0
func (*Querier) QueryRange ¶ added in v0.13.0
func (*Querier) QuerySingle ¶ added in v0.13.0
type QueryParts ¶ added in v0.16.0
func ParseQuery ¶ added in v0.17.0
func ParseQuery(query string) (QueryParts, error)
ParseQuery from a string into the QueryParts struct.
func QueryToFilterExprs ¶ added in v0.13.0
func QueryToFilterExprs(query string) (QueryParts, []logicalplan.Expr, error)