The UI presents a Check is not running due to platform limits message. Not all checks are updating their health states.
The following message is reported in the StackState log (on Kubernetes this is in the checks pod logs)
2020-12-02 10:22:56,905 [...] INFO c.s.domainactors.DomainActorPoolImpl$DomainActorPoolActor - Reached the maximum amount of elements for class Check. The limit is <limit>. New items will not be started
More checks are configured than the system can handle with the currently available resources.
One of the following actions can be taken:
- If you run a Linux development setup, change to the production setup
- Reduce the amount of checks synchronized by the topology synchronization framework
- Increase the available memory (see below)
Change memory settings
If the supported amount of checks is not sufficient, the check limit can be increased by increasing the memory of the process the checks run in. The configured memory should not exceed 8GB.
For different setups, different configurations have to be changed:
- Kubernetes >= 4.2: Add to values.yaml
stackstate.components.checks.resources.limits.memory = "<memory>"
stackstate.components.checks.resources.requests.memory = "<memory>"
- Kubernetes < 4.2: Add to values.yaml
stackstate.components.server.resources.limits.memory = "<memory>"
stackstate.components.server.resources.requests.memory = "<memory>"
- Linux: Add to /opt/stackstate/etc/processmanager/processmanager-properties-overrides.conf
properties.sts-memory = "<memory>"
If the new settings are sufficient, the error will disappear