Traffic Manager Metrics
Garbage Collection
{ "time": 1554204598, "message": { "0.connectionData.0.AvgConnectionDuration": 36.404666666666664, "0.connectionData.0.AvgRequestsPerConnection": 1, "0.connectionData.0.ConnectionDurationStdDev": 0.031923032437411084, "0.connectionData.0.Connections": 1, "0.connectionData.0.ConnectorUptime": "0hours2minutes7seconds", "0.connectionData.0.ConnectorUptimeSec": 127, "0.connectionData.0.Keystore": "NonSSL", "0.connectionData.0.MaxConnectionDuration": 36.451, "0.connectionData.0.MaxConnections": 2, "0.connectionData.0.MaxRequestsPerConnection": 1, "0.connectionData.0.Port": 80, "0.connectionData.0.RequestsPerConnectionStdDev": 0, "0.connectionData.0.TotalConnectionDuration": "0hours1minute49seconds", "0.connectionData.0.TotalConnectionDurationSec": 109, "0.connectionData.0.TotalConnections": 4, "0.connectionData.0.TotalRequests": 3, "0.connectionData.1.AvgConnectionDuration": "NaN", "0.connectionData.1.AvgRequestsPerConnection": "NaN", "0.connectionData.1.ConnectionDurationStdDev": 0, "0.connectionData.1.Connections": 0, "0.connectionData.1.ConnectorUptime": "0hours2minutes7seconds", "0.connectionData.1.ConnectorUptimeSec": 127, "0.connectionData.1.Keystore": "/etc/mashery-server-ssl/mashery-local.jks", "0.connectionData.1.MaxConnectionDuration": 0, "0.connectionData.1.MaxConnections": 0, "0.connectionData.1.MaxRequestsPerConnection": 0, "0.connectionData.1.Port": 443, "0.connectionData.1.RequestsPerConnectionStdDev": 0, "0.connectionData.1.TotalConnectionDuration": "0hours0minutes0seconds", "0.connectionData.1.TotalConnectionDurationSec": 0, "0.connectionData.1.TotalConnections": 0, "0.connectionData.1.TotalRequests": 0, "0.threadPoolIdleThreads": 46, "0.threadPoolMaxThreads": 500, "0.threadPoolMinThreads": 50, "0.threadPoolThreads": 50, "ingestion_time": "2019-04-02T11:29:58+00:00", "tag": "tml-tm.4a193af10aba.metrics.jvm.proxy.jetty_connection_pool" } }
Name | Field | Notes | Details |
---|---|---|---|
Max requests threads | 0.threadPoolMaxThreads | Denotes the maximum concurrent requests possible on this Traffic manager instance | |
Inital number of threads | 0.threadPoolMinThreads | Threads to be created on startup | |
Current created threads | 0.threadPoolThreads | Number of threads created in the pool | |
Idle Threads | 0.threadPoolIdleThreads | Number of threads created but not utilized | A high value of idle threads denotes low utilization of this instance. Check if other traffic manager instances are over-loaded |
Total connections since start | 0.connectionData.0.TotalConnections | Number of connection requests to this instance | |
Avg time for requests | 0.connectionData.0.AvgConnectionDuration | Average time taken by the this instance to server traffic | A low value denotes high throughput |
Metric | Field Name / Computation | Notes |
---|---|---|
Efficiency | ratio of 0.threadPoolThreads/0.threadPoolMaxThreads | This ratio provides the utilization of this Traffic Manager. An ideal range is 75%-80%.
Low water mark - 80% High water mark 90% A continuous breach of high water mark indicates that this Traffic Manager instance is over loaded. |
Under-utilization | ratio of 0.threadPoolIdleThreads/0.threadPoolMaxThreads | A very high ratio denotes that the Traffic Manager is handling fewer calls and might indicate deficiency in load balancing rules. |
Max connections | 0.connectionData.0.MaxConnections+0.connectionData.0.MaxConnections | This is the maximum limit this Traffic Manager instance can serve requests. |
Memory Utilization
Memory utilization is a combination of current usage + garbage collection (GC) metrics.
Current Usage{ "time": 1554205856, "message": { "0.HeapMemoryUsage.committed": 39088128, "0.HeapMemoryUsage.init": 33554432, "0.HeapMemoryUsage.max": 1037959168, "0.HeapMemoryUsage.used": 25810688, "ingestion_time": "2019-04-02T11:50:56+00:00", "tag": "tml-tm.4a193af10aba.metrics.jvm.proxy.memory.heap" } }
{ "time": 1554205856, "message": { "0.NonHeapMemoryUsage.committed": 58982400, "0.NonHeapMemoryUsage.init": 2555904, "0.NonHeapMemoryUsage.max": -1, "0.NonHeapMemoryUsage.used": 54043656, "ingestion_time": "2019-04-02T11:50:56+00:00", "tag": "tml-tm.4a193af10aba.metrics.jvm.proxy.memory.non_heap" } }Diagnostic Recipe / Alerts
Metric | Field Name / Computation | Unit | Data Type | Notes | Details |
---|---|---|---|---|---|
Current usage | 0.HeapMemoryUsage.used + 0.NonHeapMemoryUsage.used | Bytes | Number | https://docs.oracle.com/javase/9/docs/api/java/lang/management/MemoryUsage.html | |
Committed memory | 0.NonHeapMemoryUsage.committed + 0.HeapMemoryUsage.committed | Bytes | Number | Guaranteed to be available to the JVM | |
Max memory | Mostly undefined to rely on available resources of system | Bytes | Number | Total allocated memory to the JVM | |
High Usage | Ratio of Used/Committed | N/A | Number | Used should always be lower than Committed. If Used>Committed, then the JVM can run Out of memory and stop. A high watermark of 80% can indicate that the JVM needs more memory |
Garbage collection (GC) for the JVM is split into Young and Old GC. Old GC should be low for Traffic manager.
Old GC can also include full GC and sometimes only tenured space reclamation.
Young GC tries to recover transient, short-lived objects from Eden and Survivor space. (more details at https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html#gdeao)
{ "time": 1554206878, "message": { "memoryUsageAfterGc.CodeCache.committed": 9175040, "memoryUsageAfterGc.CodeCache.init": 2555904, "memoryUsageAfterGc.CodeCache.max": 251658240, "memoryUsageAfterGc.CodeCache.used": 9141504, "memoryUsageAfterGc.CompressedClassSpace.committed": 4849664, "memoryUsageAfterGc.CompressedClassSpace.init": 0, "memoryUsageAfterGc.CompressedClassSpace.max": 1073741824, "memoryUsageAfterGc.CompressedClassSpace.used": 3764240, "memoryUsageAfterGc.EdenSpace.committed": 9109504, "memoryUsageAfterGc.EdenSpace.init": 8912896, "memoryUsageAfterGc.EdenSpace.max": 286326784, "memoryUsageAfterGc.EdenSpace.used": 0, "memoryUsageAfterGc.Metaspace.committed": 36306944, "memoryUsageAfterGc.Metaspace.init": 0, "memoryUsageAfterGc.Metaspace.max": -1, "memoryUsageAfterGc.Metaspace.used": 32641584, "memoryUsageAfterGc.SurvivorSpace.committed": 1114112, "memoryUsageAfterGc.SurvivorSpace.init": 1114112, "memoryUsageAfterGc.SurvivorSpace.max": 35782656, "memoryUsageAfterGc.SurvivorSpace.used": 0, "memoryUsageAfterGc.TenuredGen.committed": 22413312, "memoryUsageAfterGc.TenuredGen.init": 22413312, "memoryUsageAfterGc.TenuredGen.max": 715849728, "memoryUsageAfterGc.TenuredGen.used": 16019432, "ingestion_time": "2019-04-02T12:07:58+00:00", "tag": "tml-tm.4a193af10aba.metrics.jvm.proxy.old_gc" } }{ "time": 1554206878, "message": { "memoryUsageBeforeGc.CodeCache.committed": 9175040, "memoryUsageBeforeGc.CodeCache.init": 2555904, "memoryUsageBeforeGc.CodeCache.max": 251658240, "memoryUsageBeforeGc.CodeCache.used": 9141504, "memoryUsageBeforeGc.CompressedClassSpace.committed": 4849664, "memoryUsageBeforeGc.CompressedClassSpace.init": 0, "memoryUsageBeforeGc.CompressedClassSpace.max": 1073741824, "memoryUsageBeforeGc.CompressedClassSpace.used": 3764240, "memoryUsageBeforeGc.EdenSpace.committed": 9109504, "memoryUsageBeforeGc.EdenSpace.init": 8912896, "memoryUsageBeforeGc.EdenSpace.max": 286326784, "memoryUsageBeforeGc.EdenSpace.used": 7199984, "memoryUsageBeforeGc.Metaspace.committed": 36306944, "memoryUsageBeforeGc.Metaspace.init": 0, "memoryUsageBeforeGc.Metaspace.max": -1, "memoryUsageBeforeGc.Metaspace.used": 32641584, "memoryUsageBeforeGc.SurvivorSpace.committed": 1114112, "memoryUsageBeforeGc.SurvivorSpace.init": 1114112, "memoryUsageBeforeGc.SurvivorSpace.max": 35782656, "memoryUsageBeforeGc.SurvivorSpace.used": 1114112, "memoryUsageBeforeGc.TenuredGen.committed": 22413312, "memoryUsageBeforeGc.TenuredGen.init": 22413312, "memoryUsageBeforeGc.TenuredGen.max": 715849728, "memoryUsageBeforeGc.TenuredGen.used": 15496552, "ingestion_time": "2019-04-02T12:07:58+00:00", "tag": "tml-tm.4a193af10aba.metrics.jvm.proxy.old_gc" } }{ "time": 1554206878, "message": { "collectionCount": 2, "collectionTime": 88, "name": "MarkSweepCompact", "gcStartTime": 4300, "gcEndTime": 4353, "gcDuration": 53, "ingestion_time": "2019-04-02T12:07:58+00:00", "tag": "tml-tm.4a193af10aba.metrics.jvm.proxy.old_gc" } }
{ "time": 1554207478, "message": { "memoryUsageAfterGc.CodeCache.committed": 15925248, "memoryUsageAfterGc.CodeCache.init": 2555904, "memoryUsageAfterGc.CodeCache.max": 251658240, "memoryUsageAfterGc.CodeCache.used": 15751744, "memoryUsageAfterGc.CompressedClassSpace.committed": 5242880, "memoryUsageAfterGc.CompressedClassSpace.init": 0, "memoryUsageAfterGc.CompressedClassSpace.max": 1073741824, "memoryUsageAfterGc.CompressedClassSpace.used": 4136776, "memoryUsageAfterGc.EdenSpace.committed": 11010048, "memoryUsageAfterGc.EdenSpace.init": 8912896, "memoryUsageAfterGc.EdenSpace.max": 286326784, "memoryUsageAfterGc.EdenSpace.used": 0, "memoryUsageAfterGc.Metaspace.committed": 41418752, "memoryUsageAfterGc.Metaspace.init": 0, "memoryUsageAfterGc.Metaspace.max": -1, "memoryUsageAfterGc.Metaspace.used": 37438280, "memoryUsageAfterGc.SurvivorSpace.committed": 1376256, "memoryUsageAfterGc.SurvivorSpace.init": 1114112, "memoryUsageAfterGc.SurvivorSpace.max": 35782656, "memoryUsageAfterGc.SurvivorSpace.used": 547192, "memoryUsageAfterGc.TenuredGen.committed": 26701824, "memoryUsageAfterGc.TenuredGen.init": 22413312, "memoryUsageAfterGc.TenuredGen.max": 715849728, "memoryUsageAfterGc.TenuredGen.used": 18922936, "ingestion_time": "2019-04-02T12:17:58+00:00", "tag": "tml-tm.4a193af10aba.metrics.jvm.proxy.young_gc" } }{ "time": 1554207478, "message": { "memoryUsageBeforeGc.CodeCache.committed": 15925248, "memoryUsageBeforeGc.CodeCache.init": 2555904, "memoryUsageBeforeGc.CodeCache.max": 251658240, "memoryUsageBeforeGc.CodeCache.used": 15751744, "memoryUsageBeforeGc.CompressedClassSpace.committed": 5242880, "memoryUsageBeforeGc.CompressedClassSpace.init": 0, "memoryUsageBeforeGc.CompressedClassSpace.max": 1073741824, "memoryUsageBeforeGc.CompressedClassSpace.used": 4136776, "memoryUsageBeforeGc.EdenSpace.committed": 11010048, "memoryUsageBeforeGc.EdenSpace.init": 8912896, "memoryUsageBeforeGc.EdenSpace.max": 286326784, "memoryUsageBeforeGc.EdenSpace.used": 11010048, "memoryUsageBeforeGc.Metaspace.committed": 41418752, "memoryUsageBeforeGc.Metaspace.init": 0, "memoryUsageBeforeGc.Metaspace.max": -1, "memoryUsageBeforeGc.Metaspace.used": 37438280, "memoryUsageBeforeGc.SurvivorSpace.committed": 1376256, "memoryUsageBeforeGc.SurvivorSpace.init": 1114112, "memoryUsageBeforeGc.SurvivorSpace.max": 35782656, "memoryUsageBeforeGc.SurvivorSpace.used": 523144, "memoryUsageBeforeGc.TenuredGen.committed": 26701824, "memoryUsageBeforeGc.TenuredGen.init": 22413312, "memoryUsageBeforeGc.TenuredGen.max": 715849728, "memoryUsageBeforeGc.TenuredGen.used": 18922936, "ingestion_time": "2019-04-02T12:17:58+00:00", "tag": "tml-tm.4a193af10aba.metrics.jvm.proxy.young_gc" } }{ "time": 1554207478, "message": { "collectionCount": 19, "collectionTime": 83, "name": "Copy", "gcStartTime": 2950514, "gcEndTime": 2950518, "gcDuration": 4, "ingestion_time": "2019-04-02T12:17:58+00:00", "tag": "tml-tm.4a193af10aba.metrics.jvm.proxy.young_gc" } }Diagnostic Recipes / Alerts
Oracle's Garbage Collection Tuning guide: https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/index.html
{ "time": 1555422289, "message": { "tag": "tml-tm.tm-deploy-0-5d6f55b566-zdplp.metrics.jvm.proxy.threading", "ingestion_time": "2019-04-16T13:44:49+00:00", "TML_CLUSTER_NAME": "Tibco Mashery Local Reference Cluster Pune", "TML_ZONE_NAME": "us-east-1e", "0.AllThreadIds.0": 151, "0.AllThreadIds.1": 150, "0.AllThreadIds.2": 149, "0.AllThreadIds.3": 105, "0.AllThreadIds.4": 104, "0.AllThreadIds.5": 100, "0.AllThreadIds.6": 99, "0.AllThreadIds.7": 98, "0.AllThreadIds.8": 97, "0.AllThreadIds.9": 96, "0.AllThreadIds.10": 95, "0.AllThreadIds.11": 94, "0.AllThreadIds.12": 93, "0.AllThreadIds.13": 92, "0.AllThreadIds.14": 91, "0.AllThreadIds.15": 90, "0.AllThreadIds.16": 89, "0.AllThreadIds.17": 88, "0.AllThreadIds.18": 87, "0.AllThreadIds.19": 86, "0.AllThreadIds.20": 85, "0.AllThreadIds.21": 84, "0.AllThreadIds.22": 83, "0.AllThreadIds.23": 82, "0.AllThreadIds.24": 81, "0.AllThreadIds.25": 80, "0.AllThreadIds.26": 79, "0.AllThreadIds.27": 78, "0.AllThreadIds.28": 77, "0.AllThreadIds.29": 76, "0.AllThreadIds.30": 75, "0.AllThreadIds.31": 74, "0.AllThreadIds.32": 73, "0.AllThreadIds.33": 72, "0.AllThreadIds.34": 71, "0.AllThreadIds.35": 70, "0.AllThreadIds.36": 69, "0.AllThreadIds.37": 68, "0.AllThreadIds.38": 67, "0.AllThreadIds.39": 66, "0.AllThreadIds.40": 65, "0.AllThreadIds.41": 64, "0.AllThreadIds.42": 63, "0.AllThreadIds.43": 62, "0.AllThreadIds.44": 61, "0.AllThreadIds.45": 60, "0.AllThreadIds.46": 59, "0.AllThreadIds.47": 58, "0.AllThreadIds.48": 57, "0.AllThreadIds.49": 56, "0.AllThreadIds.50": 55, "0.AllThreadIds.51": 54, "0.AllThreadIds.52": 53, "0.AllThreadIds.53": 52, "0.AllThreadIds.54": 51, "0.AllThreadIds.55": 50, "0.AllThreadIds.56": 49, "0.AllThreadIds.57": 48, "0.AllThreadIds.58": 47, "0.AllThreadIds.59": 46, "0.AllThreadIds.60": 45, "0.AllThreadIds.61": 44, "0.AllThreadIds.62": 43, "0.AllThreadIds.63": 42, "0.AllThreadIds.64": 41, "0.AllThreadIds.65": 40, "0.AllThreadIds.66": 39, "0.AllThreadIds.67": 38, "0.AllThreadIds.68": 37, "0.AllThreadIds.69": 36, "0.AllThreadIds.70": 35, "0.AllThreadIds.71": 34, "0.AllThreadIds.72": 33, "0.AllThreadIds.73": 32, "0.AllThreadIds.74": 31, "0.AllThreadIds.75": 30, "0.AllThreadIds.76": 29, "0.AllThreadIds.77": 28, "0.AllThreadIds.78": 27, "0.AllThreadIds.79": 26, "0.AllThreadIds.80": 25, "0.AllThreadIds.81": 24, "0.AllThreadIds.82": 21, "0.AllThreadIds.83": 20, "0.AllThreadIds.84": 19, "0.AllThreadIds.85": 17, "0.AllThreadIds.86": 15, "0.AllThreadIds.87": 12, "0.AllThreadIds.88": 11, "0.AllThreadIds.89": 10, "0.AllThreadIds.90": 4, "0.AllThreadIds.91": 3, "0.AllThreadIds.92": 2, "0.CurrentThreadCpuTime": 2345099757, "0.CurrentThreadCpuTimeSupported": "true", "0.CurrentThreadUserTime": 1760000000, "0.DaemonThreadCount": 17, "0.ObjectMonitorUsageSupported": "true", "0.ObjectName.canonicalKeyPropertyListString": "type=Threading", "0.ObjectName.canonicalName": "java.lang:type=Threading", "0.ObjectName.domain": "java.lang", "0.ObjectName.domainPattern": "false", "0.ObjectName.keyPropertyList.type": "Threading", "0.ObjectName.keyPropertyListString": "type=Threading", "0.ObjectName.pattern": "false", "0.ObjectName.propertyListPattern": "false", "0.ObjectName.propertyPattern": "false", "0.ObjectName.propertyValuePattern": "false", "0.PeakThreadCount": 95, "0.SynchronizerUsageSupported": "true", "0.ThreadAllocatedMemoryEnabled": "true", "0.ThreadAllocatedMemorySupported": "true", "0.ThreadContentionMonitoringEnabled": "false", "0.ThreadContentionMonitoringSupported": "true", "0.ThreadCount": 93, "0.ThreadCpuTimeEnabled": "true", "0.ThreadCpuTimeSupported": "true", "0.TotalStartedThreadCount": 144 } }
Metric | Field Name / Computation | Unit | Data Type | Details |
---|---|---|---|---|
Max Used Threads | 0.PeakThreadCount | NA | Number | Represents peak live thread count since the JVM started or the peak was reset. |
Current Thread Count | 0.ThreadCount | NA | Number | Represents current number of live daemon and non-daemon threads. |
Started Thread Count | 0.TotalStartedThreadCount | NA | Number | Total number of threads created and/or started since the JVM started. |