You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Node Application Metrics instruments the Node.js runtime for performance monitoring, providing the monitoring data via an API.
12
-
Additionally the data can be visualized by using the [Node Application Metrics Dashboard](https://github.com/RuntimeTools/appmetrics-dash).
11
+
Node Application Metrics instruments the Node.js runtime for performance monitoring, providing the monitoring data via an API.
12
+
Additionally the data can be visualized by using the [Node Application Metrics Dashboard](https://github.com/RuntimeTools/appmetrics-dash).
13
13
14
14
The data can also be visualized in Eclipse using the [IBM Monitoring and Diagnostics Tools - Health Center][1] client. Profiling data is available in Health Center, but is not yet available in the Dashboard. See https://www.ibm.com/developerworks/java/jdk/tools/healthcenter/ for more details.
15
15
@@ -43,7 +43,7 @@ Node Application Metrics provides the following built-in data collection sources
43
43
Function trace | Tracing of application function calls that occur during a request (disabled by default)
44
44
## Performance overhead
45
45
46
-
Our testing has shown that the performance overhead in terms of processing is minimal, adding less than 0.5 % to the CPU usage of your application. The additional memory required is around 20 MB to gather information about your system and application.
46
+
Our testing has shown that the performance overhead in terms of processing is minimal, adding less than 0.5 % to the CPU usage of your application. The additional memory required is around 20 MB to gather information about your system and application.
47
47
48
48
We gathered this information by monitoring the sample application [Acme Air][3]. We used MongoDB as our datastore and used JMeter to drive load though the program. We have performed this testing with Node.js version 6.10.3
49
49
@@ -75,10 +75,10 @@ $ npm install -g appmetrics
75
75
```
76
76
A global install will put the module inside a directory tied to your Node.js SDK.
It also adds the `node-hc` command to another directory tied to your Node.js SDK, one that was added to your executable search path by the Node.js SDK installer.
@@ -93,7 +93,7 @@ It also adds the `node-hc` command to another directory tied to your Node.js SDK
93
93
94
94
Node Application Metrics can be configured in two ways, by using the configuration file described below or via a call to configure(options).
95
95
96
-
Node Application Metrics comes with a configuration file inside the [module installation directory](#installation) (`.../node_modules/appmetrics/appmetrics.properties`). This can be used to configure connection options, logging and data source options.
96
+
Node Application Metrics comes with a configuration file inside the [module installation directory](#installation) (`.../node_modules/appmetrics/appmetrics.properties`). This can be used to configure connection options, logging and data source options.
97
97
98
98
Node Application Metrics will attempt to load `appmetrics.properties` from one of the following locations (in order):
99
99
@@ -108,7 +108,7 @@ Many of the options provide configuration of the Health Center core agent librar
Specifies whether method profiling data will be captured. The default value is `off`. This specifies the value at start-up; it can be enabled and disabled dynamically as the application runs, either by a monitoring client or the API.
111
+
Specifies whether method profiling data will be captured. The default value is `off`. This specifies the value at start-up; it can be enabled and disabled dynamically as the application runs, either by a monitoring client or the API.
112
112
113
113
## Running Node Application Metrics
114
114
@@ -152,7 +152,9 @@ monitoring.on('cpu', function (cpu) {
152
152
```
153
153
154
154
## Health Center Eclipse IDE client
155
+
**_Not supported on z/OS_**
155
156
### Connecting to the client
157
+
156
158
Connecting to the Health Center client requires the additional installation of a MQTT broker. The Node Application Metrics agent sends data to the MQTT broker specified in the `appmetrics.properties` file or set via a call to configure(options). Installation and configuration documentation for the Health Center client is available from the [Health Center documentation in IBM Knowledge Center][2].
157
159
158
160
Note that both the API and the Health Center client can be used at the same time and will receive the same data. Use of the API requires a local install and application modification (see *[Modifying your application to use the local installation](#modifying-your-application-to-use-the-local-installation)*).
@@ -161,17 +163,17 @@ Further information regarding the use of the Health Center client with Node Appl
161
163
162
164
## API Documentation
163
165
### appmetrics.configure(options)
164
-
Sets various properties on the appmetrics monitoring agent. If the agent has already been started, this function does nothing.
165
-
*`options`(Object) key value pairs of properties and values to be set on the monitoring agent.
166
+
Sets various properties on the appmetrics monitoring agent. If the agent has already been started, this function does nothing.
167
+
*`options`(Object) key value pairs of properties and values to be set on the monitoring agent.
166
168
167
-
Property name | Property value | Effect
169
+
Property name | Property value type| Property description
| | `pattern` (String) a regular expression pattern to match HTTP method and URL against, eg. 'GET /favicon.ico$'
202
-
| | `to` (String) a conversion for the URL to allow grouping. A value of `''` causes the URL to be ignored.
202
+
`http` | `filters` | (Array) of URL filter Objects consisting of:<ul><li>`pattern` (String) a regular expression pattern to match HTTP method and URL against, eg. 'GET /favicon.ico$'</li><li>`to` (String) a conversion for the URL to allow grouping. A value of `''` causes the URL to be ignored.</li></ul>
203
203
`requests` | `excludeModules` | (Array) of String names of modules to exclude from request tracking.
204
204
`trace` | `includeModules` | (Array) of String names for modules to include in function tracing. By default only non-module functions are traced when trace is enabled.
205
205
`advancedProfiling` | `threshold` | (Number) millisecond run time of an event loop cycle that will trigger profiling
@@ -210,7 +210,8 @@ Allows custom monitoring events to be added into the Node Application Metrics ag
210
210
*`data` (Object) the data to be made available with the event. The object must not contain circular references, and by convention should contain a `time` value representing the milliseconds when the event occurred.
For more information, see https://github.com/bnoordhuis/node-heapdump/blob/master/README.md
215
216
216
217
### appmetrics.monitor()
@@ -309,10 +310,10 @@ Emitted when a LevelDB query is made using the `leveldown` module.
309
310
*`time` (Number) the time in milliseconds when the LevelDB query was made. This can be converted to a Date using `new Date(data.time)`.
310
311
*`method` (String) The leveldown method being used.
311
312
*`key` (Object) The key being used for a call to `get`, `put` or `del` (Undefined for other methods)
312
-
*`value` (Object) The value being added to the LevelDB database using the `put` method (Undefined for other methods)
313
-
*`opCount` (Number) The number of operations carried out by a `batch` method (Undefined for other methods)
313
+
*`value` (Object) The value being added to the LevelDB database using the `put` method (Undefined for other methods)
314
+
*`opCount` (Number) The number of operations carried out by a `batch` method (Undefined for other methods)
314
315
*`duration` (Number) the time taken for the LevelDB query to be responded to in ms.
315
-
316
+
316
317
### Event: 'loopback-datasource-juggler'
317
318
Emitted when a function is called on the `loopback-datasource-juggler` module
318
319
*`data` (Object) the data from the loopback-datasource-juggler event:
@@ -416,7 +417,7 @@ Emitted when a query is executed using the `strong-oracle` module.
416
417
*`time` (Number) the milliseconds when the Strong Oracle query was made. This can be converted to a Date using `new Date(data.time)`.
417
418
*`query` (String) the query made of the database.
418
419
*`duration` (Number) the time taken for the Strong Oracle query to be responded to in ms.
419
-
420
+
420
421
## API: Requests
421
422
422
423
### Event: 'request'
@@ -438,11 +439,13 @@ Requests are a special type of event emitted by appmetrics. All the probes name
438
439
439
440
The Node Application Metrics agent supports the following runtime environments where a Node.js runtime is available:
440
441
441
-
***Node.js v4, v6 ,v7 and v8** on:
442
+
***Node.js v4, v7 and v8** on:
442
443
* 64-bit or 32-bit runtime on Windows (x64 or x86)
443
444
* 64-bit or 32-bit runtime on Linux (x64, x86, PPC32, PPC64, PPC64LE, z31, z64)
444
445
* 64-bit or 32-bit runtime on AIX (PPC64)
445
446
* 64-bit runtime on Mac OS X (x64)
447
+
***Node.js v6** on all the above, plus:
448
+
* 64-bit runtime on z/OS (os390)
446
449
447
450
## Troubleshooting
448
451
Find below some possible problem scenarios and corresponding diagnostic steps. Updates to troubleshooting information will be made available on the [appmetrics wiki][3]: [Troubleshooting](https://github.com/RuntimeTools/appmetrics/wiki/Troubleshooting). If these resources do not help you resolve the issue, you can open an issue on the Node Application Metrics [appmetrics issue tracker][5].
@@ -496,10 +499,11 @@ The npm package for this project uses a semver-parsable X.0.Z version number for
496
499
Non-release versions of this project (for example on github.com/RuntimeTools/appmetrics) will use semver-parsable X.0.Z-dev.B version numbers, where X.0.Z is the last release with Z incremented and B is an integer. For further information on the development process go to the [appmetrics wiki][3]: [Developing](https://github.com/RuntimeTools/appmetrics/wiki/Developing).
497
500
498
501
## Version
499
-
3.1.0
502
+
3.1.1
500
503
501
504
## Release History
502
-
`3.1.0` - HTTPS probe added.
505
+
`3.1.1` - Node v6 on z/OS support.
506
+
`3.1.0` - HTTPS probe added.
503
507
`3.0.2` - Probe defect for Node 8 support.
504
508
`3.0.1` - Packaging bug fix to allow build from source if binary not present.
505
509
`3.0.0` - Remove express probe. Additional data available in http and request events. Code improvements.
0 commit comments