mirror of
https://github.com/jamenai/opensim-addon-modules-exp.git
synced 2026-07-27 21:10:25 +00:00
added configuration files to OpenSimRegionWarmupHealthGuard Module
This commit is contained in:
@@ -16,6 +16,7 @@ Curated add-on modules for OpenSimulator (OpenSim). Each module is focused on a
|
||||
|---|---|---|---|
|
||||
| SceneSnapshot | Automatic region snapshots (OAR) with retention and one-step restore, executed inside the simulator. | Interval-based snapshots; hourly/daily retention; console commands (create/list/restore/prune/status); atomic writes; optional merge-restore. | Folder: [modules/OpenSimSceneSnapshot](modules/OpenSimSceneSnapshot) • README: [modules/OpenSimSceneSnapshot/README.MD](modules/OpenSimSceneSnapshot/README.MD) • Config: [SceneSnapshot.ini.example](modules/OpenSimSceneSnapshot/bin/config-include/SceneSnapshot.ini.example) |
|
||||
| ConcurrentFlotsamAssetCache | High-throughput asset cache with multi-layer design, in-flight de-duplication and safe on-disk persistence. | WeakRef/memory/file cache layers; atomic replace/move; negative cache; periodic cleanup; console tooling; upstream de-dup. | Folder: [modules/OpenSimConcurrentFlotsamAssetCache](modules/OpenSimConcurrentFlotsamAssetCache) • README: [modules/OpenSimConcurrentFlotsamAssetCache/README.MD](modules/OpenSimConcurrentFlotsamAssetCache/README.MD) • Commands: [COMMANDS.MD](modules/OpenSimConcurrentFlotsamAssetCache/COMMANDS.MD) • Migration: [MIGRATION.MD](modules/OpenSimConcurrentFlotsamAssetCache/MIGRATION.MD) • Comparison: [COMPARISON.MD](modules/OpenSimConcurrentFlotsamAssetCache/COMPARISON.MD) • Config: [ConcurrentFlotsamAssetCache.ini.example](modules/OpenSimConcurrentFlotsamAssetCache/bin/config-include/ConcurrentFlotsamAssetCache.ini.example) |
|
||||
| OpenSimRegionWarmupHealthGuard | Region warmup, health monitoring and self-healing toolset (multiple region modules in one assembly). | HealthMonitor with thresholds + CSV; Prometheus metrics exporter; Webhook alerts (batch + rate-limit); Region warmup (terrain touch, asset pre-touch, VM prime); Auto-heal (dry-run by default); Policy engine for time-based overlays. | Folder: [modules/OpenSimRegionWarmupHealthGuard](modules/OpenSimRegionWarmupHealthGuard) • Docs: [doc/RegionHealthMonitor.md](modules/OpenSimRegionWarmupHealthGuard/doc/RegionHealthMonitor.md) • [doc/RegionMetricsExporter.md](modules/OpenSimRegionWarmupHealthGuard/doc/RegionMetricsExporter.md) • [doc/RegionWebhookAlerts.md](modules/OpenSimRegionWarmupHealthGuard/doc/RegionWebhookAlerts.md) • [doc/RegionWarmup.md](modules/OpenSimRegionWarmupHealthGuard/doc/RegionWarmup.md) • [doc/RegionAutoHeal.md](modules/OpenSimRegionWarmupHealthGuard/doc/RegionAutoHeal.md) • [doc/RegionPolicyEngine.md](modules/OpenSimRegionWarmupHealthGuard/doc/RegionPolicyEngine.md) |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
[Modules]
|
||||
|
||||
; Enable/Disable RegionAutoHeal module
|
||||
RegionAutoHeal = enabled
|
||||
|
||||
; Enable/Disable RegionHealthMonitor module
|
||||
RegionHealthMonitor = enabled
|
||||
|
||||
; Enable/Disable RegionHealthMonitor module
|
||||
RegionMetricsExporter = enabled
|
||||
|
||||
; Enable/Disable RegionHealthMonitor module
|
||||
RegionPolicyEngine = enabled
|
||||
|
||||
; Enable/Disable RegionHealthMonitor module
|
||||
RegionWarmup = enabled
|
||||
|
||||
; Enable/Disable RegionHealthMonitor module
|
||||
RegionWebhookAlerts = enabled
|
||||
|
||||
; Additional configuration files to include
|
||||
Include-RegionWarmupHealthGuard = "config-include/RegionWarmupHealthGuard.ini"
|
||||
+127
@@ -0,0 +1,127 @@
|
||||
[RegionAutoHeal]
|
||||
|
||||
; Sicherer Start: nur simulieren (Logs/Alerts), keine Änderungen
|
||||
DryRun = true
|
||||
|
||||
; Echte Script-Resets nur bei expliziter Freigabe
|
||||
EnableScriptReset = false
|
||||
|
||||
; Best-Effort-Drosselung „lauter“ Updater
|
||||
ThrottleHeavyUpdaters = true
|
||||
|
||||
ThrottleThresholdUpdatesPerSec = 30
|
||||
|
||||
; Ab wann reagiert werden soll (Skriptfehler-Burst)
|
||||
ScriptErrorBurstThreshold = 25
|
||||
|
||||
; Sperrzeit zwischen Eingriffen (Sekunden)
|
||||
CooldownSec = 60
|
||||
|
||||
|
||||
[RegionHealthMonitor]
|
||||
|
||||
HealthIntervalSec = 30
|
||||
|
||||
WarnScriptTimeMs = 12.0
|
||||
|
||||
WarnPhysicsTimeMs = 6.0
|
||||
|
||||
WarnNetTimeMs = 6.0
|
||||
|
||||
WarnScriptErrors = 10
|
||||
|
||||
; Optional CSV export (leave empty to disable)
|
||||
MetricsExportFile =
|
||||
|
||||
|
||||
[RegionMetricsExporter]
|
||||
|
||||
; This module reads HealthSamples from the RegionHealthMonitor (IRegionHealthBus). Ensure that RegionHealthMonitor is active.
|
||||
; In multi-region processes, each region should use its own port (or create a shared, process-wide export instance).
|
||||
; Endpoint: http://BindAddress:HttpPort/metrics
|
||||
; Pull-only, minimal resource consumption.
|
||||
|
||||
; HTTP pull endpoint for Prometheus (low overhead)
|
||||
HttpPort = 9109
|
||||
|
||||
; Bind only to loopback by default (recommended). Set 0.0.0.0 to expose network-wide.
|
||||
BindAddress = 127.0.0.1
|
||||
|
||||
; Metric name prefix
|
||||
MetricsPrefix = opensim_region_
|
||||
|
||||
; Include region name as a label
|
||||
IncludeRegionLabel = true
|
||||
|
||||
|
||||
[RegionPolicyEngine]
|
||||
|
||||
; The overlays are intentionally generic (key=value). A module that supports overlays optionally implements IPolicyOverlayConsumer and maps relevant keys to internal settings.
|
||||
; The included modules also work without overlay support. You can gradually add overlay support to individual modules (e.g., HealthMonitor: HealthIntervalSec, WebhookAlerts: MinSeverity, Warmup: DeepWarmupLimit, AutoHeal: ThrottleHeavyUpdaters).
|
||||
; The cron field is greatly simplified here (hourly window). A parser could be added later for true cron behavior.
|
||||
|
||||
Enabled = true
|
||||
; Prüfintervall (Sekunden)
|
||||
CheckIntervalSec = 60
|
||||
|
||||
; Liste von Profilen (kommasepariert)
|
||||
Profiles = Nightly,Event
|
||||
|
||||
; Einfaches Stundenfenster (Beispiele):
|
||||
; 20-6 -> zwischen 20:00 und 06:59
|
||||
; 8-18 -> zwischen 08:00 und 18:59
|
||||
; 22 -> genau um 22 Uhr
|
||||
Nightly.Cron = * * 20-6
|
||||
|
||||
; Key=Value;Key=Value (Overlays, die die Module verstehen müssen)
|
||||
Nightly.Overrides = HealthIntervalSec=60; DeepWarmupLimit=400; MinSeverity=Error
|
||||
|
||||
Event.Cron =
|
||||
|
||||
Event.Overrides = ThrottleHeavyUpdaters=false
|
||||
|
||||
|
||||
[RegionWarmup]
|
||||
|
||||
; Sofortiges Warmup bei Regionstart
|
||||
WarmupOnRegionLoaded = true
|
||||
|
||||
; Einzelne Warmup-Schritte
|
||||
TouchTerrain = true
|
||||
|
||||
PreloadAssets = true
|
||||
|
||||
PrimeScriptVM = true
|
||||
|
||||
; Optionaler tiefer Warmup-Scan (Anzahl Objekte) nach Verzögerung
|
||||
DeepWarmupLimit = 200
|
||||
|
||||
DeepWarmupDelaySec = 30
|
||||
|
||||
|
||||
[RegionWebhookAlerts]
|
||||
|
||||
; Supports generic JSON. The payload is an array of events.
|
||||
; Batching + rate limit prevents spam. Reduce BatchWindowSec for immediate delivery.
|
||||
; Subscribes to health events from the RegionHealthMonitor (IRegionHealthBus). Ensure this is enabled.
|
||||
|
||||
; Generic JSON webhook endpoint (e.g., n8n webhook URL)
|
||||
Url = https://your-n8n-host/webhook/abc123
|
||||
|
||||
; Minimal severity to send: Trace|Info|Warn|Error (default Warn)
|
||||
MinSeverity = Warn
|
||||
|
||||
; Collect incidents for N seconds and send in one POST
|
||||
BatchWindowSec = 10
|
||||
|
||||
; Max POSTs per minute (rate limit)
|
||||
RateLimitPerMin = 20
|
||||
|
||||
; Timeouts (ms)
|
||||
ConnectTimeoutMs = 5000
|
||||
SendTimeoutMs = 5000
|
||||
|
||||
; Which fields to include in payload.
|
||||
; Available keys:
|
||||
; ts,region,severity,message,metrics,agents,prims,scriptMs,physMs,netMs,scriptErrors,uptime
|
||||
PayloadFields = region,agents,prims,scriptMs,physMs,netMs,scriptErrors,uptime,severity,message,ts
|
||||
Reference in New Issue
Block a user