Documentation
¶
Index ¶
- type BasicIsolationSandbox
- func (s *BasicIsolationSandbox) Execute(f func() error) error
- func (s *BasicIsolationSandbox) ExecuteWithContext(ctx context.Context, f func(context.Context) error) error
- func (s *BasicIsolationSandbox) ExecuteWithTimeout(timeout time.Duration, f func() error) error
- func (s *BasicIsolationSandbox) GetConfig() api.IsolationConfig
- func (s *BasicIsolationSandbox) GetID() string
- func (s *BasicIsolationSandbox) GetStats() map[string]interface{}
- func (s *BasicIsolationSandbox) IsHealthy() bool
- func (s *BasicIsolationSandbox) Pause() error
- func (s *BasicIsolationSandbox) Resume() error
- func (s *BasicIsolationSandbox) Stop() error
- type CompleteIsolationSandbox
- func (s *CompleteIsolationSandbox) Execute(f func() error) error
- func (s *CompleteIsolationSandbox) ExecuteWithContext(ctx context.Context, f func(context.Context) error) error
- func (s *CompleteIsolationSandbox) ExecuteWithTimeout(timeout time.Duration, f func() error) error
- func (s *CompleteIsolationSandbox) GetConfig() api.IsolationConfig
- func (s *CompleteIsolationSandbox) GetID() string
- func (s *CompleteIsolationSandbox) GetStats() map[string]interface{}
- func (s *CompleteIsolationSandbox) IsHealthy() bool
- func (s *CompleteIsolationSandbox) Pause() error
- func (s *CompleteIsolationSandbox) Resume() error
- func (s *CompleteIsolationSandbox) Stop() error
- type DefaultPluginIsolator
- func (i *DefaultPluginIsolator) Close() error
- func (i *DefaultPluginIsolator) CreateSandbox(id string, config api.IsolationConfig) (PluginSandbox, error)
- func (i *DefaultPluginIsolator) DestroySandbox(id string) error
- func (i *DefaultPluginIsolator) GetSandbox(id string) (PluginSandbox, bool)
- func (i *DefaultPluginIsolator) ListSandboxes() []string
- type IsolationLevel
- type NoIsolationSandbox
- func (s *NoIsolationSandbox) Execute(f func() error) error
- func (s *NoIsolationSandbox) ExecuteWithContext(ctx context.Context, f func(context.Context) error) error
- func (s *NoIsolationSandbox) ExecuteWithTimeout(timeout time.Duration, f func() error) error
- func (s *NoIsolationSandbox) GetConfig() api.IsolationConfig
- func (s *NoIsolationSandbox) GetID() string
- func (s *NoIsolationSandbox) GetStats() map[string]interface{}
- func (s *NoIsolationSandbox) IsHealthy() bool
- func (s *NoIsolationSandbox) Pause() error
- func (s *NoIsolationSandbox) Resume() error
- func (s *NoIsolationSandbox) Stop() error
- type PluginIsolator
- type PluginSandbox
- type ResourceMonitor
- func (m *ResourceMonitor) GetResourceUsage(id string) (ResourceUsage, bool)
- func (m *ResourceMonitor) GetSystemResourceUsage() map[string]interface{}
- func (m *ResourceMonitor) RegisterSandbox(sandbox PluginSandbox)
- func (m *ResourceMonitor) Stop()
- func (m *ResourceMonitor) UnregisterSandbox(id string)
- type ResourceUsage
- type StrictIsolationSandbox
- func (s *StrictIsolationSandbox) Execute(f func() error) error
- func (s *StrictIsolationSandbox) ExecuteWithContext(ctx context.Context, f func(context.Context) error) error
- func (s *StrictIsolationSandbox) ExecuteWithTimeout(timeout time.Duration, f func() error) error
- func (s *StrictIsolationSandbox) GetConfig() api.IsolationConfig
- func (s *StrictIsolationSandbox) GetID() string
- func (s *StrictIsolationSandbox) GetStats() map[string]interface{}
- func (s *StrictIsolationSandbox) IsHealthy() bool
- func (s *StrictIsolationSandbox) Pause() error
- func (s *StrictIsolationSandbox) Resume() error
- func (s *StrictIsolationSandbox) Stop() error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BasicIsolationSandbox ¶
type BasicIsolationSandbox struct {
// contains filtered or unexported fields
}
BasicIsolationSandbox 基本隔离沙箱 提供基本的错误隔离和资源限制
func NewBasicIsolationSandbox ¶
func NewBasicIsolationSandbox(id string, config api.IsolationConfig, logger hclog.Logger) *BasicIsolationSandbox
NewBasicIsolationSandbox 创建一个新的基本隔离沙箱
func (*BasicIsolationSandbox) Execute ¶
func (s *BasicIsolationSandbox) Execute(f func() error) error
Execute 执行函数
func (*BasicIsolationSandbox) ExecuteWithContext ¶
func (s *BasicIsolationSandbox) ExecuteWithContext(ctx context.Context, f func(context.Context) error) error
ExecuteWithContext 执行带上下文的函数
func (*BasicIsolationSandbox) ExecuteWithTimeout ¶
func (s *BasicIsolationSandbox) ExecuteWithTimeout(timeout time.Duration, f func() error) error
ExecuteWithTimeout 执行带超时的函数
func (*BasicIsolationSandbox) GetConfig ¶
func (s *BasicIsolationSandbox) GetConfig() api.IsolationConfig
GetConfig 获取隔离配置
func (*BasicIsolationSandbox) GetStats ¶
func (s *BasicIsolationSandbox) GetStats() map[string]interface{}
GetStats 获取统计信息
func (*BasicIsolationSandbox) IsHealthy ¶
func (s *BasicIsolationSandbox) IsHealthy() bool
IsHealthy 检查沙箱是否健康
type CompleteIsolationSandbox ¶
type CompleteIsolationSandbox struct {
// contains filtered or unexported fields
}
CompleteIsolationSandbox 完全隔离沙箱 提供最高级别的隔离,包括容器隔离
func NewCompleteIsolationSandbox ¶
func NewCompleteIsolationSandbox(id string, config api.IsolationConfig, logger hclog.Logger) *CompleteIsolationSandbox
NewCompleteIsolationSandbox 创建一个新的完全隔离沙箱
func (*CompleteIsolationSandbox) Execute ¶
func (s *CompleteIsolationSandbox) Execute(f func() error) error
Execute 执行函数
func (*CompleteIsolationSandbox) ExecuteWithContext ¶
func (s *CompleteIsolationSandbox) ExecuteWithContext(ctx context.Context, f func(context.Context) error) error
ExecuteWithContext 执行带上下文的函数
func (*CompleteIsolationSandbox) ExecuteWithTimeout ¶
func (s *CompleteIsolationSandbox) ExecuteWithTimeout(timeout time.Duration, f func() error) error
ExecuteWithTimeout 执行带超时的函数
func (*CompleteIsolationSandbox) GetConfig ¶
func (s *CompleteIsolationSandbox) GetConfig() api.IsolationConfig
GetConfig 获取隔离配置
func (*CompleteIsolationSandbox) GetID ¶
func (s *CompleteIsolationSandbox) GetID() string
GetID 获取沙箱ID
func (*CompleteIsolationSandbox) GetStats ¶
func (s *CompleteIsolationSandbox) GetStats() map[string]interface{}
GetStats 获取统计信息
func (*CompleteIsolationSandbox) IsHealthy ¶
func (s *CompleteIsolationSandbox) IsHealthy() bool
IsHealthy 检查沙箱是否健康
func (*CompleteIsolationSandbox) Pause ¶
func (s *CompleteIsolationSandbox) Pause() error
Pause 暂停沙箱
func (*CompleteIsolationSandbox) Resume ¶
func (s *CompleteIsolationSandbox) Resume() error
Resume 恢复沙箱
type DefaultPluginIsolator ¶
type DefaultPluginIsolator struct {
// contains filtered or unexported fields
}
DefaultPluginIsolator 默认插件隔离器实现
func NewPluginIsolator ¶
func NewPluginIsolator(logger hclog.Logger) *DefaultPluginIsolator
NewPluginIsolator 创建一个新的插件隔离器
func (*DefaultPluginIsolator) CreateSandbox ¶
func (i *DefaultPluginIsolator) CreateSandbox(id string, config api.IsolationConfig) (PluginSandbox, error)
CreateSandbox 创建沙箱
func (*DefaultPluginIsolator) DestroySandbox ¶
func (i *DefaultPluginIsolator) DestroySandbox(id string) error
DestroySandbox 销毁沙箱
func (*DefaultPluginIsolator) GetSandbox ¶
func (i *DefaultPluginIsolator) GetSandbox(id string) (PluginSandbox, bool)
GetSandbox 获取沙箱
func (*DefaultPluginIsolator) ListSandboxes ¶
func (i *DefaultPluginIsolator) ListSandboxes() []string
ListSandboxes 列出所有沙箱
type IsolationLevel ¶
type IsolationLevel string
IsolationLevel 定义了隔离级别
const ( // IsolationLevelNone 无隔离 IsolationLevelNone IsolationLevel = "none" // IsolationLevelBasic 基本隔离 // 提供基本的错误隔离和资源限制 IsolationLevelBasic IsolationLevel = "basic" // IsolationLevelStrict 严格隔离 // 提供更严格的隔离,包括进程隔离 IsolationLevelStrict IsolationLevel = "strict" // IsolationLevelComplete 完全隔离 // 提供最高级别的隔离,包括容器隔离 IsolationLevelComplete IsolationLevel = "complete" )
type NoIsolationSandbox ¶
type NoIsolationSandbox struct {
// contains filtered or unexported fields
}
NoIsolationSandbox 无隔离沙箱 不提供任何隔离,直接执行函数
func NewNoIsolationSandbox ¶
func NewNoIsolationSandbox(id string, config api.IsolationConfig, logger hclog.Logger) *NoIsolationSandbox
NewNoIsolationSandbox 创建一个新的无隔离沙箱
func (*NoIsolationSandbox) Execute ¶
func (s *NoIsolationSandbox) Execute(f func() error) error
Execute 执行函数
func (*NoIsolationSandbox) ExecuteWithContext ¶
func (s *NoIsolationSandbox) ExecuteWithContext(ctx context.Context, f func(context.Context) error) error
ExecuteWithContext 执行带上下文的函数
func (*NoIsolationSandbox) ExecuteWithTimeout ¶
func (s *NoIsolationSandbox) ExecuteWithTimeout(timeout time.Duration, f func() error) error
ExecuteWithTimeout 执行带超时的函数
func (*NoIsolationSandbox) GetConfig ¶
func (s *NoIsolationSandbox) GetConfig() api.IsolationConfig
GetConfig 获取隔离配置
func (*NoIsolationSandbox) GetStats ¶
func (s *NoIsolationSandbox) GetStats() map[string]interface{}
GetStats 获取统计信息
func (*NoIsolationSandbox) IsHealthy ¶
func (s *NoIsolationSandbox) IsHealthy() bool
IsHealthy 检查沙箱是否健康
type PluginIsolator ¶
type PluginIsolator interface {
// CreateSandbox 创建沙箱
// id: 沙箱ID
// config: 隔离配置
// 返回: 沙箱和错误
CreateSandbox(id string, config api.IsolationConfig) (PluginSandbox, error)
// DestroySandbox 销毁沙箱
// id: 沙箱ID
// 返回: 错误
DestroySandbox(id string) error
// GetSandbox 获取沙箱
// id: 沙箱ID
// 返回: 沙箱和是否存在
GetSandbox(id string) (PluginSandbox, bool)
// ListSandboxes 列出所有沙箱
// 返回: 沙箱ID列表
ListSandboxes() []string
// Close 关闭隔离器
// 返回: 错误
Close() error
}
PluginIsolator 插件隔离器接口 负责提供插件的隔离环境
type PluginSandbox ¶
type PluginSandbox interface {
// GetID 获取沙箱ID
// 返回: 沙箱ID
GetID() string
// GetConfig 获取隔离配置
// 返回: 隔离配置
GetConfig() api.IsolationConfig
// Execute 执行函数
// f: 要执行的函数
// 返回: 错误
Execute(f func() error) error
// ExecuteWithContext 执行带上下文的函数
// ctx: 上下文
// f: 要执行的函数
// 返回: 错误
ExecuteWithContext(ctx context.Context, f func(context.Context) error) error
// ExecuteWithTimeout 执行带超时的函数
// timeout: 超时时间
// f: 要执行的函数
// 返回: 错误
ExecuteWithTimeout(timeout time.Duration, f func() error) error
// Pause 暂停沙箱
// 返回: 错误
Pause() error
// Resume 恢复沙箱
// 返回: 错误
Resume() error
// Stop 停止沙箱
// 返回: 错误
Stop() error
// IsHealthy 检查沙箱是否健康
// 返回: 是否健康
IsHealthy() bool
// GetStats 获取统计信息
// 返回: 统计信息
GetStats() map[string]interface{}
}
PluginSandbox 插件沙箱接口 提供隔离的执行环境
type ResourceMonitor ¶
type ResourceMonitor struct {
// contains filtered or unexported fields
}
ResourceMonitor 资源监控器 监控插件沙箱的资源使用情况
func NewResourceMonitor ¶
func NewResourceMonitor(logger hclog.Logger) *ResourceMonitor
NewResourceMonitor 创建一个新的资源监控器
func (*ResourceMonitor) GetResourceUsage ¶
func (m *ResourceMonitor) GetResourceUsage(id string) (ResourceUsage, bool)
GetResourceUsage 获取资源使用情况
func (*ResourceMonitor) GetSystemResourceUsage ¶
func (m *ResourceMonitor) GetSystemResourceUsage() map[string]interface{}
GetSystemResourceUsage 获取系统资源使用情况
func (*ResourceMonitor) RegisterSandbox ¶
func (m *ResourceMonitor) RegisterSandbox(sandbox PluginSandbox)
RegisterSandbox 注册沙箱
func (*ResourceMonitor) UnregisterSandbox ¶
func (m *ResourceMonitor) UnregisterSandbox(id string)
UnregisterSandbox 注销沙箱
type ResourceUsage ¶
type ResourceUsage struct {
// CPU使用率
CPUPercent float64
// 内存使用量
MemoryUsage uint64
// 内存使用率
MemoryPercent float32
// 磁盘读取字节数
DiskReadBytes uint64
// 磁盘写入字节数
DiskWriteBytes uint64
// 网络接收字节数
NetRecvBytes uint64
// 网络发送字节数
NetSentBytes uint64
// 线程数
NumThreads int32
// 文件描述符数
NumFDs int32
// 上次更新时间
LastUpdate time.Time
}
ResourceUsage 资源使用情况
type StrictIsolationSandbox ¶
type StrictIsolationSandbox struct {
// contains filtered or unexported fields
}
StrictIsolationSandbox 严格隔离沙箱 提供进程级别的隔离
func NewStrictIsolationSandbox ¶
func NewStrictIsolationSandbox(id string, config api.IsolationConfig, logger hclog.Logger) *StrictIsolationSandbox
NewStrictIsolationSandbox 创建一个新的严格隔离沙箱
func (*StrictIsolationSandbox) Execute ¶
func (s *StrictIsolationSandbox) Execute(f func() error) error
Execute 执行函数
func (*StrictIsolationSandbox) ExecuteWithContext ¶
func (s *StrictIsolationSandbox) ExecuteWithContext(ctx context.Context, f func(context.Context) error) error
ExecuteWithContext 执行带上下文的函数
func (*StrictIsolationSandbox) ExecuteWithTimeout ¶
func (s *StrictIsolationSandbox) ExecuteWithTimeout(timeout time.Duration, f func() error) error
ExecuteWithTimeout 执行带超时的函数
func (*StrictIsolationSandbox) GetConfig ¶
func (s *StrictIsolationSandbox) GetConfig() api.IsolationConfig
GetConfig 获取隔离配置
func (*StrictIsolationSandbox) GetStats ¶
func (s *StrictIsolationSandbox) GetStats() map[string]interface{}
GetStats 获取统计信息
func (*StrictIsolationSandbox) IsHealthy ¶
func (s *StrictIsolationSandbox) IsHealthy() bool
IsHealthy 检查沙箱是否健康