added configuration files to OpenSimRegionWarmupHealthGuard Module

This commit is contained in:
Lordfox
2025-10-05 19:12:43 +02:00
parent 17d42c379b
commit 473fc3b642
3 changed files with 150 additions and 0 deletions
+1
View File
@@ -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"
@@ -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