PerfMon Server Agent is working fine with JMeter's Listener jp#gc - PerfMon Metrics Collector.
But can it act as a standalone application performance monitoring (APM) agent?
I saw that I can connect and request specific metrics
Server Agent uses simple plain-text protocol, anyone can use agent's capabilities implementing client, based on kg.apc.perfmon.client.Transport interface. If anyone's interested, start the topic on the support forums and I'll describe how to connect third-party client app to agent.
But can I start PerfMon Server when my application is started and save metrics "always" (until application is down) without any listener?
Also can I display the results in a tool other than jp#gc - PerfMon Metrics Collector?
If you look into Server Agent documentation you'll learn that it can be used by any application capable of sending plain text message over TCP or UDP protocol (i.e. telnet or netcat) so you can trigger metrics collection by just sending metric name to the running Server Agent.
With regards to starting PerfMon when your application is started - Server Agent is normal pure Java application so the approach will vary depending on operating system you're using and the nature of your application. Most likely you will need to come up with a shell script which starts both.
For the moment you won't be able to use Server Agent without a "client" - an application which will request metrics from it over TCP or UDP. So if you don't plan to use JMeter you will need to come up with a TCP or UDP client solution which will periodically query the Server Agent for metrics. The output will be normal CSV file which can be visualised using any tool (Libre Office Calc, Grafana, Google Charts, whatever)
More information: How to Monitor Your Server Health & Performance During a JMeter Load Test
Related
Looking for tool to do performance testing for desktop application.
I was trying to use Jmeter for performance testing but since my application uses UDP protocol so i think i cannot use jmeter record and replay functionality.
How can i record and replay desktop application which uses UDP using JMeter?
You need to add UDP Request plugin
This plugin adds UDP protocol support to JMeter. With this plugin you can load test DNS, NTP, TFTP, Boot servers
JMeter can record and replay only HTTP and HTTPS traffic (both are using TCP protocol as underlying transport) with its HTTP(S) Test Script Recorder therefore you will not be able to record the traffic using JMeter.
So I would recommend capturing raw UDP datagrams using a sniffer tool like Wireshark and building the JMeter test plan by manually adding and populating appropriate UDP Sampler requests. Check out Load Testing UDP - The Ultimate Guide article for detailed information.
I am trying to monitor Nifi using Splunk monitoring tool. I need to send JMX metrics to splunk index, so that it processes data. is there a way to monitor nifi using JMX Port ?
FYI: I am not looking for rest API /rest endpoint
Yes, if you set the System property com.sun.management.jmxremote.port in $NIFI_HOME/conf/bootstrap.conf as described in Monitoring and Management Using JMX Technology, you can connect to this port with a remote monitoring client.
To monitor locally with jconsole, you don't need to do anything; just start Apace NiFi as normal and select the "org.apache.nifi.NiFi" process when presented with the list of running processes in JConsole.
It is strongly recommended to secure your monitoring connection with TLS and use a strong authentication mechanism like client certificates to ensure the application is safe.
I have a client/server configuration.
In the client I have an application that talks to the server by http/https withou a browser being used.
I want to know how to configure client and jmeter to record the http requests being send from client to server
The client is a Windows 10 machine.
There can be several options:
Your application has dedicated proxy configuration. In this case just configure it to use JMeter as a proxy
Your application respects OS-level proxy settings. For Windows 10 hit "Win + S" and type "proxy". Perform proxy configuration at all available locations:
If everything goes well you should be able to record your application network activity using JMeter. Refer to How to Run Performance Tests of Desktop Applications Using JMeter for a little bit more detailed information and some troubleshooting steps.
Could some one please help me on the below
Is it possible to record desktop applications using JMeter?
I just tried the following, but didn't work
File--->Template--->Create
Workbench--->Recording Script-->Start
Launched my application which is desktop and perform some actions
Workbench--->Recording Script-->Stop
When I expand Threadgroup--->Recording Controller-Nothing recorded
Where am I missing?
You miss one important step:
configure your desktop application to use proxy and provide host and port where JMeter is running (localhost and 8888 if they live on the same machine
Also be aware that:
JMeter can record only HTTP or HTTPS traffic, if your application uses other protocol - the calls will not be recorded. In that case you can consider The Grinder as an alternative, it comes with TCPProxy which is more low level therefore is cable to capture more protocols
If your application uses HTTPS protocol you will need an SSL certificate in order to decrypt and record the requests, you can configure your application to use JMeter's certificate or vice versa.
On MS Windows you may need to add a Loopback Adapter
See How to Run Performance Tests of Desktop Applications Using JMeter article for more details on simulating multiple desktop applications using JMeter
As help explains:
The recorder is implemented as an HTTP(S) proxy server. You need to set up your browser use the proxy for all HTTP and HTTPS requests.
Technically browser is also a desktop application, so to answer your first question, yes, you can record desktop applications using JMeter. However, just like browser, your desktop application must have an ability to connect to the internet via user-defined proxy. And also recorder will only record HTTP traffic from and to the application, it will not record client-only UI events, or traffic generated by any other protocols.
So to sum up:
Any desktop application can use JMeter recorder
But only if you can configure it to use JMeter recorder as a proxy
And only if your goal is to record HTTP traffic related to your desktop application, nothing else.
I am running jmeter on a powerful server in distributed mode and trying connect to it from the GUI on my local machine. Everything works OK and when i select remote server run and tail the jmeter logs on the server it goes through the starting tests...running test.... etc but it then says connection refused on * ...*
This is my local machine so I suspect that the tests are being run on the server and then the results are being piped back to the client and this is where the problems are.
So I have one way communication where my client GUI can send commands to the server but the server cannot send them back to my client PC
Any ideas what might be going on?
Many Thanks
i think the idea behind jmeter in your use-case would be to skip the "native" gui that interacts with the server. you will have to implement jmeter samplers that act just as the gui would - this includes e.g. handshakes etc.
for example, a session-id would be kept alive and passed from sampler to sampler to simulate the frontend..