IBM i Global

 View Only

 Monitor IWS server with Instana

Felipe Nieves's profile image
Felipe Nieves posted Wed July 16, 2025 01:43 PM

Hi Everyone.

I'm just reviewing the Instana documentation and I came across with the list of sensors for IBM:

And the WebSphere Liberty caught my eye, if I understand correctly, these servers are based on Liberty so my gues is that it would be possible to monitor these, right?

Right after that list it reads the following: 

To collect the metrics for WebSphere Liberty, you must enable the monitor-1.0 feature. To enable this feature, open the server.xml file, which is located in the <websphere-liberty_install_dir>/usr/servers/<specific_server>/ directory

So my question is this, do you guys know if this setting its supported on IWS servers? if someone has tried, do you know what kind of information can we get from this sensors?

We have an scenario in which we're interested on review the response time for some APIs hosted with this technology in our systems, something that can help us determine if there are system resource issues or comms.

I hope you can help me with this question. I'll post this question also on the instana group.

Have a nice day.

Marius le Roux's profile image
Marius le Roux IBM Champion

Hi Felipe, 

Speaking here out of my limited experience of IWS (*still getting deeper knowledge myself). 

Yes, new IWS AFAIK uses the lighter runtimes of Liberty which one can seek that module just needs to be enabled. 

(see: https://www.ibm.com/support/pages/integrated-web-services-ibm-i-frequently-asked-questions )

What is the web services engine based on?

Version 2.6 or above of the integrated web services (IWS) server is based on the IBM WebSphere Application Server Liberty Profile’s web service engine.

I did check in the path  /QIBM/ProdData/OS/ApplicationServer/runtime/wlp/lib  and it would seem that that jar is located there "com.ibm.ws.monitor_1.0.99.jar", so I would assume one can just enable it. 


Though the best would be to get a hold of @Nadir K Amra he is the lead on IWS) and sometimes do comment on these forums He will be a good contact to advise on what you seek. 

You can find him here : https://community.ibm.com/community/user/profile?UserKey=706c5b5e-15ee-4e6b-842e-87bf68a82bf1

One possible issue you might face is that the directory structure from where normal installations on IWS vs Liberty on other platforms exist might not be the same which will require some tweaking in Instana (i.e. dont expect it to run out of the box). 

Hope this helps. 

Marius

Nadir K Amra's profile image
Nadir K Amra

Hi,

Let me first say that I have no experience with Instana or similar tools.  To my knowledge you can monitor JVMs via Instana.  IWS currently does not expose or support enabling the monitor-1.0 feature.  Having said that, you can do so manually as indicated in the instructions.  I am not sure how useful it is from a performance point of view since IWS does not generate various spans (points of interest, like the point where ILE program is called) so you can pinpoint where a performance bottleneck is.  But I have limited knowledge so it may be still useful.

We do plan on supporting Observability tooling in the near future.  In the meantime, have you tried looking at enabling HTTP server access logging in the IWS server? It will dump out various metrics. The Following list indicates the available options and the information that is printed if that option is specified as part of the HTTP access log format:

%a
Remote address.

%A
Local IP address.

%b
Response size in bytes excluding headers.

%B
Response size in bytes excluding headers. The number 0 is printed instead of dash (-) if no value is found.

%{CookieNmae}C or %C
The request cookie specified within the brackets, or if the brackets are not included, prints all of the request cookies.

%D
The elapsed time of the request - millisecond accuracy, microsecond precision.

%h
Remote host.

%{HeaderName}i
The header name specified within the brackets from the request.

%m
Request method.

%{HeaderName}o
The header name specified within the brackets from the response.

%q
Output the query string with any password escaped.

%r
First line of the request.

%{R}W
Service time of the request from the moment the request is received until the first set of bytes of the response is sent - millisecond accuracy, microsecond precision. The %{R}W option is often a good approximation for application response time (as compared to %D which is end-to-end response time including client and network).

%s
Status code.

%t
NCSA format of the start time of the request.

%{t}W
The current time when the message to the access log is queued to be logged in normal NCSA format.

%u
Remote user according to the WebSphere Application Server specific $WSRU header.

%U
URL Path, not including the query string.

In particular, you may want to take a look at the %D and %{R}W options. 

Felipe Nieves's profile image
Felipe Nieves

Hi @Marius le Roux and @Nadir K Amra.

Thank you both for your responses.

I went ahead yesterday and made the change on the server.xml file to include the monitor feature just to see if that prevent the server from starting and it did started ok, so at least we have that out of the way.

And I agree with you @Marius le Roux, it will be a matter of testing and tweaking Instana to see if could "sense" this jobs, also was very helpful to see that I was understanding the docs right 

@Nadir K Amra, I wasn't aware of that capabilities for the logging function, those are amazing! those pretty much cover the original ned, let me do some tests and I'll update this thread.

Thank you again guys!