Skip to content

Commit

Permalink
Updated README with new output sample, credits, and better instructions.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeff Gehlbach committed Aug 18, 2021
1 parent 0478c1d commit abb3600
Showing 1 changed file with 85 additions and 65 deletions.
150 changes: 85 additions & 65 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,107 +1,127 @@
# opennms-brannock
A minimalist tool for gathering info about the sizing and performance of an OpenNMS instance

**A Brannock device is the gadget used to measure a person's foot to determine shoe size.**
Principal author Jeff Gehlbach.
Huge thanks to Lang Yi and Jesse White for their help getting this thing packaged as a bundle and integrating JDBC support.

*A Brannock device is the gadget used to measure a person's foot to determine shoe size.*

# Building

`mvn clean install`

You'll find a JAR in the `target` directory.

# Usage

Once you have built a JAR, simply copy it into the `OPENNMS_HOME/deploy` directory.
Once you have built a JAR, simply copy it into the `OPENNMS_HOME/deploy` directory of a running OpenNMS system.
Karaf will install and start the bundle, and barring any unforeseen trouble, the tool will write its output file as `OPENNMS_HOME/logs/brannock_stats.json`.
The bundle runs once and then stops itself, so there is no lasting impact on your system.
When you are done, delete the JAR from the `deploy` directory; Karaf will uninstall the bundle when the JAR disappears.
A sample output follows.

```json
{
"finishTime": 1629320905716,
"startupTime": 1629320905700,
"brannockErrors": [],
"derivedData": {
"pollsCompletedPerSec": 5.962612957184287E-7,
"metricsPersistedPerSec": 222.10388821728415
},
"brannockVersion": "v1",
"jmxData": {
"OpenNMS:Name=Queued": {
"CreatesCompleted": "0",
"StartTime": "0",
"DequeuedItems": "0",
"ElapsedTime": "1629243514632",
"SignificantOpsEnqueued": "0",
"SignificantOpsDequeued": "0",
"DequeuedOperations": "0",
"Errors": "0",
"TotalOperationsPending": "0",
"EnqueuedOperations": "0",
"SignificantOpsCompleted": "0",
"PromotionCount": "0",
"UpdatesCompleted": "0"
"CreatesCompleted": 0,
"StartTime": 0,
"DequeuedItems": 0,
"ElapsedTime": 1629320905705,
"SignificantOpsEnqueued": 0,
"SignificantOpsDequeued": 0,
"DequeuedOperations": 0,
"Errors": 0,
"TotalOperationsPending": 0,
"EnqueuedOperations": 0,
"SignificantOpsCompleted": 0,
"PromotionCount": 0,
"UpdatesCompleted": 0
},
"OpenNMS:Name=Pollerd": {
"ActiveThreads": "1",
"TaskCompletionRatio": "0.9999995432571973",
"CorePoolThreads": "30",
"PeakPoolThreads": "30",
"NumPoolThreads": "30",
"TaskQueuePendingCount": "0",
"TasksTotal": "2189416",
"MaxPoolThreads": "30",
"TasksCompleted": "2189415",
"NumPolls": "2189416",
"TaskQueueRemainingCapacity": "2147483647"
"ActiveThreads": 0,
"TaskCompletionRatio": 1,
"CorePoolThreads": 30,
"PeakPoolThreads": 30,
"NumPoolThreads": 30,
"TaskQueuePendingCount": 0,
"TasksTotal": 2231730,
"MaxPoolThreads": 30,
"TasksCompleted": 2231730,
"NumPolls": 2231730,
"TaskQueueRemainingCapacity": 2147483647
},
"org.opennms.netmgt.eventd:name=eventlogs.process": {
"75thPercentile": "17.829575",
"Mean": "19.82412585742063",
"StdDev": "5.3137949086351215",
"98thPercentile": "24.773691",
"75thPercentile": 25.592758,
"Mean": 23.385982194448793,
"StdDev": 3.8147418821828483,
"98thPercentile": 25.592758,
"RateUnit": "events/second",
"95thPercentile": "24.773691",
"99thPercentile": "48.929044999999995",
"Max": "339.6596",
"Count": "140964",
"FiveMinuteRate": "0.011125178727385715",
"50thPercentile": "17.829575",
"MeanRate": "0.03845734540163717",
"Min": "4.1572379999999995",
"OneMinuteRate": "0.007144365613377293",
"95thPercentile": 25.592758,
"99thPercentile": 30.000935,
"Max": 351.59396499999997,
"Count": 141972,
"FiveMinuteRate": 0.014486228175940093,
"50thPercentile": 25.592758,
"MeanRate": 0.03793147534364054,
"Min": 4.301921,
"OneMinuteRate": 0.00630943580245027,
"DurationUnit": "milliseconds",
"999thPercentile": "67.752331",
"FifteenMinuteRate": "0.01071415077980683"
"999thPercentile": 34.549198,
"FifteenMinuteRate": 0.015163108928050254
},
"org.opennms.netmgt.flows:name=flowsPersisted": {
"RateUnit": "events/second",
"OneMinuteRate": "2.964393875E-314",
"Count": "1077946460",
"FifteenMinuteRate": "4.44659081257E-313",
"FiveMinuteRate": "1.4821969375E-313",
"MeanRate": "294.08404133231045"
"OneMinuteRate": 2.964393875E-314,
"Count": 1077946460,
"FifteenMinuteRate": 4.44659081257E-313,
"FiveMinuteRate": 1.4821969375E-313,
"MeanRate": 288.003216805817
},
"org.opennms.newts:name=repository.samples-inserted": {
"RateUnit": "events/second",
"OneMinuteRate": "238.5283472098449",
"Count": "813309259",
"FifteenMinuteRate": "232.90315844111245",
"FiveMinuteRate": "233.71845410848283",
"MeanRate": "221.88428832655137"
"OneMinuteRate": 245.47802678376334,
"Count": 831303053,
"FifteenMinuteRate": 233.4112279299726,
"FiveMinuteRate": 235.12457293712183,
"MeanRate": 222.10388821728415
},
"java.lang:type=Runtime": {
"VmVendor": "Amazon.com Inc.",
"Uptime": "3665481416",
"Uptime": 3742872489,
"VmName": "OpenJDK 64-Bit Server VM",
"StartTime": "1625578033321",
"StartTime": 1625578033321,
"VmVersion": "11.0.10+9-LTS",
"Name": "16281@onmscore"
},
"java.lang:type=OperatingSystem": {
"Version": "4.14.219-161.340.amzn2.x86_64",
"AvailableProcessors": "2",
"OpenFileDescriptorCount": "1825",
"AvailableProcessors": 2,
"OpenFileDescriptorCount": 1832,
"Name": "Linux",
"TotalPhysicalMemorySize": "8362287104"
"TotalPhysicalMemorySize": 8362287104
}
},
"jdbcData": {
"monitoringLocationCount": 7,
"minionCount": 8
}
}
```

# Things we aim to measure

* Events per second
* Metrics persisted per second
* Polls per second
* Flows persisted per second
* Count of monitoring locations (TODO)
* Count of Minions (TODO)
# Main things we aim to measure

All but the last two we can fetch via JMX through the local MBeanServer.
* Events per second (JMX)
* Metrics persisted per second (JMX)
* Polls per second (JMX)
* Flows persisted per second (JMX)
* Count of monitoring locations (JDBC for now)
* Count of Minions (JDBC for now)

0 comments on commit abb3600

Please sign in to comment.