Sentinel Agent Configuration

The Sentinel Agent configuration covers service identity, discovery targets, system and process metric thresholds, notification channels, and scheduling.

Naming. Labeled Sentinel Agent in the web UI; the config file, binary, and settings keys below still use the discovery_agent / disco* names.
Tip: you don’t have to write this file by hand — the Component Config Builder generates a ready-to-run discovery_agent.json from a few guided questions. Its Express mode defaults are documented here.

Service Configuration (discovery_agent.json)

This file must be in the same directory as the executable.

Minimal Example

{
  "name": "agent-dc1",
  "port": "8070",
  "webserver": "192.168.1.100:8050",
  "sched": "5MIN",
  "processes": "nginx,mysqld,java"
}

Settings Reference

Identity & Network

Field Type Description Default
name string Unique agent identifier required
port string TCP port for the REST API "8070"
webserver string Webserver IP:port for registration required
integratorEndPoint string Integrator IP:port for data forwarding ""
probeEndPoint string Probe endpoint for URL/API monitoring ""
location string Geographic/logical location label ""
tags string Comma-separated tags ""
apps string Monitored applications ""
appName string Application name ""

Discovery Targets

Field Type Description
processes string Comma-separated process names (e.g., "nginx,mysqld,java")
ports string Comma-separated TCP ports to monitor (e.g., "80,443,3306")
urls array HTTP/HTTPS endpoints to monitor
apis array REST API endpoints to monitor
pings array Ping targets
nslookups array DNS lookup targets
tcps array TCP connection targets
dbs array Database connections
syss array System monitors

Scheduling

Field Type Description Default
sched string Discovery interval: 1MIN, 2MIN, 5MIN, 10MIN, 30MIN, 1H, 4H, 8H, 1D "5MIN"
schedMonitors string Monitor check interval same as sched
discoCapInterval string Network capture duration in seconds varies

System Metric Thresholds

CPU

Field Description
discoCPUGFixedThreshCri Critical CPU % threshold
discoCPUGFixedThreshMaj Major CPU % threshold
discoCPUGFixedThreshMin Minor CPU % threshold
discoCPUGMonEnabled Enable/disable CPU monitoring ("true"/"false")

Memory

Field Description
discoMEMGFixedThreshCri Critical memory % threshold
discoMEMGFixedThreshMaj Major memory % threshold
discoMEMGFixedThreshMin Minor memory % threshold
discoMEMGMonEnabled Enable/disable memory monitoring

Load Average (Linux only)

Field Description
discoLoadAvg5minGFixedThreshCri Critical 5-min load average threshold
discoLoadAvg5minGFixedThreshMaj Major threshold
discoLoadAvg5minGFixedThreshMin Minor threshold
discoLoadAvg5minGMonEnabled Enable/disable load average monitoring

Filesystem

Field Description
discoFSGFixedThreshCri Critical filesystem % threshold
discoFSGFixedThreshMaj Major threshold
discoFSGFixedThreshMin Minor threshold
discoFSGMonitored Which filesystems to monitor (e.g., "/,/data")

TCP Sockets

Field Description
discoTCPSocketsGFixedThreshCri Critical TCP socket count threshold
discoTCPSocketsGFixedThreshMaj Major threshold
discoTCPSocketsGFixedThreshMin Minor threshold

CPU I/O Wait (Linux only)

Field Description
discoCpuIOWaitGFixedThreshCri Critical I/O wait % threshold
discoCpuIOWaitGFixedThreshMaj Major threshold
discoCpuIOWaitGFixedThreshMin Minor threshold

Per-Process Metric Thresholds

Each process metric supports either fixed thresholds or auto-thresholds (not both).

Fixed-threshold fields left empty ("") are unset: the agent applies an internal unreachable threshold, so no alert fires for that metric until the auto-threshold baseline is computed or an explicit value is set. The web UI displays unset fields as . The legacy sentinel value 999999999999999.00 used by older releases is automatically normalized back to "" by the agent.

CPU

Field Description
discoCPUPFixedThreshCri Critical per-process CPU %
discoCPUPFixedThreshMaj Major threshold
discoCPUPFixedThreshMin Minor threshold
discoCPUPAutoThreshold "true" to auto-calculate from history
discoCPUPMonEnabled Enable/disable

Memory

Field Description
discoMEMPFixedThreshCri Critical per-process memory threshold
discoMEMPFixedThreshMaj Major threshold
discoMEMPFixedThreshMin Minor threshold
discoMEMPAutoThreshold Auto-calculate
discoMEMPMonEnabled Enable/disable

Swap

Field Description
discoSWAPPFixedThreshCri Critical swap threshold
discoSWAPPFixedThreshMaj Major threshold
discoSWAPPFixedThreshMin Minor threshold
discoSWAPPAutoThreshold Auto-calculate
discoSWAPPMonEnabled Enable/disable

I/O Read

Field Description
discoIostatReadPFixedThreshCri Critical I/O read bytes/s
discoIostatReadPFixedThreshMaj Major threshold
discoIostatReadPFixedThreshMin Minor threshold
discoIostatReadPAutoThreshold Auto-calculate

I/O Write

Field Description
discoIostatWritePFixedThreshCri Critical I/O write bytes/s
discoIostatWritePFixedThreshMaj Major threshold
discoIostatWritePFixedThreshMin Minor threshold
discoIostatWritePAutoThreshold Auto-calculate

CPU User Mode

Field Description
discoCPUUserPFixedThreshCri Critical CPU user-mode %
discoCPUUserPFixedThreshMaj Major threshold
discoCPUUserPFixedThreshMin Minor threshold

Threads

Field Description
discoNumThreadsPFixedThreshCri Critical thread count
discoNumThreadsPFixedThreshMaj Major threshold
discoNumThreadsPFixedThreshMin Minor threshold

File Descriptors (Linux only)

Field Description
discoNumFDsPFixedThreshCri Critical FD count
discoNumFDsPFixedThreshMaj Major threshold
discoNumFDsPFixedThreshMin Minor threshold

Network Traffic

Per-process network traffic thresholds use a JSON map:

{
  "trafficThresholds": {
    "nginx": {
      "operator": ">",
      "critical": 10000,
      "major": 5000,
      "minor": 1000
    },
    "mysqld": {
      "operator": ">",
      "critical": 50000,
      "major": 25000,
      "minor": 5000
    }
  }
}
Field Description
operator ">" alert when above threshold, "<" alert when below
critical Critical threshold in kbits/s
major Major threshold in kbits/s
minor Minor threshold in kbits/s

Log File & Directory Monitors

Beyond system and per-process metrics, the agent can monitor log files (pattern matches, staleness, throughput) and directories (file count, total size). These are defined as logMonitors and dirMonitors lists in the agent settings, each with its own path, schedule, and rules.

For how to define them and how they are evaluated, see System, process, log & folder monitoring.


Notification Settings

SMTP

Field Description
smtpEnabled "true" to enable email
smtpServerName Mail server hostname
smtpPort Mail server port
smtpUsername SMTP username
smtpPwd SMTP password (encrypted)
smtpTLS "true" for TLS

Slack, Teams, PagerDuty

Field Description
slackChannel Slack channel
slackToken Slack bot token
teamsWebhook Teams webhook URL
pagerDutyAPIKey PagerDuty API key

Alert Triggers

Field Description
emailOnF / emailOnSC Email on failure / status change
slackOnF / slackOnSC Slack on failure / status change
teamsOnF / teamsOnSC Teams on failure / status change
pdOnF / pdOnSC PagerDuty on failure / status change
scriptOnF / scriptOnSC Custom script on failure / status change
scriptAction Script command to execute
scriptActionT Script timeout

Alert Timing

Field Description
notifyAfter Consecutive breaches before first alert
notifyFor Continue alerting for N cycles
notifyStatus Minimum status to trigger (e.g., "CRITICAL")

Data Files

Process List (data/process_list.txt)

One process per line, with optional tags:

nginx:web,production
mysqld:database
java:application,backend
python3.12:scripts
node:frontend

Port List (data/port_list.txt)

One port per line:

80
443
3306
5432
8080

Threshold Files

  • data/process_thresholds.json – computed per-process thresholds
  • data/system_thresholds.json – computed system thresholds

Output Files

  • data/discover_metrics.json – latest collected metrics (system + process + network)
  • data/alerts.json – generated alerts from last collection cycle

Logging

Field Description Default
logLevel debug, info, warn, error "info"
maxBackups Rotated files to keep 5
maxSize Max file size (MB) 10
maxAge Max file age (days) 28
logCompress Compress rotated files "true"
backupInterval Hours between KV store backups 24
nbDaysBackup Hours to keep backups 336

Translations