8000 update readme · Dynatrace/OneAgent-SDK-for-Java@5944bfd · GitHub
[go: up one dir, main page]

Skip to content

Commit 5944bfd

Browse files
committed
update readme
1 parent 51cca73 commit 5944bfd

File tree

1 file changed

+108
-7
lines changed

1 file changed

+108
-7
lines changed

README.md

Lines changed: 108 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ This is the official Java implementation of the [Dynatrace OneAgent SDK](https:/
2323
* [Trace web requests](#webrequests)
2424
* [Trace incoming web requests](#inwebrequests)
2525
* [Trace outgoing web requests](#outwebrequests)
26+
* [Trace messaging](#messaging)
2627
* [Further reading](#furtherreading)
2728
* [Help & Support](#help)
2829
* [Release notes](#releasenotes)
@@ -44,6 +45,7 @@ This is the official Java implementation of the [Dynatrace OneAgent SDK](https:/
4445

4546
|OneAgent SDK for Java|Required OneAgent version|
4647
|:--------------------|:------------------------|
48+
|1.5.0 |>=1.157 |
4749
|1.4.0 |>=1.151 |
4850
|1.3.0 |>=1.149 |
4951
|1.2.0 |>=1.147 |
@@ -131,13 +133,14 @@ The feature sets differ slightly with each language implementation. More functio
131133

132134
A more detailed specification of the features can be found in [Dynatrace OneAgent SDK](https://github.com/Dynatrace/OneAgent-SDK#features).
133135

134-
|Feature |Required OneAgent SDK for Java version|
135-
|:-----------------------------------------|:-------------------------------------|
136-
|Outgoing webrequests |>=1.4.0 |
137-
|Incoming webrequests |>=1.3.0 |
138-
|Custom request attributes |>=1.2.0 |
139-
|In process linking |>=1.1.0 |
140-
|Trace incoming and outgoing remote calls |>=1.0.3 |
136+
|Feature |Required OneAgent SDK for Java version|
137+
|:----------------------------------------------|:-------------------------------------|
138+
|Sending, receiving and processing of messages |>=1.5.0 |
139+
|Outgoing webrequests |>=1.4.0 |
140+
|Incoming webrequests |>=1.3.0 |
141+
|Custom request attributes |>=1.2.0 |
142+
|In process linking |>=1.1.0 |
143+
|Trace incoming and outgoing remote calls |>=1.0.3 |
141144

142145
<a name="remoting" />
143146

@@ -303,6 +306,103 @@ try {
303306
outgoingWebRequestTracer.end();
304307
}
305308
```
309+
<a name="messaging" />
310+
311+
### Trace messaging
312+
313+
You can use the SDK to trace messages sent or received via messaging system. When tracing messages, we distinguish between:
314+
315+
* sending a message
316+
* receiving a message
317+
* processing a received message
318+
319+
To trace an outgoing message, the code looks straight forward compared to other tracers:
320+
321+
```Java
322+
MessagingSystemInfo messagingSystemInfo = oneAgentSDK.createMessagingSystemInfo("myMessagingSystem",
323+
"requestQueue", MessageDestinationType.QUEUE, ChannelType.TCP_IP, "localhost:4711");
324+
OutgoingMessageTracer outgoingMessageTracer = oneAgentSDK.traceOutgoingMessage(messagingSystemInfo);
325+
outgoingMessageTracer.start();
326+
try {
327+
// transport the dynatrace tag along with the message:
328+
messageToSend.setHeaderField(
329+
OneAgentSDK.DYNATRACE_MESSAGE_PROPERTYNAME, outgoingMessageTracer.getDynatraceStringTag());
330+
theQueue.send(messageToSend);
331+
332+
// optional: add messageid provided from messaging system
333+
outgoingMessageTracer.setVendorMessageId(toSend.getMessageId());
334+
// optional: add correlationId
335+
outgoingMessageTracer.setCorrelationId(toSend.correlationId);
336+
} catch (Exception e) {
337+
outgoingMessageTracer.error(e.getMessage());
338+
Logger.logError(e);
339+
} finally {
340+
outgoingMessageTracer.end();
341+
}
342+
```
343+
344+
On the incoming side, we need to differentiate between the blocking receiving part and processing the received message. Therefore two different tracers are being used: ``ReceivingMessageTracer`` and ``ProcessingMessageTracer``.
345+
346+
```Java
347+
MessagingSystemInfo messagingSystemInfo = oneAgentSDK.createMessagingSystemInfo("myMessagingSystem",
348+
"requestQueue", MessageDestinationType.QUEUE, ChannelType.TCP_IP, "localhost:4711");
349+
350+
// message receiving daemon task:
351+
while(true) {
352+
IncomingMessageReceiveTracer incomingMessageReceiveTracer =
353+
oneAgentSDK.traceIncomingMessageReceive(messagingSystemInfo);
354+
incomingMessageReceiveTracer.start();
355+
try {
356+
// blocking call - until message is being available:
357+
Message queryMessage = theQueue.receive("client queries");
358+
IncomingMessageProcessTracer incomingMessageProcessTracer = oneAgentSDK
359+
.traceIncomingMessageProcess(messagingSystemInfo);
360+
incomingMessageProcessTracer.setDynatraceStringTag(
361+
queryMessage.getHeaderField(OneAgentSDK.DYNATRACE_MESSAGE_PROPERTYNAME));
362+
incomingMessageProcessTracer.setVendorMessageId(queryMessage.msgId);
363+
incomingMessageProcessTracer.setCorrelationId(queryMessage.correlationId);
364+
incomingMessageProcessTracer.start();
365+
try {
366+
// do the work ...
367+
} catch (Exception e) {
368+
incomingMessageProcessTracer.error(e.getMessage());
369+
Logger.logError(e);
370+
} finally {
371+
incomingMessageProcessTracer.end();
372+
}
373+
} catch (Exception e) {
374+
incomingMessageReceiveTracer.error(e.getMessage());
375+
Logger.logError(e);
376+
} finally {
377+
incomingMessageReceiveTracer.end();
378+
}
379+
}
380+
```
381+
382+
In case of non-blocking receive (e. g. via eventhandler), there is no need to use ``ReceivingMessageTracer`` - just trace processing of the message by using the ``ProcessingMessageTracer``:
383+
384+
```Java
385+
MessagingSystemInfo messagingSystemInfo = oneAgentSDK.createMessagingSystemInfo("myMessagingSystem",
386+
"requestQueue", MessageDestinationType.QUEUE, ChannelType.TCP_IP, "localhost:4711");
387+
388+
public void onMessage(Message message) {
389+
IncomingMessageProcessTracer incomingMessageProcessTracer = oneAgentSDK
390+
.traceIncomingMessageProcess(messagingSystemInfo);
391+
incomingMessageProcessTracer.setDynatraceStringTag((String)
392+
message.getObjectProperty(OneAgentSDK.DYNATRACE_MESSAGE_PROPERTYNAME));
393+
incomingMessageProcessTracer.setVendorMessageId(queryMessage.msgId);
394+
incomingMessageProcessTracer.setCorrelationId(queryMessage.correlationId);
395+
incomingMessageProcessTracer.start();
396+
try {
397+
// do the work ...
398+
} catch (Exception e) {
399+
incomingMessageProcessTracer.error(e.getMessage());
400+
Logger.logError(e);
401+
} finally {
402+
incomingMessageProcessTracer.end();
403+
}
404+
}
405+
```
306406

307407
<a name="furtherreading" />
308408

@@ -343,6 +443,7 @@ see also https://github.com/Dynatrace/OneAgent-SDK-for-Java/releases
343443

344444
|Version|Description |Links |
345445
|:------|:--------------------------------------|:----------------------------------------|
446+
|1.5.0 |Added support for messaging |[binary](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.5.0/oneagent-sdk-1.5.0.jar) [source](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.5.0/oneagent-sdk-1.5.0-sources.jar) [javadoc](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.5.0/oneagent-sdk-1.5.0-javadoc.jar)|
346447
|1.4.0 |Added support for outgoing webrequests |[binary](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.4.0/oneagent-sdk-1.4.0.jar) [source](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.4.0/oneagent-sdk-1.4.0-sources.jar) [javadoc](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.4.0/oneagent-sdk-1.4.0-javadoc.jar)|
347448
|1.3.0 |Added support for incoming webrequests |[binary](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.3.0/oneagent-sdk-1.3.0.jar) [source](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.3.0/oneagent-sdk-1.3.0-sources.jar) [javadoc](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.3.0/oneagent-sdk-1.3.0-javadoc.jar)|
348449
|1.2.0 |Added support for in-process-linking |[binary](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.2.0/oneagent-sdk-1.2.0.jar) [source](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.2.0/oneagent-sdk-1.2.0-sources.jar) [javadoc](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.2.0/oneagent-sdk-1.2.0-javadoc.jar)|

0 commit comments

Comments
 (0)
0