package profiler

import "github.com/open-policy-agent/opa/profiler"

Package profiler computes and reports on the time spent on expressions.

Index

Types

type ExprStats

type ExprStats struct {
	ExprTimeNs int64         `json:"total_time_ns"`
	NumEval    int           `json:"num_eval"`
	NumRedo    int           `json:"num_redo"`
	Location   *ast.Location `json:"location"`
}

ExprStats represents the result of profiling an expression.

type FileReport

type FileReport struct {
	Result []ExprStats `json:"result"`
}

FileReport represents a profiler report for a single file.

type Profiler

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

Profiler computes and reports on the time spent on expressions.

func New

func New() *Profiler

New returns a new Profiler object.

func (*Profiler) Enabled

func (p *Profiler) Enabled() bool

Enabled returns true if profiler is enabled.

func (*Profiler) ReportByFile

func (p *Profiler) ReportByFile() (report Report)

ReportByFile returns a profiler report for expressions grouped by the file name. For each file the results are sorted by increasing row number.

func (*Profiler) ReportTopNResults

func (p *Profiler) ReportTopNResults(numResults int, criteria []string) []ExprStats

ReportTopNResults returns the top N results based on the given criteria. If N <= 0, all the results based on the criteria are returned.

func (*Profiler) Trace

func (p *Profiler) Trace(event *topdown.Event)

Trace updates the profiler state.

type Report

type Report struct {
	Files map[string]*FileReport `json:"files"`
}

Report represents the profiler report for a set of files.

Source Files

profiler.go

Version
v0.13.5
Published
Aug 30, 2019
Platform
darwin/amd64
Imports
4 packages
Last checked
1 minute ago

Tools for package owners.