Documentation
¶
Overview ¶
Package analysis provides a set of functions to analyze the bottleneck of the system under simulation.
Index ¶
- type BufferAnalyzer
- type BufferAnalyzerBuilder
- func (b BufferAnalyzerBuilder) Build() *BufferAnalyzer
- func (b BufferAnalyzerBuilder) WithBuffer(buffer sim.Buffer) BufferAnalyzerBuilder
- func (b BufferAnalyzerBuilder) WithPerfLogger(perfLogger PerfLogger) BufferAnalyzerBuilder
- func (b BufferAnalyzerBuilder) WithPeriod(period sim.VTimeInSec) BufferAnalyzerBuilder
- func (b BufferAnalyzerBuilder) WithTimeTeller(timeTeller sim.TimeTeller) BufferAnalyzerBuilder
- type CSVBackend
- type PerfAnalyzer
- func (b *PerfAnalyzer) AddDataEntry(entry PerfAnalyzerEntry)
- func (b *PerfAnalyzer) GetCurrentTraffic(comp string) string
- func (b *PerfAnalyzer) RegisterBuffer(buf sim.Buffer)
- func (b *PerfAnalyzer) RegisterComponent(c sim.Component)
- func (b *PerfAnalyzer) RegisterEngine(e sim.Engine)
- func (b *PerfAnalyzer) RegisterPort(port sim.Port)
- type PerfAnalyzerBackend
- type PerfAnalyzerBuilder
- func (b PerfAnalyzerBuilder) Build() *PerfAnalyzer
- func (b PerfAnalyzerBuilder) WithDBFilename(filename string) PerfAnalyzerBuilder
- func (b PerfAnalyzerBuilder) WithEngine(engine sim.Engine) PerfAnalyzerBuilder
- func (b PerfAnalyzerBuilder) WithPeriod(period sim.VTimeInSec) PerfAnalyzerBuilder
- func (b PerfAnalyzerBuilder) WithSQLiteBackend() PerfAnalyzerBuilder
- type PerfAnalyzerEntry
- type PerfLogger
- type PortAnalyzer
- type PortAnalyzerBuilder
- func (b PortAnalyzerBuilder) Build() *PortAnalyzer
- func (b PortAnalyzerBuilder) WithPerfLogger(l PerfLogger) PortAnalyzerBuilder
- func (b PortAnalyzerBuilder) WithPeriod(p sim.VTimeInSec) PortAnalyzerBuilder
- func (b PortAnalyzerBuilder) WithPort(p sim.Port) PortAnalyzerBuilder
- func (b PortAnalyzerBuilder) WithTimeTeller(t sim.TimeTeller) PortAnalyzerBuilder
- type SQLiteBackend
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BufferAnalyzer ¶
type BufferAnalyzer struct { PerfLogger sim.TimeTeller // contains filtered or unexported fields }
BufferAnalyzer can periodically record the buffer level of a buffer.
func (*BufferAnalyzer) Func ¶
func (b *BufferAnalyzer) Func(ctx sim.HookCtx)
Func is a function that records buffer level change.
type BufferAnalyzerBuilder ¶
type BufferAnalyzerBuilder struct {
// contains filtered or unexported fields
}
BufferAnalyzerBuilder can build a BufferAnalyzer.
func MakeBufferAnalyzerBuilder ¶
func MakeBufferAnalyzerBuilder() BufferAnalyzerBuilder
MakeBufferAnalyzerBuilder creates a BufferAnalyzerBuilder.
func (BufferAnalyzerBuilder) Build ¶
func (b BufferAnalyzerBuilder) Build() *BufferAnalyzer
Build creates a BufferAnalyzer.
func (BufferAnalyzerBuilder) WithBuffer ¶
func (b BufferAnalyzerBuilder) WithBuffer( buffer sim.Buffer, ) BufferAnalyzerBuilder
WithBuffer sets the buffer to use.
func (BufferAnalyzerBuilder) WithPerfLogger ¶
func (b BufferAnalyzerBuilder) WithPerfLogger( perfLogger PerfLogger, ) BufferAnalyzerBuilder
WithPerfLogger sets the PerfLogger to use.
func (BufferAnalyzerBuilder) WithPeriod ¶
func (b BufferAnalyzerBuilder) WithPeriod( period sim.VTimeInSec, ) BufferAnalyzerBuilder
WithPeriod sets the period to use.
func (BufferAnalyzerBuilder) WithTimeTeller ¶
func (b BufferAnalyzerBuilder) WithTimeTeller( timeTeller sim.TimeTeller, ) BufferAnalyzerBuilder
WithTimeTeller sets the TimeTeller to use.
type CSVBackend ¶
type CSVBackend struct {
// contains filtered or unexported fields
}
CSVBackend is a PerfAnalyzerBackend that writes data entries to a CSV file.
func NewCSVPerfAnalyzerBackend ¶
func NewCSVPerfAnalyzerBackend(dbFilename string) *CSVBackend
NewCSVPerfAnalyzerBackend creates a new CSVPerfAnalyzerBackend.
func (*CSVBackend) AddDataEntry ¶
func (p *CSVBackend) AddDataEntry(entry PerfAnalyzerEntry)
AddDataEntry adds a data entry to the CSV file.
type PerfAnalyzer ¶
type PerfAnalyzer struct {
// contains filtered or unexported fields
}
PerfAnalyzer can report performance metrics during simulation.
func (*PerfAnalyzer) AddDataEntry ¶
func (b *PerfAnalyzer) AddDataEntry(entry PerfAnalyzerEntry)
AddDataEntry adds a data entry to the database. It directly writes into the CSV file.
func (*PerfAnalyzer) GetCurrentTraffic ¶ added in v3.1.0
func (b *PerfAnalyzer) GetCurrentTraffic(comp string) string
func (*PerfAnalyzer) RegisterBuffer ¶
func (b *PerfAnalyzer) RegisterBuffer(buf sim.Buffer)
func (*PerfAnalyzer) RegisterComponent ¶
func (b *PerfAnalyzer) RegisterComponent(c sim.Component)
RegisterComponent register a component to be monitored.
func (*PerfAnalyzer) RegisterEngine ¶
func (b *PerfAnalyzer) RegisterEngine(e sim.Engine)
RegisterEngine registers the engine that is used in the simulation.
func (*PerfAnalyzer) RegisterPort ¶
func (b *PerfAnalyzer) RegisterPort(port sim.Port)
RegisterPort registers a port to be monitored.
type PerfAnalyzerBackend ¶
type PerfAnalyzerBackend interface { AddDataEntry(entry PerfAnalyzerEntry) Flush() }
PerfAnalyzerBackend is the interface that provides the service that can record performance data entries.
type PerfAnalyzerBuilder ¶
type PerfAnalyzerBuilder struct {
// contains filtered or unexported fields
}
PerfAnalyzerBuilder is a builder that can build a PerfAnalyzer.
func MakePerfAnalyzerBuilder ¶
func MakePerfAnalyzerBuilder() PerfAnalyzerBuilder
MakePerfAnalyzerBuilder creates a new PerfAnalyzerBuilder.
func (PerfAnalyzerBuilder) Build ¶
func (b PerfAnalyzerBuilder) Build() *PerfAnalyzer
Build creates a PerfAnalyzer.
func (PerfAnalyzerBuilder) WithDBFilename ¶
func (b PerfAnalyzerBuilder) WithDBFilename( filename string, ) PerfAnalyzerBuilder
WithDBFilename sets the filename of the database file.
func (PerfAnalyzerBuilder) WithEngine ¶
func (b PerfAnalyzerBuilder) WithEngine( engine sim.Engine, ) PerfAnalyzerBuilder
func (PerfAnalyzerBuilder) WithPeriod ¶
func (b PerfAnalyzerBuilder) WithPeriod( period sim.VTimeInSec, ) PerfAnalyzerBuilder
WithPeriod sets the period of the PerfAnalyzer.
func (PerfAnalyzerBuilder) WithSQLiteBackend ¶
func (b PerfAnalyzerBuilder) WithSQLiteBackend() PerfAnalyzerBuilder
WithSQLiteBackend sets the backend of the PerfAnalyzer to be a SQLite.
type PerfAnalyzerEntry ¶
type PerfAnalyzerEntry struct { EntryType string Start sim.VTimeInSec End sim.VTimeInSec Where string WhereRemote string What string Value float64 Unit string }
PerfAnalyzerEntry is a single entry in the performance database.
type PerfLogger ¶
type PerfLogger interface {
AddDataEntry(entry PerfAnalyzerEntry)
}
PerfLogger is the interface that provide the service that can record performance data entries.
type PortAnalyzer ¶
type PortAnalyzer struct { PerfLogger sim.TimeTeller // contains filtered or unexported fields }
PortAnalyzer is a hook for the amount of traffic that passes through a Port.
func (*PortAnalyzer) Func ¶
func (h *PortAnalyzer) Func(ctx sim.HookCtx)
Func writes the message information into the logger
type PortAnalyzerBuilder ¶
type PortAnalyzerBuilder struct {
// contains filtered or unexported fields
}
PortAnalyzerBuilder can build a PortAnalyzer.
func MakePortAnalyzerBuilder ¶
func MakePortAnalyzerBuilder() PortAnalyzerBuilder
MakePortAnalyzerBuilder creates a PortAnalyzerBuilder.
func (PortAnalyzerBuilder) Build ¶
func (b PortAnalyzerBuilder) Build() *PortAnalyzer
Build creates a PortAnalyzer.
func (PortAnalyzerBuilder) WithPerfLogger ¶
func (b PortAnalyzerBuilder) WithPerfLogger(l PerfLogger) PortAnalyzerBuilder
WithPerfLogger sets the logger to be used by the PortAnalyzer.
func (PortAnalyzerBuilder) WithPeriod ¶
func (b PortAnalyzerBuilder) WithPeriod(p sim.VTimeInSec) PortAnalyzerBuilder
WithPeriod sets the period to be used by the PortAnalyzer.
func (PortAnalyzerBuilder) WithPort ¶
func (b PortAnalyzerBuilder) WithPort(p sim.Port) PortAnalyzerBuilder
WithPort sets the port to be used by the PortAnalyzer.
func (PortAnalyzerBuilder) WithTimeTeller ¶
func (b PortAnalyzerBuilder) WithTimeTeller( t sim.TimeTeller, ) PortAnalyzerBuilder
WithTimeTeller sets the TimeTeller to be used by the PortAnalyzer.
type SQLiteBackend ¶
SQLiteBackend is a PerfAnalyzerBackend that writes data entries to a SQLite database.
func NewSQLitePerfAnalyzerBackend ¶
func NewSQLitePerfAnalyzerBackend( dbFilename string, ) *SQLiteBackend
NewSQLitePerfAnalyzerBackend creates a new SQLitePerfAnalyzerBackend.
func (*SQLiteBackend) AddDataEntry ¶
func (p *SQLiteBackend) AddDataEntry(entry PerfAnalyzerEntry)
func (*SQLiteBackend) Flush ¶
func (p *SQLiteBackend) Flush()