@Metrics — Returns information about the performance and current status of the database server
@Metrics
The @Metrics system procedure returns information about the status and performance of the database server. This
information is only available if metrics are enabled when the database is started by setting
deployment.metrics.enabled
to true in the configuration file.
Metrics are normally accessed through the metrics port via a network request. The format and request method when using the metrics port are compatible with Prometheus, an industry standard metrics collection and reporting system. The @Metrics system procedure returns the same information, however, structured as a series of VoltTables, appropriate for a client application.
The procedure returns one VoltTable summarizing the amount of data being returned, then a series of VoltTables grouping the metrics by topic, with specific columns and number of rows dependent on the information required by each topic.
The following program example filters the results by the metric name MEMORY_TUPLEDATA and prints out the total number of bytes currently used to store tuples.
try { VoltTable[] results = client.callProcedure("@Metrics").getResults(); String metric = "MEMORY_TUPLEDATA"; int count = 0; int tables = 0; for (VoltTable node : results) { if (tables++ ==1) continue; // Skip summary row node.resetRowPosition(); while(node.advanceRow()) { if (node.getString("NAME").equals(metric)) { count += node.getLong("VALUE"); } } System.out.println("Tuple Memory in use: " + String.valueOf(count)); } catch (Exception e) { e.printStackTrace(); }