Skip to content

agent-plugin-performance / Exports / PerformancePlugin

Class: PerformancePlugin

Collects application and system performance metrics during agent execution.

Optionally monitors memory, CPU, and network via ISystemMetricsCollector. Logs a warning when an operation exceeds the configured performanceThreshold. Currently only the memory storage strategy is implemented.

Lifecycle hooks used: AbstractPlugin.onModuleEvent | onModuleEvent

See

  • IPerformanceStorage - storage backend contract
  • ISystemMetricsCollector - system metrics collection contract
  • IPerformancePluginOptions - configuration options

Example

ts
const plugin = new PerformancePlugin({
  strategy: 'memory',
  monitorMemory: true,
  performanceThreshold: 2000,
});
await plugin.recordMetrics({ operation: 'run', duration: 1500, success: true, errorCount: 0 });

Hierarchy

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new PerformancePlugin(options): PerformancePlugin

Parameters

NameType
optionsIPerformancePluginOptions

Returns

PerformancePlugin

Overrides

AbstractPlugin< IPerformancePluginOptions, IPerformancePluginStats >.constructor

Defined in

agent-plugin-performance/src/performance-plugin.ts:67

Properties

enabled

enabled: boolean

Inherited from

AbstractPlugin.enabled

Defined in

agent-core/dist/node/index.d.ts:1049


category

category: PluginCategory

Inherited from

AbstractPlugin.category

Defined in

agent-core/dist/node/index.d.ts:1050


priority

priority: number

Inherited from

AbstractPlugin.priority

Defined in

agent-core/dist/node/index.d.ts:1051


name

name: string = 'PerformancePlugin'

Overrides

AbstractPlugin.name

Defined in

agent-plugin-performance/src/performance-plugin.ts:59


version

version: string = '1.0.0'

Overrides

AbstractPlugin.version

Defined in

agent-plugin-performance/src/performance-plugin.ts:60

Methods

initialize

initialize(options?): Promise<void>

Parameters

NameType
options?IPerformancePluginOptions

Returns

Promise<void>

Inherited from

AbstractPlugin.initialize

Defined in

agent-core/dist/node/index.d.ts:1063


subscribeToModuleEvents

subscribeToModuleEvents(eventEmitter): Promise<void>

Parameters

NameType
eventEmitterIEventEmitterPlugin

Returns

Promise<void>

Inherited from

AbstractPlugin.subscribeToModuleEvents

Defined in

agent-core/dist/node/index.d.ts:1064


unsubscribeFromModuleEvents

unsubscribeFromModuleEvents(eventEmitter): Promise<void>

Parameters

NameType
eventEmitterIEventEmitterPlugin

Returns

Promise<void>

Inherited from

AbstractPlugin.unsubscribeFromModuleEvents

Defined in

agent-core/dist/node/index.d.ts:1065


dispose

dispose(): Promise<void>

Returns

Promise<void>

Inherited from

AbstractPlugin.dispose

Defined in

agent-core/dist/node/index.d.ts:1066


enable

enable(): void

Returns

void

Inherited from

AbstractPlugin.enable

Defined in

agent-core/dist/node/index.d.ts:1067


disable

disable(): void

Returns

void

Inherited from

AbstractPlugin.disable

Defined in

agent-core/dist/node/index.d.ts:1068


isEnabled

isEnabled(): boolean

Returns

boolean

Inherited from

AbstractPlugin.isEnabled

Defined in

agent-core/dist/node/index.d.ts:1069


getConfig

getConfig(): IPluginConfig

Returns

IPluginConfig

Inherited from

AbstractPlugin.getConfig

Defined in

agent-core/dist/node/index.d.ts:1070


updateConfig

updateConfig(_config): void

Parameters

NameType
_configIPluginConfig

Returns

void

Inherited from

AbstractPlugin.updateConfig

Defined in

agent-core/dist/node/index.d.ts:1071


getData

getData(): IPluginData

Returns

IPluginData

Inherited from

AbstractPlugin.getData

Defined in

agent-core/dist/node/index.d.ts:1072


clearData

clearData(): void

Returns

void

Inherited from

AbstractPlugin.clearData

Defined in

agent-core/dist/node/index.d.ts:1073


getStatus

getStatus(): Object

Returns

Object

NameType
namestring
versionstring
enabledboolean
initializedboolean
categoryPluginCategory
prioritynumber
subscribedEventsCountnumber
hasEventEmitterboolean

Inherited from

AbstractPlugin.getStatus

Defined in

agent-core/dist/node/index.d.ts:1074


getStats

getStats(): IPerformancePluginStats

Returns

IPerformancePluginStats

Inherited from

AbstractPlugin.getStats

Defined in

agent-core/dist/node/index.d.ts:1084


beforeRun

beforeRun(input, options?): Promise<void>

Parameters

NameType
inputstring
options?IRunOptions

Returns

Promise<void>

Inherited from

AbstractPlugin.beforeRun

Defined in

agent-core/dist/node/index.d.ts:1087


afterRun

afterRun(input, response, options?): Promise<void>

Parameters

NameType
inputstring
responsestring
options?IRunOptions

Returns

Promise<void>

Inherited from

AbstractPlugin.afterRun

Defined in

agent-core/dist/node/index.d.ts:1088


beforeExecution

beforeExecution(context): Promise<void>

Parameters

NameType
contextIPluginExecutionContext

Returns

Promise<void>

Inherited from

AbstractPlugin.beforeExecution

Defined in

agent-core/dist/node/index.d.ts:1089


afterExecution

afterExecution(context, result): Promise<void>

Parameters

NameType
contextIPluginExecutionContext
resultIPluginExecutionResult

Returns

Promise<void>

Inherited from

AbstractPlugin.afterExecution

Defined in

agent-core/dist/node/index.d.ts:1090


beforeConversation

beforeConversation(context): Promise<void>

Parameters

NameType
contextIPluginExecutionContext

Returns

Promise<void>

Inherited from

AbstractPlugin.beforeConversation

Defined in

agent-core/dist/node/index.d.ts:1091


afterConversation

afterConversation(context, result): Promise<void>

Parameters

NameType
contextIPluginExecutionContext
resultIPluginExecutionResult

Returns

Promise<void>

Inherited from

AbstractPlugin.afterConversation

Defined in

agent-core/dist/node/index.d.ts:1092


beforeToolCall

beforeToolCall(toolName, parameters): Promise<void>

Parameters

NameType
toolNamestring
parametersTToolParameters

Returns

Promise<void>

Inherited from

AbstractPlugin.beforeToolCall

Defined in

agent-core/dist/node/index.d.ts:1093


beforeToolExecution

beforeToolExecution(context, toolData): Promise<void>

Parameters

NameType
contextIPluginExecutionContext
toolDataIToolExecutionContext

Returns

Promise<void>

Inherited from

AbstractPlugin.beforeToolExecution

Defined in

agent-core/dist/node/index.d.ts:1094


afterToolCall

afterToolCall(toolName, parameters, result): Promise<void>

Parameters

NameType
toolNamestring
parametersTToolParameters
resultIToolExecutionResult

Returns

Promise<void>

Inherited from

AbstractPlugin.afterToolCall

Defined in

agent-core/dist/node/index.d.ts:1095


afterToolExecution

afterToolExecution(context, toolResults): Promise<void>

Parameters

NameType
contextIPluginExecutionContext
toolResultsIPluginExecutionResult

Returns

Promise<void>

Inherited from

AbstractPlugin.afterToolExecution

Defined in

agent-core/dist/node/index.d.ts:1096


beforeProviderCall

beforeProviderCall(messages): Promise<void>

Parameters

NameType
messagesTUniversalMessage[]

Returns

Promise<void>

Inherited from

AbstractPlugin.beforeProviderCall

Defined in

agent-core/dist/node/index.d.ts:1097


afterProviderCall

afterProviderCall(messages, response): Promise<void>

Parameters

NameType
messagesTUniversalMessage[]
responseTUniversalMessage

Returns

Promise<void>

Inherited from

AbstractPlugin.afterProviderCall

Defined in

agent-core/dist/node/index.d.ts:1098


onStreamingChunk

onStreamingChunk(chunk): Promise<void>

Parameters

NameType
chunkTUniversalMessage

Returns

Promise<void>

Inherited from

AbstractPlugin.onStreamingChunk

Defined in

agent-core/dist/node/index.d.ts:1099


onError

onError(error, context?): Promise<void>

Parameters

NameType
errorError
context?IPluginErrorContext

Returns

Promise<void>

Inherited from

AbstractPlugin.onError

Defined in

agent-core/dist/node/index.d.ts:1100


onMessageAdded

onMessageAdded(message): Promise<void>

Parameters

NameType
messageTUniversalMessage

Returns

Promise<void>

Inherited from

AbstractPlugin.onMessageAdded

Defined in

agent-core/dist/node/index.d.ts:1101


onModuleEvent

onModuleEvent(eventName, eventData): Promise<void>

Records performance metrics from module lifecycle events (initialization, execution, disposal) including duration and error counts.

Parameters

NameType
eventNameTEventName
eventDataIEventEmitterEventData

Returns

Promise<void>

Overrides

AbstractPlugin.onModuleEvent

Defined in

agent-plugin-performance/src/performance-plugin.ts:149


recordMetrics

recordMetrics(metrics): Promise<void>

Records performance metrics, enriching them with system metrics (memory, CPU, network) when the corresponding monitoring options are enabled.

Parameters

NameType
metricsOmit<IPerformanceMetrics, "timestamp" | "memoryUsage" | "cpuUsage" | "networkStats">

Returns

Promise<void>

Throws

PluginError if the storage write fails

Defined in

agent-plugin-performance/src/performance-plugin.ts:202


getMetrics

getMetrics(operation?, timeRange?): Promise<IPerformanceMetrics[]>

Retrieves recorded metrics, optionally filtered by operation name and time range.

Parameters

NameType
operation?string
timeRange?Object
timeRange.startDate
timeRange.endDate

Returns

Promise<IPerformanceMetrics[]>

Throws

PluginError if the storage read fails

Defined in

agent-plugin-performance/src/performance-plugin.ts:253


getAggregatedStats

getAggregatedStats(timeRange?): Promise<IAggregatedPerformanceStats>

Get aggregated performance statistics

Parameters

NameType
timeRange?Object
timeRange.startDate
timeRange.endDate

Returns

Promise<IAggregatedPerformanceStats>

Defined in

agent-plugin-performance/src/performance-plugin.ts:273


clearMetrics

clearMetrics(): Promise<void>

Clear all performance metrics

Returns

Promise<void>

Defined in

agent-plugin-performance/src/performance-plugin.ts:292


destroy

destroy(): Promise<void>

Closes the underlying storage and releases resources.

Returns

Promise<void>

Defined in

agent-plugin-performance/src/performance-plugin.ts:306

Released under the MIT License.