Metrics
When running in either a standalone or clustered environment, the Connection Server uses dropwizard/codahale to collect metrics. You can configure metrics to be sent to a number of different destinations in the configuration file of the Connection Server.
As of v.9.0, metrics are reported for a Connection Server running in a cluster as well as running in standalone mode.
The following table lists and describes some of the more important metrics that are gathered and displayed in the default Grafana dashboard:
Important Metrics
Type
Name
Description
Memory Usage
cxserver.jvm.memory_usage.total.used
Represents the amount of memory currently used (in bytes).
cxserver.jvm.memory_usage.total.committed
Represents the amount of memory (in bytes) that is guaranteed to be available for use by the Java VirtuaMl achine. The amount of committed memory may increase or decrease over time. The Java virtual machine may release memory to the system, and total.committed could be less than init. total.committed will always be greater than or equal to total.used.
cxserver.jvm.memory_usage.total.init
Represents the amount of memory (in bytes) that is available for use by the Java Virtual Machine at initialization.
cxserver.jvm.memory_usage.total.max
Represents the maximum amount of memory (in bytes) that is available for use by the Java Virtual Machine.
Clients Connected
cxserver.connections.client
Reports the number of clients connected to the Connection Server. The type of this metric is Count.
cxserver.alwayson.endpointmanager.totalConnectionsMeter
Reports the total number of connections that the Connection Server has received since it was last started. The type of this metric is Meter.
cxserver.alwayson.endpointmanager.closedConnectionsMeter
Reports the total number of connections that have been closed since the Connection Server last started. The type of this metric is Meter.
Servers Connected To the Connection Server
cxserver.server.connections
When the Connection Server is running in a High Availability deployment, this metric reports the number of ThingWorx Platform instances to which the Connection Server is connected. In non-HA mode, connecting to multiple platform instances is not supported, so this metric should always report a single connection.
Messages Received
cxserver.client.messageRate
Reports the number of messages received from clients. The type of this metric is Meter.
The cxserver.server.messageRate metric has been split into multiple metrics. See the table below, Table 5.
Reports the number of messages received from the ThingWorx Platform. The type of this metric is Meter.
Message Throughput
cxserver.client.messageThroughputMeter
Reports the amount of data (in bytes) that has been received from clients.The type of this metric is Meter.
cxserver.server.messageThroughputMeter
Reports the amount of data (in bytes) that has been received from a ThingWorx platform.The type of this metric is Meter.
cxserver.client.messageThroughputHistogram
A histogram that reports the amount of data (in bytes) that has been received from clients. This histogram records the same data as the cxserver.client.messageThroughputMeter metric above, but it allows you to extract different types of data.
cxserver.server.messageThroughputHistogram
A histogram that reports the amount of data (in bytes) that has been received from a ThingWorx Platform. This histogram records the same data as the cxserver.server.messageThroughputMeter metric above, but it allows you to extract different types of data.
cxserver.alwayson.multiplexingendpoint.totalMessageResponseMeter
Tracks the number of response messages from the ThingWorx Platform back to the edge.The type of this metric is Meter.
cxserver_alwayson.endpoint.overMaxMessageSize
Tracks the number of messages that have been rejected because they are too large. That is they exceed the size limit set in the property, websockets.max-msg-size-bytes. If this metric increases significantly, consider changing the limit (by default, 1MB). See Adjusting the transport Settings for details on changing this setting. The type of this metric is Meter.
cxserver_alwayson.endpoint.authMessageMeter
Tracks the number of incoming authentication messages. The type of this metric is Meter.
cxserver_alwayson.endpoint.bindMessageMeter
Tracks the number of incoming bind messages. The type of this metric is Meter.
cxserver_alwayson.endpoint.unbindMessageMeter
Tracks the number of incoming unbind messages. The type of this metric is Meter.
cxserver_alwayson.endpoint.apiRequestMessageMeter
Tracks the number of incoming apiRequest messages. The type of this metric is Meter.
* 
For multi-part messages, this metric counts each part of a message as 1.
CPU Information
cxserver.jvm.cpuProcessCPUTime
Reports the CPU time (or process time) is the amount of time that a CPU was used to process instructions of a computer program or operating system.
cxserver.jvm.cpuProcessLoad
Reports the amount of load that the Connection Server is putting on the CPU.
cxserver.jvm.cpu.processors
Reports the number of CPU processors.
File Descriptor ratio
cxserver.jvm.file_descriptor_ratio
Reports the ratio of open file descriptors (or sockets) to the maximum number of file descriptors. If all file descriptors are in use, you cannot open any more sockets for network communication or opening files. If the ratio continues to increase, it can indicate that there is a file descriptor leak.
JVM Heap
cxserver.jvm.memory_usage.heap.usage
Reports the amount of memory currently used (in GB).
cxserver.jvm.memory_usage.heap.committed
Reports the amount of memory guaranteed to be available.
cxserver.jvm.memory_usage.heap.init
Reports the amount of memory available at initialization.
cxserver.jvm.memory_usage.heap.max
Reports the maximum amount of memory that is available.
cxserver.jvm.memory_usage.
heap.used
Reports the amount of memory that has been used.
JVM Non-Heap
cxserver.jvm.memory_usage.non-heap.committed
cxserver.jvm.memory_usage.non-heap.init
cxserver.jvm.memory_usage.non-heap.max
cxserver.jvm.memory_usage.non-heap.usage
cxserver.jvm.memory_usage.non-heap.used
When using the Connection Server in a ThingWorx Clustering environment, additional metrics are captured on a per platform basis. The per platform metrics have an identifier (ID) for the platform suffixed to the metric name to identify which platform the metric is for. This identifier is either of the following:
The PLATFORM_Id service discovery tag for that platform.
The {platformHost}:{platformPort} if the service discovery tag is not specified.
The following table describes these metrics:
Type
Name
Description
Messages Received
cxserver.cxToPlatform.messageRate.{platformid}
A meter that reports the number of messages sent from the Connection Server to the ThingWorx Platform instance specified by the {platformId}.
cxserver.server.read.messageRate.{platformid}
A meter that reports the number of messages received from the ThingWorx Platform specified by the {platformId}.
Message Throughput
cxserver.cxToPlatform.messageThroughputMeter.{platformId}
A meter that reports the amount of data in bytes sent from the Connection Server to the ThingWorx Platform specified by the {platformId}.
cxserver.cxToPlatform.messageThroughputHistogram.{platformId}
A histogram that reports the amount of data in bytes sent from the Connection Server to the ThingWorx Platform specified by the {platformId}.
This records the same data as the meter above but allows you to extract different types of data.
cxserver.server.messageThroughputMeter.{platformId}
A meter that reports the amount of data in bytes sent from the ThingWorx Platform specified by the {platformId}.
cxserver.server.messageThroughputHistogram.{platformId}
A histogram that reports the amount of data in bytes received from the ThingWorx Platform specified by the {platformId}.
This records the same data as the meter above but allows you to extract different types of data.
The following table shows the split of the cxserver.server.messageRate metric into two metrics, one for the Read rate and one for Read/Write:
8.4.0+ Message Rate Metrics
Message Read Rate Metric
Message Read/Write Metric
cxserver.server.read.messageRate (1 min events/sec)
cxserver.server.write.messageRate (1 min events/sec)
cxserver.server.read.messageRate (15 min events/sec)
cxserver.server.write.messageRate (15 min events/sec)
cxserver.server.read.messageRate (5 min events/sec)
cxserver.server.write.messageRate (5 min events/sec)
cxserver.server.read.messageRate (avg events/sec)
cxserver.server.write.messageRate (avg events/sec)
cxserver.server.read.messageRate (count)
cxserver.server.write.messageRate (count)
The following table lists the metric whose names changed for JVM Pools
JVM Pools metrics
Pre-8.4.0 Name
8.4.0 + Name
jvm.pools.Code-Cache.committed
cxserver.jvm.memory_usage.pools.Code-Cache.committed
jvusedm.pools.Code-Cache.init
cxserver.jvm.memory_usage.pools.Code-Cache.init
jvm.pools.Code-Cache.usage
cxserver.jvm.memory_usage.pools.Code-Cache.usage
jvm.pools.Code-Cache.used
cxserver.jvm.memory_usage.pools.Code-Cache.used
jvm.pools.Compressed-Class-Space.committed
cxserver.jvm.memory_usage.pools.Compressed-Class-Space.committed
jvm.pools.Compressed-Class-Space.init
cxserver.jvm.memory_usage.pools.Compressed-Class-Space.init
jvm.pools.Compressed-Class-Space.max
cxserver.jvm.memory_usage.pools.Compressed-Class-Space.max
jvm.pools.Compressed-Class-Space.usage
cxserver.jvm.memory_usage.pools.Compressed-Class-Space.usage
jvm.pools.Compressed-Class-Space.used
cxserver.jvm.memory_usage.pools.Compressed-Class-Space.used
jvm.pools.Metaspace.committed
cxserver.jvm.memory_usage.pools.Metaspace.committed
jvm.pools.Metaspace.init
cxserver.jvm.memory_usage.pools.Metaspace.init
jvm.pools.Metaspace.max
cxserver.jvm.memory_usage.pools.Metaspace.max
jvm.pools.Metaspace.usage
cxserver.jvm.memory_usage.pools.Metaspace.usage
jvm.pools.Metaspace.used
cxserver.jvm.memory_usage.pools.Metaspace.used
jvm.pools.Eden-Space.committed
cxserver.jvm.memory_usage.pools.Eden-Space.committed
jvm.pools.Eden-Space.init
cxserver.jvm.memory_usage.pools.Eden-Space.init
jvm.pools.Eden-Space.max
cxserver.jvm.memory_usage.pools.Eden-Space.max
jvm.pools.Survivor-Space.committed
cxserver.jvm.memory_usage.pools.Survivor-Space.committed
jvm.pools.Survivor-Space.init
cxserver.jvm.memory_usage.pools.Survivor-Space.init
jvm.pools.Survivor-Space.max
cxserver.jvm.memory_usage.pools.Survivor-Space.max
jvm.pools.Survivor-Space.usage
cxserver.jvm.memory_usage.pools.Survivor-Space.usage
jvm.pools.Survivor-Space.used
cxserver.jvm.memory_usage.pools.Survivor-Space.used
jvm.pools.direct.bufferCount
cxserver.jvm.buffer_pool.direct.bufferCount
jvm.pools.direct.memoryUsed
cxserver.jvm.buffer_pool.direct.memoryUsed
jvm.pools.direct.totalCapacity
cxserver.jvm.buffer_pool.direct.totalCapacity
jvm.pools.mapped.bufferCount
cxserver.jvm.buffer_pool.mapped.bufferCount
vm.pools.mapped.memoryUsed
cxserver.jvm.buffer_pool.mapped.memoryUsed
jvm.pools.mapped.totalCapacity
cxserver.jvm.buffer_pool.mapped.totalCapacity
Additional JVM metrics are mapped in the following table (former name to current name):
Pre-8.4.0 Name
8.4.0 + Name
jvm.PS-MarkSweep.count
cxserver.jvm.gc.PS-MarkSweep.count
jvm.PS-MarkSweep.time
cxserver.jvm.gc.PS-MarkSweep.time
jvm.PS-Scavenge.count
cxserver.jvm.gc.PS-Scavenge.count
jvm.PS-Scavenge.time
cxserver.jvm.gc.PS-Scavenge.time
Was this helpful?