Open rju opened 1 week ago
author André van Hoorn -- Fri, 22 Apr 2016 09:39:20 +0200
Indeed, it looks like the captured traces in your current setup are not connected (different traces IDs on client and server, namely 2527223.. vs. 3963167...). Are you sure that your configured interceptors are actually executed? If configured correctly, Kieker writes trace information into the SOAP header (see the probes for the exact variable names).
We have a hello world example in our test suite (`kieker.test.monitoring.junit.probe.cxf`), which might be helpful.
Don't hesitate to contact us if you need further help.
JIRA Issue: KIEKER-1445 monitoring rpc programs based on kieker's SOAP interceptors Original Reporter: Wx Jin
My purpose is to monitor SOAP-based web service calls in order to construct a simple global method-call view.
My program is in github: https://github.com/j123kaishichufa/temporary_for_email.The package include a simple JAVA program, kieker lib and configure files.
Kieker includes the probes OperationExecutionSOAPRequestOutInterceptor, OperationExecutionSOAPRequestInInterceptor, OperationExecutionSOAPResponseOutInterceptor, and OperationExecutionSOAPResponseInInterceptor which can be used to monitor SOAP-based web service calls. I followed the userguide and added interceptor beans in apache cxf configure file. But It seemed like not working.
My operation is detailed in the following:
in server VM, cmdline is like this:
$ cd serverpoint/rpctest
$ javac src/com/mkyong/ws/* src/com/mkyong/endpoint/* -d build
$ java -javaagent:lib/lib_12/aspectjweaver-1.8.2.jar -cp build/:lib/lib_12/kieker-1.12.jar:lib/lib_12/commons-logging-1.2.jar com.mkyong.endpoint.HelloWorldPublisher -Dcxf.config.file=build/META_INF/cxf.xml
in client VM, cmdline is like this:
$ cd clientpoint/rpctest
$ javac src/com/mkyong/client/* -d build
$ java -javaagent:lib/lib_12/aspectjweaver-1.8.2.jar -cp build/:lib/lib_12/kieker-1.12.jar:lib/lib_12/commons-logging-1.2.jar com.mkyong.client.HelloWorldClient -Dcxf.config.file=build/META_INF/cxf.xml
After above operations, generates records.
in server, kieker records are :
$0;1458104222394964031;1.10;KIEKER;ubuntu;1;false;0;NANOSECONDS;1
$1;1458104222394415114;public com.mkyong.ws.HelloWorldImpl.<init>();<no-session-id>;396316767208603649;1458104222394195708;1458104222394200531;ubuntu;1;1
$1;1458104222661211412;public static void com.mkyong.endpoint.HelloWorldPublisher.main(java.lang.String[]);<no-session-id>;396316767208603649;1458104222371361105;1458104222661205374;ubuntu;0;0
$1;1458104433408347625;public java.lang.String com.mkyong.ws.HelloWorldImpl.getHelloWorldAsString(java.lang.String);<no-session-id>;396316767208603650;1458104433408322864;1458104433408344185;ubuntu;0;0
in client, kieker records are :
$0;1458104434249670126;1.10;KIEKER;ubuntu;1;false;0;NANOSECONDS;1
$1;1458104434249059479;public static void com.mkyong.client.HelloWorldClient.main(java.lang.String[]);<no-session-id>;2527223078396624897;1458104434012475939;1458104434248926392;ubuntu;0;0
But It seems like records in client and server are independent, and not catching HTTP web calls. In my case, records do not explicitly or directly show the Client com.mkyong.client.HelloWorldClient.main() indeed calls remote server's method/function com.mkyong.ws.HelloWorldImpl.getHelloWorldAsString().
From http://kieker-monitoring.net/blog/monitoring-of-remote-procedure-calls/ , it shows Kiker has supported monitoring RPC traces across system boundaries. Maybe I miss some configurations or others, So please help me to solve this puzzle to catch RPC traces across system boundaries. In other words, it will help me for monitoring distributed applications.
I am looking forward for your reply. Thanks.