This is a known issue for the ThredCount (QOS_JVM_THREADCOUNT) monitor.
For QOS_MESSAGE messages to be stored to the database a previous bus message with the QOS_DEFINITION for the same metric type must be received by the data_engine.
For some reason, the specific monitor JVM> java.lang > Threading > Name > ThredCount (QOS_JVM_THREADCOUNT) does not send the definition on probe start or after saving the monitor. The probe though sends the QOS_DEFINITION for QOS_JVM_THREADCOUNT if activated on different monitors within the same resource.
The workaround consists in activating any other monitor for the QOS "QOS_JVM_THREADCOUNT" in order to create the definition on the DB. Once it is created, the QOS from the monitor ThredCount will be stored correctly.
1. Activate the QOS for the monitor "PeakThreadCount" (under the same folder under threading) - by default it defines: QOS_JVM_THREADCOUNT
2. Apply and save.
3. If you don't want to monitor "PeakThreadCount" deactivate it.
4. ThreadCount QOS is now stored on DB as definition was created by PeakThreadCount so ThredCount QOS is now stored.