appmetrics
Advanced tools
Comparing version 3.1.0 to 3.1.1
@@ -42,5 +42,6 @@ /******************************************************************************* | ||
'win32-x64', | ||
'os390-s390x', | ||
]; | ||
var AGENTCORE_VERSION = '3.2.2'; | ||
var APPMETRICS_VERSION = '3.1.0'; | ||
var AGENTCORE_VERSION = '3.2.4'; | ||
var APPMETRICS_VERSION = '3.1.1'; | ||
@@ -47,0 +48,0 @@ var LOG_FILE = path.join(INSTALL_DIR, 'install.log'); |
@@ -5,47 +5,47 @@ # Contributing to omr-agentcore | ||
- [Raising issues](#raising-issues) | ||
- [Feature requests](#feature-requests) | ||
- [Pull-Requests](#pull-requests) | ||
- [Contributor License Agreement](#contributor-license-agreement) | ||
- [Raising bug reports and feature requests](#raising-bug-reports-and-feature-requests) | ||
- [Pull requests](#pull-requests) | ||
- [Coding standards](#coding-standards) | ||
- [IBM Contributor License Agreement](#ibm-contributor-license-agreement) | ||
## Raising issues | ||
Please raise any bug reports on the relevant project's issue tracker. Be sure to | ||
search the list to see if your issue has already been raised. | ||
## Raising bug reports and feature requests | ||
A good bug report is one that make it easy for us to understand what you were | ||
trying to do and what went wrong. | ||
Please raise any bug reports and feature requests on the project's GitHub [issue tracker](https://github.com/runtimetools/omr-agentcore/issues). | ||
Be sure to search the list of open and closed issues to see if your problem or request has already been raised. | ||
Provide as much context as possible so we can try to recreate the issue. | ||
A good bug report is one that make it easy for us to understand what you were trying to do and what went wrong. Provide as much context as possible so we can try to recreate the issue. | ||
## Feature requests | ||
## Pull requests | ||
For feature requests, please raise a Github [issue](https://github.com/RuntimeTools/omr-agentcore/issues). | ||
In order for us to accept pull requests from a new contributor, the contributor must indicate that they accept and agree to be bound by the terms of the IBM Contributor License Agreement below. Please do this by adding your name to the [AUTHORS file](https://github.com/runtimetools/omr-agentcore/blob/master/AUTHORS.md) | ||
in your first pull request. | ||
## Pull-Requests | ||
If you want to raise a pull-request for a bug fix or a new feature, we recommend that you raise a [GitHub issue](https://github.com/runtimetools/omr-agentcore/issues) to discuss it first. | ||
If you want to raise a pull-request with a new feature, or a refactoring | ||
of existing code, it may well get rejected if you haven't discussed it in | ||
a Github [issue](https://github.com/RuntimeTools/omr-agentcore/issues). | ||
### Coding standards | ||
### Contributor License Agreement | ||
Please ensure you follow the coding standards used through-out the existing code base. All source code files include the Apache v2.0 license header. | ||
In order for us to accept pull-requests, the contributor must first complete | ||
a Contributor License Agreement (CLA). This clarifies the intellectual | ||
property license granted with any contribution. It is for your protection as a | ||
Contributor as well as the protection of IBM and its customers; it does not | ||
change your rights to use your own Contributions for any other purpose. | ||
### IBM Contributor License Agreement | ||
Version 1.0.1 - January 25th, 2017 | ||
You can download the CLAs here: | ||
In order for You (as defined below) to make intellectual property Contributions (as defined below) now or in the future to IBM GitHub repositories, You must agree to this Contributor License Agreement ("CLA"). Please read this CLA carefully before accepting its terms. By accepting the CLA, You are agreeing to be bound by its terms. If You submit a Pull Request against an IBM repository on GitHub You must include in the Pull Request a statement of Your acceptance of this CLA. | ||
As used in this CLA: (i) "You" (or "Your") shall mean the entity that is making this Agreement with IBM; (ii)"Contribution" shall mean any original work of authorship, including any modifications or additions to an existing work, that is submitted by You to IBM for inclusion in, or documentation of, any of the IBM GitHub repositories; (iii) "Submit" (or "Submitted") means any form of communication sent to IBM (e.g. the content You post in a GitHub Issue or submit as part of a GitHub Pull Request). | ||
- [Contributor License Agreement](https://github.com/RuntimeTools/omr-agentcore/raw/master/OMRAgentCore-V1-CLA.odt) | ||
This agreement applies to all Contributions You Submit. | ||
If you are an IBMer, please contact us directly as the contribution process is | ||
slightly different. | ||
- You will only Submit Contributions where You have authored 100% of the content. | ||
### Coding standards | ||
- You will only Submit Contributions to which You have the necessary rights. This means that if You are employed You have received the necessary permissions from Your employer to make the Contributions. | ||
Please ensure you follow the coding standards used through-out the existing | ||
code base. Some basic rules include: | ||
- Whatever content You Contribute will be provided under the Apache v2.0 license. You can read a copy of the Apache v2.0 License at http://www.apache.org/licenses/LICENSE-2.0. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. | ||
- all files must have the Apache license in the header. | ||
- You understand and agree that the Project and Your contributions are public, and that a record of the contribution (including all personal information You submit with it, including Your sign-off) is maintained indefinitely and may be redistributed consistent with the license(s) involved. | ||
- You understand that the decision to include Your Contribution is entirely that of the Project and this agreement does not guarantee that the Contribution will be included in the Project. | ||
- You are not expected to provide support for Your Contribution. However you may provide support for free, for a fee or not at all. You provide Your Contribution on an "AS IS" BASIS as stated in the License. | ||
You will promptly notify the Project if You become aware of any facts or circumstances that would make these commitments inaccurate in any way. To do so, please an issue on the project's GitHub [issue tracker](https://github.com/runtimetools/omr-agentcore/issues). | ||
If You think the Project could make use of content which You did not author, please talk to a committer on the Project. If they like Your idea, they will know the process to get it included. |
@@ -22,5 +22,7 @@ # OMR AgentCore | ||
## Version | ||
3.2.2 | ||
3.2.4 | ||
## Release History | ||
`3.2.4` - Node on z/OS support. | ||
`3.2.3` - Swift 4 support. | ||
`3.2.2` - Fix compiler issues on vs2010. | ||
@@ -27,0 +29,0 @@ `3.2.1` - Bug fixes. |
{ | ||
"name": "appmetrics", | ||
"version": "3.1.0", | ||
"version": "3.1.1", | ||
"engines": { | ||
@@ -5,0 +5,0 @@ "node": ">=4" |
@@ -122,3 +122,3 @@ /******************************************************************************* | ||
} else if (httpsOptions.hostname) { | ||
url += httpsOptions.host; | ||
url += httpsOptions.hostname; | ||
} else { | ||
@@ -125,0 +125,0 @@ url += 'localhost'; |
@@ -11,4 +11,4 @@ # Node Application Metrics | ||
Node Application Metrics instruments the Node.js runtime for performance monitoring, providing the monitoring data via an API. | ||
Additionally the data can be visualized by using the [Node Application Metrics Dashboard](https://github.com/RuntimeTools/appmetrics-dash). | ||
Node Application Metrics instruments the Node.js runtime for performance monitoring, providing the monitoring data via an API. | ||
Additionally the data can be visualized by using the [Node Application Metrics Dashboard](https://github.com/RuntimeTools/appmetrics-dash). | ||
@@ -47,3 +47,3 @@ 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. | ||
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. | ||
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. | ||
@@ -80,6 +80,6 @@ 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 | ||
* On Windows, either: | ||
* On Windows, either: | ||
* `<UserDirectory>\AppData\Roaming\npm\node_modules` | ||
* or: `<NodeInstallDirectory>\node_modules` | ||
* On other platforms: | ||
* On other platforms: | ||
* `<node_install_directory>/lib/node_modules` | ||
@@ -99,3 +99,3 @@ | ||
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. | ||
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. | ||
@@ -115,3 +115,3 @@ Node Application Metrics will attempt to load `appmetrics.properties` from one of the following locations (in order): | ||
* `com.ibm.diagnostics.healthcenter.data.profiling=[off|on]` | ||
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. | ||
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. | ||
@@ -160,3 +160,5 @@ ## Running Node Application Metrics | ||
## Health Center Eclipse IDE client | ||
**_Not supported on z/OS_** | ||
### Connecting to the client | ||
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]. | ||
@@ -170,14 +172,14 @@ | ||
### appmetrics.configure(options) | ||
Sets various properties on the appmetrics monitoring agent. If the agent has already been started, this function does nothing. | ||
* `options`(Object) key value pairs of properties and values to be set on the monitoring agent. | ||
Sets various properties on the appmetrics monitoring agent. If the agent has already been started, this function does nothing. | ||
* `options`(Object) key value pairs of properties and values to be set on the monitoring agent. | ||
Property name | Property value | Effect | ||
Property name | Property value type | Property description | ||
:--------------------|:-------------------------|:----------------------------- | ||
`applicationID` | `string` | Specifies a unique identifier for the mqtt connection | ||
`mqtt` | `[off|on]` | Specifies whether the monitoring agent sends data to the mqtt broker. The default value is on | ||
`mqttHost` | `host name` | Specifies the host name of the mqtt broker | ||
`mqttPort` | `port number` | Specifies the port number of the mqtt broker | ||
`profiling` | `[off|on]` | Specifies whether method profiling data will be captured. The default value is off | ||
`applicationID` | `string` | Specifies a unique identifier for the mqtt connection | ||
`mqtt` | `string['off'\|'on']` | Specifies whether the monitoring agent sends data to the mqtt broker. The default value is `'on'` | ||
`mqttHost` | `string` | Specifies the host name of the mqtt broker | ||
`mqttPort` | `string['[0-9]*']` | Specifies the port number of the mqtt broker | ||
`profiling` | `string['off'\|'on']` | Specifies whether method profiling data will be captured. The default value is `'off'` | ||
### appmetrics.start() | ||
@@ -205,7 +207,5 @@ Starts the appmetrics monitoring agent. If the agent is already running this function does nothing. | ||
Source | Configuration | Effect | ||
Type | Configuration key | Configuration Value | ||
:--------------------|:-------------------------|:----------------------------- | ||
`http` | `filters` | (Array) of URL filter Objects consisting of: | ||
| | `pattern` (String) a regular expression pattern to match HTTP method and URL against, eg. 'GET /favicon.ico$' | ||
| | `to` (String) a conversion for the URL to allow grouping. A value of `''` causes the URL to be ignored. | ||
`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> | ||
`requests` | `excludeModules` | (Array) of String names of modules to exclude from request tracking. | ||
@@ -221,3 +221,4 @@ `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. | ||
### appmetrics.writeSnapshot([filename],[callback]) | ||
Dumps the v8 heap via `heapdump`. | ||
**_Not supported on z/OS_** | ||
Dumps the v8 heap via `heapdump`. | ||
For more information, see https://github.com/bnoordhuis/node-heapdump/blob/master/README.md | ||
@@ -321,6 +322,6 @@ | ||
* `key` (Object) The key being used for a call to `get`, `put` or `del` (Undefined for other methods) | ||
* `value` (Object) The value being added to the LevelDB database using the `put` method (Undefined for other methods) | ||
* `opCount` (Number) The number of operations carried out by a `batch` method (Undefined for other methods) | ||
* `value` (Object) The value being added to the LevelDB database using the `put` method (Undefined for other methods) | ||
* `opCount` (Number) The number of operations carried out by a `batch` method (Undefined for other methods) | ||
* `duration` (Number) the time taken for the LevelDB query to be responded to in ms. | ||
### Event: 'loopback-datasource-juggler' | ||
@@ -429,3 +430,3 @@ Emitted when a function is called on the `loopback-datasource-juggler` module | ||
* `duration` (Number) the time taken for the Strong Oracle query to be responded to in ms. | ||
## API: Requests | ||
@@ -452,3 +453,3 @@ | ||
* **Node.js v4, v6 ,v7 and v8** on: | ||
* **Node.js v4, v7 and v8** on: | ||
* 64-bit or 32-bit runtime on Windows (x64 or x86) | ||
@@ -458,2 +459,4 @@ * 64-bit or 32-bit runtime on Linux (x64, x86, PPC32, PPC64, PPC64LE, z31, z64) | ||
* 64-bit runtime on Mac OS X (x64) | ||
* **Node.js v6** on all the above, plus: | ||
* 64-bit runtime on z/OS (os390) | ||
@@ -512,6 +515,7 @@ ## Troubleshooting | ||
## Version | ||
3.1.0 | ||
3.1.1 | ||
## Release History | ||
`3.1.0` - HTTPS probe added. | ||
`3.1.1` - Node v6 on z/OS support. | ||
`3.1.0` - HTTPS probe added. | ||
`3.0.2` - Probe defect for Node 8 support. | ||
@@ -518,0 +522,0 @@ `3.0.1` - Packaging bug fix to allow build from source if binary not present. |
@@ -25,6 +25,9 @@ /******************************************************************************* | ||
var testOptions = {}; | ||
var skipIfzOS = {}; | ||
var skipIfNotzOS = {}; | ||
// skip the test if we're testing on z/OS platform | ||
if (process.platform === 'os390') { | ||
testOptions = {skip: 'Test N/A on z/OS'}; | ||
skipIfzOS = {skip: 'Test N/A on z/OS'}; | ||
} else { | ||
skipIfNotzOS = {skip: 'Test N/A on non-z/OS platform'}; | ||
} | ||
@@ -53,3 +56,3 @@ | ||
tap.test('CPU Data', testOptions, function(t) { | ||
tap.test('CPU Data', skipIfzOS, function(t) { | ||
monitor.once('cpu', function(cpuData) { | ||
@@ -227,2 +230,4 @@ t.ok(isInteger(cpuData.time), 'Timestamp is an integer'); | ||
var nodeEnv = monitor.getEnvironment(); | ||
console.log('Got initialized event!'); | ||
console.dir(nodeEnv); | ||
runNodeEnvTests(nodeEnv, t); | ||
@@ -236,5 +241,7 @@ runCommonEnvTests(nodeEnv, t); | ||
var ARCHS = ['x86', 'x86_64', 'ppc32', 'ppc64', 'ppc64le', 's390', 's390x']; | ||
var OSES = ['AIX', 'Linux', 'Windows', 'Mac OS X']; | ||
var ZOS_ARCHS = ['3906', '2964', '2965', '2827', '2828', '2817', '2818']; | ||
var OSES = ['AIX', 'Linux', 'Windows', 'Mac OS X', 'OS/390']; | ||
t.ok(ARCHS.indexOf(commonEnvData['os.arch']) != -1, 'Contains a recognised value for os.arch'); | ||
t.ok(ARCHS.indexOf(commonEnvData['os.arch']) != -1, 'Contains a recognised value for os.arch', skipIfzOS); | ||
t.ok(ZOS_ARCHS.indexOf(commonEnvData['os.arch']) != -1, 'Contains a recognised value for z/OS os.arch', skipIfNotzOS); | ||
@@ -268,7 +275,7 @@ var found = false; | ||
t.ok(isInteger(commonEnvData['number.of.processors']), 'number.of.processes is an integer'); | ||
t.ok(isInteger(commonEnvData['number.of.processors']), 'number.of.processors is an integer', skipIfzOS); | ||
t.ok(commonEnvData['number.of.processors'] > 0, 'number.of.processes is > 1'); | ||
t.ok(commonEnvData['number.of.processors'] > 0, 'number.of.processors is > 1', skipIfzOS); | ||
t.match(commonEnvData['command.line'], /\S/, "command.line isn't empty"); | ||
t.match(commonEnvData['command.line'], /\S/, "command.line isn't empty", skipIfzOS); | ||
@@ -275,0 +282,0 @@ var envVarCount = 0; |
@@ -34,22 +34,16 @@ /******************************************************************************* | ||
var tap = require('tap'); | ||
tap.plan(1); // NOTE: This needs to be updated when tests are added/removed | ||
var testOptions = {}; | ||
// skip the test if we're testing on z/OS platform | ||
if (process.platform === 'os390') { | ||
testOptions = {skip: 'Test N/A on z/OS'}; | ||
} | ||
tap.plan(0); | ||
cleanUp(); | ||
} else { | ||
tap.plan(1); // NOTE: This needs to be updated when tests are added/removed | ||
tap.test('Headless mode should produce a .hcd file', testOptions, function(t) { | ||
setTimeout(function() { | ||
fs.readdir(outputDir, function(error, files) { | ||
if (error) { | ||
t.fail('An error occurred: ' + error); | ||
t.end(); | ||
cleanUp(); | ||
return; | ||
} | ||
for (var i = 0, len = files.length; i < len; i++) { | ||
if (/(\w+)\.hcd/.test(files[i].toString())) { | ||
t.pass(files[i] + ' HCD file found'); | ||
tap.test('Headless mode should produce a .hcd file', function(t) { | ||
setTimeout(function() { | ||
fs.readdir(outputDir, function(error, files) { | ||
if (error) { | ||
t.fail('An error occurred: ' + error); | ||
t.end(); | ||
@@ -59,10 +53,22 @@ cleanUp(); | ||
} | ||
} | ||
t.fail('No .hcd file found'); | ||
t.end(); | ||
cleanUp(); | ||
}); | ||
}, 70000); | ||
}); | ||
for (var i = 0, len = files.length; i < len; i++) { | ||
if (/(\w+)\.hcd/.test(files[i].toString())) { | ||
t.pass(files[i] + ' HCD file found'); | ||
t.end(); | ||
cleanUp(); | ||
return; | ||
} | ||
} | ||
t.fail('No .hcd file found'); | ||
t.end(); | ||
cleanUp(); | ||
}); | ||
}, 70000); | ||
}); | ||
tap.tearDown(function() { | ||
cleanUp(); | ||
}); | ||
} | ||
function cleanUp() { | ||
@@ -69,0 +75,0 @@ deleteDir(outputDir); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Native code
Supply chain riskContains native code (e.g., compiled binaries or shared libraries). Including native code can obscure malicious behavior.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 4 instances in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Native code
Supply chain riskContains native code (e.g., compiled binaries or shared libraries). Including native code can obscure malicious behavior.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
Found 3 instances in 1 package
23353964
545
18518
536
16
64