RuntimeTools / appmetrics

Node Application Metrics provides a foundational infrastructure for collecting resource and performance monitoring data for Node.js-based applications.
https://developer.ibm.com/open/node-application-metrics/
Apache License 2.0
977 stars 127 forks source link

Fix alarming deprecation warnings for Node.js v10 on Linux #575

Open tomleah opened 5 years ago

tomleah commented 5 years ago

Failing to build appmetrics on linux x86

Steps to reproduce:

docker pull node:10
docker run -it node:10 bash
$ node -v
v10.5.3
$ npm install appmetrics

First part of log:

Falling back to node-gyp rebuild
make: Entering directory '/node_modules/appmetrics/build'
  ACTION binding_gyp_appmetrics_target_Set_appmetrics_reported_version_build_level Release/obj.target/appmetrics/geni/appmetrics.cpp
infile: ./src/appmetrics.cpp
outfile: /node_modules/appmetrics/build/Release/obj.target/appmetrics/geni/appmetrics.cpp
Replacing '"99\.99\.99\.29991231"' with '"4.0.1.201905241010"'
  CXX(target) Release/obj.target/appmetrics/geni/appmetrics.o
In file included from ../src/plugins/node/prof/watchdog.h:21:0,
                 from Release/obj.target/appmetrics/geni/appmetrics.cpp:25:
../src/plugins/node/prof/compat-inl.h: In static member function 'static void compat::CpuProfiler::StartCpuProfiling(v8::Isolate*, v8::Local<v8::String>)':
../src/plugins/node/prof/compat-inl.h:302:34: warning: 'v8::CpuProfiler* v8::Isolate::GetCpuProfiler()' is deprecated: CpuProfiler should be created with CpuProfiler::New call. [-Wdeprecated-declarations]
   return isolate->GetCpuProfiler()->StartProfiling(title, record_samples);
                                  ^
In file included from /root/.node-gyp/10.15.3/include/node/v8.h:26:0,
                 from /root/.node-gyp/10.15.3/include/node/node.h:63,
                 from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
/root/.node-gyp/10.15.3/include/node/v8.h:7485:30: note: declared here
                 CpuProfiler* GetCpuProfiler());
                              ^
/root/.node-gyp/10.15.3/include/node/v8config.h:324:3: note: in definition of macro 'V8_DEPRECATED'
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
In file included from ../src/plugins/node/prof/watchdog.h:21:0,
                 from Release/obj.target/appmetrics/geni/appmetrics.cpp:25:
../src/plugins/node/prof/compat-inl.h: In static member function 'static const v8::CpuProfile* compat::CpuProfiler::StopCpuProfiling(v8::Isolate*, v8::Local<v8::String>)':
../src/plugins/node/prof/compat-inl.h:312:34: warning: 'v8::CpuProfiler* v8::Isolate::GetCpuProfiler()' is deprecated: CpuProfiler should be created with CpuProfiler::New call. [-Wdeprecated-declarations]
   return isolate->GetCpuProfiler()->StopProfiling(title);
rwalle61 commented 5 years ago

@tomleah my fixes for Node 12 on mac (re. https://github.com/RuntimeTools/appmetrics/issues/572, PR about to land) should resolve some of these errors (for example, the GetCpuProfiler one). We will then fix these Linux-specific errors

rnchamberlain commented 5 years ago

Appmetrics installed OK for me using the steps above, running a node:10 image (though there were quite a few deprecation warnings). I noticed that the node level in the node:10 image was updated recently to v10.15.3, see https://github.com/nodejs/docker-node/commit/170ed2092d4925971f9cd3ad5dfc416e820f90fd:

root@b6ab1cf2c1c4:/# node -v
v10.15.3

Last few lines of the npm install output:

...
+ appmetrics@4.0.1
added 116 packages from 119 contributors and audited 222 packages in 83.509s
found 0 vulnerabilities

Runs a simple application with appmetrics enabled, based on "Modifying your application to use appmetrics", here: https://github.com/RuntimeTools/appmetrics

root@b6ab1cf2c1c4:/# node test.js
[Tue May 28 14:05:21 2019] com.ibm.diagnostics.healthcenter.loader INFO: Node Application Metrics 4.0.1.201905281403 (Agent Core 3.2.9)
[Tue May 28 14:05:22 2019] com.ibm.diagnostics.healthcenter.mqtt INFO: Connecting to broker localhost:1883
rwalle61 commented 5 years ago

@tomleah https://github.com/RuntimeTools/appmetrics/pull/576 should have fixed some deprecation warnings.

Also, given that the issue was about deprecation warnings rather than errors, would you mind renaming the issue to something like Fix alarming deprecation warnings for Node.js v10 on Linux?

I will check as to when we can schedule the work to remove the rest of the deprecation warnings

tomleah commented 5 years ago

Great, thanks!

I've renamed the issue. It would be good to see these removed, as especially when doing a docker build you are presented with a wall of red even though they are warnings

mattcolegate commented 5 years ago

@tomleah Can you check and see if this issue is now resolved please? I've just run a Windows build and didn't see the specified warnings

tomleah commented 5 years ago

Still seeing a few deprecation warnings on appmetrics@5.0.3 but seem to be greatly reduced @mattcolegate

mattcolegate commented 5 years ago

@tomleah can you post a full install log to this issue please?

tomleah commented 5 years ago

Here is my full log when doing npm install appmetrics @mattcolegate

root@7788507dcf2c:/# npm i appmetrics

> appmetrics@5.0.3 install /node_modules/appmetrics
> node showBuildInfo.js && node-gyp rebuild

Mon, 01 Jul 2019 15:41:58 GMT
********************************************************************************
You are installing the Node Application Metrics monitoring and profiling module.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
********************************************************************************

********************************************************************************
Appmetrics uses node-gyp to compile and build local binary libraries to enhance execution performance. If the following compilation and build logs contain errors, make sure you have the node-gyp pre-requisites installed (https://github.com/nodejs/node-gyp#installation). If you have them and the build still had errors, see if there are any related issues at https://github.com/RuntimeTools/appmetrics/issues). If there aren't, feel free to open a new issue to report the bug.
********************************************************************************

make: Entering directory '/node_modules/appmetrics/build'
  ACTION binding_gyp_appmetrics_target_Set_appmetrics_reported_version_build_level Release/obj.target/appmetrics/geni/appmetrics.cpp
infile: ./src/appmetrics.cpp
outfile: /node_modules/appmetrics/build/Release/obj.target/appmetrics/geni/appmetrics.cpp
Replacing '"99\.99\.99\.29991231"' with '"5.0.3.201907011542"'
  CXX(target) Release/obj.target/appmetrics/geni/appmetrics.o
Release/obj.target/appmetrics/geni/appmetrics.cpp: In function 'void emitMessage(uv_async_t*, int)':
Release/obj.target/appmetrics/geni/appmetrics.cpp:451:44: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
         listener->callback->Call(argc, argv);
                                            ^
In file included from Release/obj.target/appmetrics/geni/appmetrics.cpp:22:0:
../../nan/nan.h:1740:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
  CXX(target) Release/obj.target/appmetrics/src/headlessutils.o
../src/headlessutils.cpp: In function 'void headless::asyncfunc(uv_async_t*)':
../src/headlessutils.cpp:49:39: warning: 'v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const' is deprecated [-Wdeprecated-declarations]
    headless::zipFunction->Call(1, argv);
                                       ^
In file included from ../src/headlessutils.h:21:0,
                 from ../src/headlessutils.cpp:18:
../../nan/nan.h:1740:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
  CXX(target) Release/obj.target/appmetrics/src/objecttracker.o
  SOLINK_MODULE(target) Release/obj.target/appmetrics.node
  COPY Release/appmetrics.node
  CXX(target) Release/obj.target/heapdump/src/heapdump/heapdump.o
../src/heapdump/heapdump.cc: In function 'void {anonymous}::InvokeCallback(const char*)':
../src/heapdump/heapdump.cc:143:32: warning: 'v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)' is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
                      argc, argv);
                                ^
In file included from ../src/heapdump/heapdump.cc:15:0:
/root/.node-gyp/10.16.0/include/node/node.h:177:50: note: declared here
                 NODE_EXTERN v8::Local<v8::Value> MakeCallback(
                                                  ^
/root/.node-gyp/10.16.0/include/node/node.h:91:42: note: in definition of macro 'NODE_DEPRECATED'
     __attribute__((deprecated(message))) declarator
                                          ^~~~~~~~~~
  SOLINK_MODULE(target) Release/obj.target/heapdump.node
  COPY Release/heapdump.node
  ACTION omr_agentcore_binding_gyp_agentcore_target_Set_core_reported_version_build_level Release/obj.target/agentcore/geni/monitoring/agent/Agent.cpp
infile: ./src/ibmras/monitoring/agent/Agent.cpp
outfile: /node_modules/appmetrics/build/Release/obj.target/agentcore/geni/monitoring/agent/Agent.cpp
Replacing '"99\.99\.99\.29991231"' with '"4.0.3.201907011542"'
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/Logger.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/LogManager.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/MemoryManager.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/util/FileUtils.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/util/LibraryUtils.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/port/linux/Thread.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/port/linux/Process.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/port/Lock.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/port/ThreadData.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/Properties.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/PropertiesFile.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/util/strUtils.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/util/sysUtils.o
  CXX(target) Release/obj.target/agentcore/geni/monitoring/agent/Agent.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/agent/threads/ThreadPool.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/agent/threads/WorkerThread.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/agent/SystemReceiver.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/connector/ConnectorManager.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/agent/Bucket.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/agent/BucketList.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/Plugin.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/connector/configuration/ConfigurationConnector.o
  SOLINK(target) Release/obj.target/omr-agentcore/libagentcore.so
  COPY Release/libagentcore.so
  CXX(target) Release/obj.target/hcapiplugin/omr-agentcore/src/ibmras/monitoring/connector/api/APIConnector.o
  SOLINK(target) Release/obj.target/omr-agentcore/libhcapiplugin.so
  COPY Release/libhcapiplugin.so
  CXX(target) Release/obj.target/envplugin/omr-agentcore/src/ibmras/monitoring/plugins/common/environment/envplugin.o
  SOLINK(target) Release/obj.target/omr-agentcore/libenvplugin.so
  COPY Release/libenvplugin.so
  CXX(target) Release/obj.target/cpuplugin/omr-agentcore/src/ibmras/monitoring/plugins/common/cpu/cpuplugin.o
  SOLINK(target) Release/obj.target/omr-agentcore/libcpuplugin.so
  COPY Release/libcpuplugin.so
  CXX(target) Release/obj.target/memoryplugin/omr-agentcore/src/ibmras/monitoring/plugins/common/memory/MemoryPlugin.o
  SOLINK(target) Release/obj.target/omr-agentcore/libmemoryplugin.so
  COPY Release/libmemoryplugin.so
  CXX(target) Release/obj.target/headlessplugin/omr-agentcore/src/ibmras/monitoring/connector/headless/HLConnector.o
  SOLINK(target) Release/obj.target/omr-agentcore/libheadlessplugin.so
  COPY Release/libheadlessplugin.so
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Clients.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Heap.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/LinkedList.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Log.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Messages.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTAsync.o
../omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTAsync.c: In function 'MQTTAsync_cycle':
../omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTAsync.c:2561:13: warning: variable 'nosockets_count' set but not used [-Wunused-but-set-variable]
  static int nosockets_count = 0;
             ^~~~~~~~~~~~~~~
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTPacket.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTPacketOut.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTPersistence.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTPersistenceDefault.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTProtocolClient.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTProtocolOut.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/SocketBuffer.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Socket.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/StackTrace.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Thread.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Tree.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/utf-8.o
  CXX(target) Release/obj.target/hcmqtt/omr-agentcore/src/ibmras/monitoring/connector/mqtt/MQTTConnector.o
  SOLINK(target) Release/obj.target/omr-agentcore/libhcmqtt.so
  COPY Release/libhcmqtt.so
  COPY ../omr-agentcore/libagentcore.so
  COPY ../omr-agentcore/plugins/libhcmqtt.so
  COPY ../omr-agentcore/plugins/libcpuplugin.so
  COPY ../omr-agentcore/plugins/libenvplugin.so
  COPY ../omr-agentcore/plugins/libmemoryplugin.so
  COPY ../omr-agentcore/plugins/libhcapiplugin.so
  COPY ../omr-agentcore/plugins/libheadlessplugin.so
  TOUCH Release/obj.target/omr-agentcore/external.stamp
  TOUCH Release/obj.target/omr-agentcore.stamp
  CXX(target) Release/obj.target/nodeenvplugin/src/plugins/node/env/nodeenvplugin.o
  SOLINK(target) Release/obj.target/libnodeenvplugin.so
  COPY Release/libnodeenvplugin.so
  CXX(target) Release/obj.target/nodegcplugin/src/plugins/node/gc/nodegcplugin.o
  SOLINK(target) Release/obj.target/libnodegcplugin.so
  COPY Release/libnodegcplugin.so
  CXX(target) Release/obj.target/nodeprofplugin/src/plugins/node/prof/nodeprofplugin.o
  SOLINK(target) Release/obj.target/libnodeprofplugin.so
  COPY Release/libnodeprofplugin.so
  CXX(target) Release/obj.target/nodeloopplugin/src/plugins/node/loop/nodeloopplugin.o
  SOLINK(target) Release/obj.target/libnodeloopplugin.so
  COPY Release/libnodeloopplugin.so
  CXX(target) Release/obj.target/nodeheapplugin/src/plugins/node/heap/nodeheapplugin.o
  SOLINK(target) Release/obj.target/libnodeheapplugin.so
  COPY Release/libnodeheapplugin.so
  COPY ../appmetrics.node
  COPY ../heapdump.node
  COPY ../libagentcore.so
  COPY ../plugins/libnodeenvplugin.so
  COPY ../plugins/libnodeheapplugin.so
  COPY ../plugins/libnodegcplugin.so
  COPY ../plugins/libnodeprofplugin.so
  COPY ../plugins/libnodeloopplugin.so
  COPY ../plugins/libhcmqtt.so
  COPY ../plugins/libcpuplugin.so
  COPY ../plugins/libenvplugin.so
  COPY ../plugins/libmemoryplugin.so
  COPY ../plugins/libhcapiplugin.so
  COPY ../plugins/libheadlessplugin.so
  TOUCH Release/obj.target/install.stamp
make: Leaving directory '/node_modules/appmetrics/build'
npm WARN saveError ENOENT: no such file or directory, open '/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/package.json'
npm WARN !invalid#1 No description
npm WARN !invalid#1 No repository field.
npm WARN !invalid#1 No README data
npm WARN !invalid#1 No license field.

+ appmetrics@5.0.3
added 113 packages from 119 contributors and audited 222 packages in 34.398s
found 0 vulnerabilities
sam-github commented 5 years ago

@mattcolegate We see this when building apps using @cloudnative/health-connect and appmetrics-prometheous, on 10.17. Output after mkdir use-appmetrics; cd use-appmetrics; npm init is below.

Any chance of getting it fixed?


ibm/use-appmetrics % npm i appmetrics

> appmetrics@5.1.1 install /home/sam/w/ibm/use-appmetrics/node_modules/appmetrics
> node showBuildInfo.js && node-gyp rebuild

Tue, 05 Nov 2019 15:35:18 GMT
********************************************************************************
You are installing the Node Application Metrics monitoring and profiling module.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
********************************************************************************

********************************************************************************
Appmetrics uses node-gyp to compile and build local binary libraries to enhance execution performance. If the following compilation and build logs contain errors, make sure you have the node-gyp pre-requisites installed (https://github.com/nodejs/node-gyp#installation). If you have them and the build still had errors, see if there are any related issues at https://github.com/RuntimeTools/appmetrics/issues). If there aren't, feel free to open a new issue to report the bug.
********************************************************************************

make: Entering directory '/home/sam/w/ibm/use-appmetrics/node_modules/appmetrics/build'
  ACTION binding_gyp_appmetrics_target_Set_appmetrics_reported_version_build_level Release/obj.target/appmetrics/geni/appmetrics.cpp
infile: ./src/appmetrics.cpp
outfile: /home/sam/w/ibm/use-appmetrics/node_modules/appmetrics/build/Release/obj.target/appmetrics/geni/appmetrics.cpp
Replacing '"99\.99\.99\.29991231"' with '"5.1.1.201911050735"'
  CXX(target) Release/obj.target/appmetrics/geni/appmetrics.o
In file included from Release/obj.target/appmetrics/geni/appmetrics.cpp:22:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
Release/obj.target/appmetrics/geni/appmetrics.cpp: In function ‘void emitMessage(uv_async_t*, int)’:
Release/obj.target/appmetrics/geni/appmetrics.cpp:424:44: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
         listener->callback->Call(argc, argv);
                                            ^
In file included from Release/obj.target/appmetrics/geni/appmetrics.cpp:22:
../../nan/nan.h:1740:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
Release/obj.target/appmetrics/geni/appmetrics.cpp: In function ‘void init(v8::Local<v8::Object>, v8::Local<v8::Object>)’:
Release/obj.target/appmetrics/geni/appmetrics.cpp:713:65: warning: cast between incompatible function types from ‘void (*)(uv_async_t*, int)’ {aka ‘void (*)(uv_async_s*, int)’} to ‘uv_async_cb’ {aka ‘void (*)(uv_async_s*)’} [-Wcast-function-type]
     uv_async_init(uv_default_loop(), messageAsync, (uv_async_cb)emitMessage);
                                                                 ^~~~~~~~~~~
In file included from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
Release/obj.target/appmetrics/geni/appmetrics.cpp: At global scope:
/home/sam/.cache/node-gyp/10.17.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/home/sam/.cache/node-gyp/10.17.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
Release/obj.target/appmetrics/geni/appmetrics.cpp:768:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(appmetrics, init)
 ^~~~~~~~~~~
In file included from /home/sam/.cache/node-gyp/10.17.0/include/node/node.h:63,
                 from Release/obj.target/appmetrics/geni/appmetrics.cpp:21:
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/sam/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/appmetrics/src/headlessutils.o
In file included from ../src/headlessutils.h:21,
                 from ../src/headlessutils.cpp:18:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
../src/headlessutils.cpp: In function ‘void headless::asyncfunc(uv_async_t*)’:
../src/headlessutils.cpp:51:39: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
    headless::zipFunction->Call(1, argv);
                                       ^
In file included from ../src/headlessutils.h:21,
                 from ../src/headlessutils.cpp:18:
../../nan/nan.h:1740:3: note: declared here
   Call(int argc, v8::Local<v8::Value> argv[]) const {
   ^~~~
In file included from /home/sam/.cache/node-gyp/10.17.0/include/node/node.h:63,
                 from ../../nan/nan.h:54,
                 from ../src/headlessutils.h:21,
                 from ../src/headlessutils.cpp:18:
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/sam/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  CXX(target) Release/obj.target/appmetrics/src/objecttracker.o
In file included from ../src/objecttracker.cpp:23:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
../src/objecttracker.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE getObjectHistogram(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/objecttracker.cpp:140:55: warning: ignoring return value of ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’, declared with attribute warn_unused_result [-Wunused-result]
             histogram->Set(currentContext, name, tuple);
                                                       ^
In file included from /home/sam/.cache/node-gyp/10.17.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:3247:37: note: declared here
   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                     ^~~
../src/objecttracker.cpp:145:49: warning: ignoring return value of ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’, declared with attribute warn_unused_result [-Wunused-result]
   tuple->Set(currentContext, countName, newcount);
                                                 ^
In file included from /home/sam/.cache/node-gyp/10.17.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:3247:37: note: declared here
   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                     ^~~
../src/objecttracker.cpp:147:46: warning: ignoring return value of ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’, declared with attribute warn_unused_result [-Wunused-result]
   tuple->Set(currentContext,sizeName, newsize);
                                              ^
In file included from /home/sam/.cache/node-gyp/10.17.0/include/node/node.h:63,
                 from ../src/objecttracker.cpp:20:
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:3247:37: note: declared here
   V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
                                     ^~~
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/sam/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/appmetrics.node
  COPY Release/appmetrics.node
  CXX(target) Release/obj.target/heapdump/src/heapdump/heapdump.o
In file included from ../src/heapdump/heapdump.cc:16:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
../src/heapdump/heapdump.cc: In function ‘void {anonymous}::InvokeCallback(const char*)’:
../src/heapdump/heapdump.cc:143:32: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
                      argc, argv);
                                ^
In file included from ../src/heapdump/heapdump.cc:15:
/home/sam/.cache/node-gyp/10.17.0/include/node/node.h:177:50: note: declared here
                 NODE_EXTERN v8::Local<v8::Value> MakeCallback(
                                                  ^~~~~~~~~~~~
/home/sam/.cache/node-gyp/10.17.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
     __attribute__((deprecated(message))) declarator
                                          ^~~~~~~~~~
../src/heapdump/heapdump.cc:143:32: warning: ‘v8::Local<v8::Value> node::MakeCallback(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*)’ is deprecated: Use MakeCallback(..., async_context) [-Wdeprecated-declarations]
                      argc, argv);
                                ^
In file included from ../src/heapdump/heapdump.cc:15:
/home/sam/.cache/node-gyp/10.17.0/include/node/node.h:177:50: note: declared here
                 NODE_EXTERN v8::Local<v8::Value> MakeCallback(
                                                  ^~~~~~~~~~~~
/home/sam/.cache/node-gyp/10.17.0/include/node/node.h:91:42: note: in definition of macro ‘NODE_DEPRECATED’
     __attribute__((deprecated(message))) declarator
                                          ^~~~~~~~~~
In file included from ../src/heapdump/heapdump.cc:15:
../src/heapdump/heapdump.cc: At global scope:
/home/sam/.cache/node-gyp/10.17.0/include/node/node.h:573:43: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>)’ to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type]
       (node::addon_register_func) (regfunc),                          \
                                           ^
/home/sam/.cache/node-gyp/10.17.0/include/node/node.h:607:3: note: in expansion of macro ‘NODE_MODULE_X’
   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT (readability/null_usage)
   ^~~~~~~~~~~~~
../src/heapdump/heapdump.cc:188:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(addon, Initialize)
 ^~~~~~~~~~~
In file included from /home/sam/.cache/node-gyp/10.17.0/include/node/node.h:63,
                 from ../src/heapdump/heapdump.cc:15:
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/sam/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK_MODULE(target) Release/obj.target/heapdump.node
  COPY Release/heapdump.node
  ACTION omr_agentcore_binding_gyp_agentcore_target_Set_core_reported_version_build_level Release/obj.target/agentcore/geni/monitoring/agent/Agent.cpp
infile: ./src/ibmras/monitoring/agent/Agent.cpp
outfile: /home/sam/w/ibm/use-appmetrics/node_modules/appmetrics/build/Release/obj.target/agentcore/geni/monitoring/agent/Agent.cpp
Replacing '"99\.99\.99\.29991231"' with '"4.0.5.201911050735"'
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/Logger.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/LogManager.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/MemoryManager.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/util/FileUtils.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/util/LibraryUtils.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/port/linux/Thread.o
In file included from ../omr-agentcore/src/ibmras/common/port/linux/Thread.cpp:23:
../omr-agentcore/src/ibmras/common/port/linux/Thread.cpp: In function ‘void* ibmras::common::port::wrapper(void*)’:
../omr-agentcore/src/ibmras/common/port/linux/Thread.cpp:56:79: warning: cast between incompatible function types from ‘ibmras::common::port::THREAD_CALLBACK’ {aka ‘void* (*)(ibmras::common::port::ThreadData*)’} to ‘void (*)(void*)’ [-Wcast-function-type]
   pthread_cleanup_push(reinterpret_cast<void (*)(void*)>(data->getStopMethod()), data);
                                                                               ^
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/port/linux/Process.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/port/Lock.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/port/ThreadData.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/Properties.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/PropertiesFile.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/util/strUtils.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/common/util/sysUtils.o
  CXX(target) Release/obj.target/agentcore/geni/monitoring/agent/Agent.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/agent/threads/ThreadPool.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/agent/threads/WorkerThread.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/agent/SystemReceiver.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/connector/ConnectorManager.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/agent/Bucket.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/agent/BucketList.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/Plugin.o
  CXX(target) Release/obj.target/agentcore/omr-agentcore/src/ibmras/monitoring/connector/configuration/ConfigurationConnector.o
  SOLINK(target) Release/obj.target/omr-agentcore/libagentcore.so
  COPY Release/libagentcore.so
  CXX(target) Release/obj.target/hcapiplugin/omr-agentcore/src/ibmras/monitoring/connector/api/APIConnector.o
  SOLINK(target) Release/obj.target/omr-agentcore/libhcapiplugin.so
  COPY Release/libhcapiplugin.so
  CXX(target) Release/obj.target/envplugin/omr-agentcore/src/ibmras/monitoring/plugins/common/environment/envplugin.o
  SOLINK(target) Release/obj.target/omr-agentcore/libenvplugin.so
  COPY Release/libenvplugin.so
  CXX(target) Release/obj.target/cpuplugin/omr-agentcore/src/ibmras/monitoring/plugins/common/cpu/cpuplugin.o
  SOLINK(target) Release/obj.target/omr-agentcore/libcpuplugin.so
  COPY Release/libcpuplugin.so
  CXX(target) Release/obj.target/memoryplugin/omr-agentcore/src/ibmras/monitoring/plugins/common/memory/MemoryPlugin.o
  SOLINK(target) Release/obj.target/omr-agentcore/libmemoryplugin.so
  COPY Release/libmemoryplugin.so
  CXX(target) Release/obj.target/headlessplugin/omr-agentcore/src/ibmras/monitoring/connector/headless/HLConnector.o
../omr-agentcore/src/ibmras/monitoring/connector/headless/HLConnector.cpp: In member function ‘void ibmras::monitoring::connector::headless::HLConnector::startNewTempDir()’:
../omr-agentcore/src/ibmras/monitoring/connector/headless/HLConnector.cpp:208:8: warning: ignoring return value of ‘char* getcwd(char*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
  getcwd(cDirectory, sizeof(cDirectory));
  ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  SOLINK(target) Release/obj.target/omr-agentcore/libheadlessplugin.so
  COPY Release/libheadlessplugin.so
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Clients.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Heap.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/LinkedList.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Log.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Messages.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTAsync.o
../omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTAsync.c: In function ‘MQTTAsync_cycle’:
../omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTAsync.c:2561:13: warning: variable ‘nosockets_count’ set but not used [-Wunused-but-set-variable]
  static int nosockets_count = 0;
             ^~~~~~~~~~~~~~~
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTPacket.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTPacketOut.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTPersistence.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTPersistenceDefault.o
../omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTPersistenceDefault.c: In function ‘pstopen’:
../omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTPersistenceDefault.c:101:3: warning: passing argument 1 to restrict-qualified parameter aliases with argument 3 [-Wrestrict]
   sprintf( pCrtDirName, "%s/%s", pCrtDirName, pToken );
   ^~~~~~~
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTProtocolClient.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/MQTTProtocolOut.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/SocketBuffer.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Socket.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/StackTrace.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Thread.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/Tree.o
  CC(target) Release/obj.target/hcmqtt/omr-agentcore/org.eclipse.paho.mqtt.c/src/utf-8.o
  CXX(target) Release/obj.target/hcmqtt/omr-agentcore/src/ibmras/monitoring/connector/mqtt/MQTTConnector.o
  SOLINK(target) Release/obj.target/omr-agentcore/libhcmqtt.so
  COPY Release/libhcmqtt.so
  COPY ../omr-agentcore/libagentcore.so
  COPY ../omr-agentcore/plugins/libhcmqtt.so
  COPY ../omr-agentcore/plugins/libcpuplugin.so
  COPY ../omr-agentcore/plugins/libenvplugin.so
  COPY ../omr-agentcore/plugins/libmemoryplugin.so
  COPY ../omr-agentcore/plugins/libhcapiplugin.so
  COPY ../omr-agentcore/plugins/libheadlessplugin.so
  TOUCH Release/obj.target/omr-agentcore/external.stamp
  TOUCH Release/obj.target/omr-agentcore.stamp
  CXX(target) Release/obj.target/nodeenvplugin/src/plugins/node/env/nodeenvplugin.o
In file included from ../src/plugins/node/env/nodeenvplugin.cpp:29:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from ../src/plugins/node/env/nodeenvplugin.cpp:28:
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/sam/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK(target) Release/obj.target/libnodeenvplugin.so
  COPY Release/libnodeenvplugin.so
  CXX(target) Release/obj.target/nodegcplugin/src/plugins/node/gc/nodegcplugin.o
In file included from ../src/plugins/node/gc/nodegcplugin.cpp:24:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from ../src/plugins/node/gc/nodegcplugin.cpp:23:
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/sam/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK(target) Release/obj.target/libnodegcplugin.so
  COPY Release/libnodegcplugin.so
  CXX(target) Release/obj.target/nodeprofplugin/src/plugins/node/prof/nodeprofplugin.o
In file included from ../src/plugins/node/prof/nodeprofplugin.cpp:22:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from ../src/plugins/node/prof/nodeprofplugin.cpp:19:
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/sam/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK(target) Release/obj.target/libnodeprofplugin.so
  COPY Release/libnodeprofplugin.so
  CXX(target) Release/obj.target/nodeloopplugin/src/plugins/node/loop/nodeloopplugin.o
In file included from ../src/plugins/node/loop/nodeloopplugin.cpp:20:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from ../src/plugins/node/loop/nodeloopplugin.cpp:19:
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/sam/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK(target) Release/obj.target/libnodeloopplugin.so
  COPY Release/libnodeloopplugin.so
  CXX(target) Release/obj.target/nodeheapplugin/src/plugins/node/heap/nodeheapplugin.o
In file included from ../src/plugins/node/heap/nodeheapplugin.cpp:20:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
                                                              ^
In file included from ../src/plugins/node/heap/nodeheapplugin.cpp:19:
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/sam/.cache/node-gyp/10.17.0/include/node/node_object_wrap.h:84:78:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
                reinterpret_cast<Callback>(callback), type);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:65:61:   required from here
/home/sam/.cache/node-gyp/10.17.0/include/node/v8.h:9502:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
  SOLINK(target) Release/obj.target/libnodeheapplugin.so
  COPY Release/libnodeheapplugin.so
  COPY ../appmetrics.node
  COPY ../heapdump.node
  COPY ../libagentcore.so
  COPY ../plugins/libnodeenvplugin.so
  COPY ../plugins/libnodeheapplugin.so
  COPY ../plugins/libnodegcplugin.so
  COPY ../plugins/libnodeprofplugin.so
  COPY ../plugins/libnodeloopplugin.so
  COPY ../plugins/libhcmqtt.so
  COPY ../plugins/libcpuplugin.so
  COPY ../plugins/libenvplugin.so
  COPY ../plugins/libmemoryplugin.so
  COPY ../plugins/libhcapiplugin.so
  COPY ../plugins/libheadlessplugin.so
  TOUCH Release/obj.target/install.stamp
make: Leaving directory '/home/sam/w/ibm/use-appmetrics/node_modules/appmetrics/build'
npm WARN use-appmetrics@1.0.0 No description
npm WARN use-appmetrics@1.0.0 No repository field.

+ appmetrics@5.1.1
added 163 packages from 128 contributors and audited 408 packages in 31.772s
found 0 vulnerabilities

ibm/use-appmetrics % cat package.json
{
  "name": "use-appmetrics",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "appmetrics": "^5.1.1"
  }
}
ibm/use-appmetrics %