8000 Merge pull request #9 from Dynatrace/addOutgoingWebrequests · newtork/OneAgent-SDK-for-Java@51cca73 · GitHub
[go: up one dir, main page]

Skip to content

Commit 51cca73

Browse files
author
Sonja Chèvre
authored
Merge pull request Dynatrace#9 from Dynatrace/addOutgoingWebrequests
Add outgoing webrequests
2 parents 7a2dfff + cc73d33 commit 51cca73

File tree

78 files changed
+1761
-952
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+1761
-952
lines changed

README.md

Lines changed: 54 additions & 7 deletions
<scope>compile</scope>
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ This is the official Java implementation of the [Dynatrace OneAgent SDK](https:/
2020
* [Trace incoming and outgoing remote calls](#remoting)
2121
* [In process linking](#inprocess)
2222
* [Add custom request attributes](#scav)
23-
* [Trace incoming web requests](#webrequests)
23+
* [Trace web requests](#webrequests)
24+
* [Trace incoming web requests](#inwebrequests)
25+
* [Trace outgoing web requests](#outwebrequests)
2426
* [Further reading](#furtherreading)
2527
* [Help & Support](#help)
2628
* [Release notes](#releasenotes)
@@ -42,6 +44,7 @@ This is the official Java implementation of the [Dynatrace OneAgent SDK](https:/
4244

4345
|OneAgent SDK for Java|Required OneAgent version|
4446
|:--------------------|:------------------------|
47+
|1.4.0 |>=1.151 |
4548
|1.3.0 |>=1.149 |
4649
|1.2.0 |>=1.147 |
4750
|1.1.0 |>=1.143 |
@@ -59,7 +62,7 @@ If you want to integrate the OneAgent SDK into your application, just add the fo
5962
<dependency>
6063
<groupId>com.dynatrace.oneagent.sdk.java</groupId>
6164
<artifactId>oneagent-sdk</artifactId>
62-
<version>1.3.0</version>
65+
<version>1.4.0</version>
6366
6467
</dependency>
6568

@@ -130,6 +133,7 @@ A more detailed specification of the features can be found in [Dynatrace OneAgen
130133

131134
|Feature |Required OneAgent SDK for Java version|
132135
|:-----------------------------------------|:-------------------------------------|
136+
|Outgoing webrequests |>=1.4.0 |
133137
|Incoming webrequests |>=1.3.0 |
134138
|Custom request attributes |>=1.2.0 |
135139
|In process linking |>=1.1.0 |
@@ -218,17 +222,21 @@ When no service call is being traced, the custom request attributes are dropped.
218222

219223
<a name="webrequests"/>
220224

221-
## Trace incoming web requests
225+
### Trace web requests
222226

223-
You can use the SDK to trace incoming web requests. This might be useful if Dynatrace does not support the respective web server framework or language.
227+
<a name="inwebrequests"/>
224228

225-
To trace any kind of incoming web request you first need to create a WebServerInfo object. The info object represents the endpoint of your web server (webservername, applicationname and context root). This object should be reused for all traced webrequests for the same application.
229+
#### Trace incoming web requests
230+
231+
You can use the SDK to trace incoming web requests. This might be useful if Dynatrace does not support the respective web server framework or language processing the incoming web requests.
232+
233+
To trace an incoming web request you first need to create a WebServerInfo object. The info object represents the endpoint of your web server (web server name, application name and context root). This object should be reused for all traced web requests within for the same application.
226234

227235
```Java
228236
WebServerInfo wsInfo = OneAgentSDK.createWebServerInfo("WebShopProduction", "CheckoutService", "/api/service/checkout");
229237
```
230238

231-
To trace a specific incoming web request you then need to create a Tracer object. It is important to provide all http headers from the request to the SDK by calling addRequestHeader(...). This ensures that tagging with our built-in sensor is working.
239+
To trace a specific incoming web request you then need to create a Tracer object. Make sure you provide all http headers from the request to the SDK by calling addRequestHeader(...). This ensures that tagging with our built-in sensor will work.
232240

233241
```Java
234242
IncomingWebRequestTracer tracer = OneAgentSDK.traceIncomingWebRequest(wsInfo,"https://www.oursupershop.com/api/service/checkout/save","POST")
@@ -250,14 +258,52 @@ try {
250258
int statusCodeReturnedToClient = processWebRequest();
251259
tracer.setStatusCode(statusCodeReturnedToClient);
252260
} catch (Exception e) {
253-
tracer.setStatusCode(500); // we expect, the container sends http 500 in case request processing throws an exception
261+
tracer.setStatusCode(500); // we expect that the container sends HTTP 500 status code in case request processing throws an exception
254262
tracer.error(e);
255263
throw e;
256264
} finally {
257265
tracer.end();
258266
}
259267
```
260268

269+
<a name="outwebrequests"/>
270+
271+
#### Trace outgoing web requests
272+
273+
You can use the SDK to trace outgoing web requests. This might be useful if Dynatrace does not support the respective http library or language sending the request.
274+
275+
To trace an outgoing web request you need to create a Tracer object. It is important to send the Dynatrace Header. This ensures that tagging with our built-in sensor will work.
276+
277+
```Java
278+
OutgoingWebRequestTracer outgoingWebRequestTracer = oneAgentSdk.traceOutgoingWebRequest(url, "GET");
279+
outgoingWebRequestTracer.start();
280+
try {
281+
yourHttpClient.setUrl(url);
282+
283+
// sending HTTP header OneAgentSDK.DYNATRACE_HTTP_HEADERNAME is necessary for tagging:
284+
yourHttpClient.addRequestHeader(OneAgentSDK.DYNATRACE_HTTP_HEADERNAME, outgoingWebRequestTracer.getDynatraceStringTag());
285+
286+
// provide all request headers to outgoingWebRequestTracer (optional):
287+
for (Entry<String, String> entry : yourHttpClient.getRequestHeaders().entrySet()) {
288+
outgoingWebRequestTracer.addRequestHeader(entry.getKey(), entry.getValue());
289+
}
290+
291+
yourHttpClient.processHttpRequest();
292+
293+
for (Entry<String, List<String>> entry : yourHttpClient.getHeaderFields().entrySet()) {
294+
for (String value : entry.getValue()) {
295+
outgoingWebRequestTracer.addResponseHeader(entry.getKey(), value);
296+
}
297+
}
298+
outgoingWebRequestTracer.setStatusCode(yourHttpClient.getResponseCode());
299+
300+
} catch (Exception e) {
301+
outgoingWebRequestTracer.error(e);
302+
} finally {
303+
outgoingWebRequestTracer.end();
304+
}
305+
```
306+
261307
<a name="furtherreading" />
262308

263309
## Further readings
@@ -297,6 +343,7 @@ see also https://github.com/Dynatrace/OneAgent-SDK-for-Java/releases
297343

298344
|Version|Description |Links |
299345
|:------|:--------------------------------------|:----------------------------------------|
346+
|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)|
300347
|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)|
301348
|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)|
302349
|1.1.0 |Added support for in-process-linking |[binary](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.1.0/oneagent-sdk-1.1.0.jar) [source](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.1.0/oneagent-sdk-1.1.0-sources.jar) [javadoc](https://search.maven.org/remotecontent?filepath=com/dynatrace/oneagent/sdk/java/oneagent-sdk/1.1.0/oneagent-sdk-1.1.0-javadoc.jar)|

docs/allclasses-frame.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
<!--NewPage-->
33
<HTML>
44
<HEAD>
5-
<!-- Generated by javadoc (build 1.6.0_45) on Thu Jun 07 11:05:10 CEST 2018 -->
5+
<!-- Generated by javadoc (build 1.6.0_45) on Tue Jul 10 17:18:46 CEST 2018 -->
66
<TITLE>
7-
All Classes (sdk 1.3.0 API)
7+
All Classes (sdk 1.4.0 API)
88
</TITLE>
99

10-
<META NAME="date" CONTENT="2018-06-07">
10+
<META NAME="date" CONTENT="2018-07-10">
1111

1212
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
1313

@@ -43,6 +43,8 @@
4343
<BR>
4444
<A HREF="com/dynatrace/oneagent/sdk/api/OutgoingTaggable.html" title="interface in com.dynatrace.oneagent.sdk.api" target="classFrame"><I>OutgoingTaggable</I></A>
4545
<BR>
46+
<A HREF="com/dynatrace/oneagent/sdk/api/OutgoingWebRequestTracer.html" title="interface in com.dynatrace.oneagent.sdk.api" target="classFrame"><I>OutgoingWebRequestTracer</I></A>
47+
<BR>
4648
<A HREF="com/dynatrace/oneagent/sdk/api/enums/SDKState.html" title="enum in com.dynatrace.oneagent.sdk.api.enums" target="classFrame">SDKState</A>
4749
<BR>
4850
<A HREF="com/dynatrace/oneagent/sdk/api/Tracer.html" title="interface in com.dynatrace.oneagent.sdk.api" target="classFrame"><I>Tracer</I></A>

docs/allclasses-noframe.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
<!--NewPage-->
33
<HTML>
44
<HEAD>
5-
<!-- Generated by javadoc (build 1.6.0_45) on Thu Jun 07 11:05:10 CEST 2018 -->
5+
<!-- Generated by javadoc (build 1.6.0_45) on Tue Jul 10 17:18:46 CEST 2018 -->
66
<TITLE>
7-
All Classes (sdk 1.3.0 API)
7+
All Classes (sdk 1.4.0 API)
88
</TITLE>
99

10-
<META NAME="date" CONTENT="2018-06-07">
10+
<META NAME="date" CONTENT="2018-07-10">
1111

1212
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
1313

@@ -43,6 +43,8 @@
4343
<BR>
4444
<A HREF="com/dynatrace/oneagent/sdk/api/OutgoingTaggable.html" title="interface in com.dynatrace.oneagent.sdk.api"><I>OutgoingTaggable</I></A>
4545
<BR>
46+
<A HREF="com/dynatrace/oneagent/sdk/api/OutgoingWebRequestTracer.html" title="interface in com.dynatrace.oneagent.sdk.api"><I>OutgoingWebRequestTracer</I></A>
47+
<BR>
4648
<A HREF="com/dynatrace/oneagent/sdk/api/enums/SDKState.html" title="enum in com.dynatrace.oneagent.sdk.api.enums">SDKState</A>
4749
<BR>
4850
<A HREF="com/dynatrace/oneagent/sdk/api/Tracer.html" title="interface in com.dynatrace.oneagent.sdk.api"><I>Tracer</I></A>

docs/com/dynatrace/oneagent/sdk/OneAgentSDKFactory.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
<!--NewPage-->
33
<HTML>
44
<HEAD>
5-
<!-- Generated by javadoc (build 1.6.0_45) on Thu Jun 07 11:05:09 CEST 2018 -->
5+
<!-- Generated by javadoc (build 1.6.0_45) on Tue Jul 10 17:18:46 CEST 2018 -->
66
<TITLE>
7-
OneAgentSDKFactory (sdk 1.3.0 API)
7+
OneAgentSDKFactory (sdk 1.4.0 API)
88
</TITLE>
99

10-
<META NAME="date" CONTENT="2018-06-07">
10+
<META NAME="date" CONTENT="2018-07-10">
1111

1212
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
1313

1414
<SCRIPT type="text/javascript">
1515
function windowTitle()
1616
{
1717
if (location.href.indexOf('is-external=true') == -1) {
18-
parent.document.title="OneAgentSDKFactory (sdk 1.3.0 API)";
18+
parent.document.title="OneAgentSDKFactory (sdk 1.4.0 API)";
1919
}
2020
}
2121
</SCRIPT>

docs/com/dynatrace/oneagent/sdk/api/InProcessLink.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
<!--NewPage-->
33
<HTML>
44
<HEAD>
5-
<!-- Generated by javadoc (build 1.6.0_45) on Thu Jun 07 11:05:09 CEST 2018 -->
5+
<!-- Generated by javadoc (build 1.6.0_45) on Tue Jul 10 17:18:46 CEST 2018 -->
66
<TITLE>
7-
InProcessLink (sdk 1.3.0 API)
7+
InProcessLink (sdk 1.4.0 API)
88
</TITLE>
99

10-
<META NAME="date" CONTENT="2018-06-07">
10+
<META NAME="date" CONTENT="2018-07-10">
1111

1212
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
1313

1414
<SCRIPT type="text/javascript">
1515
function windowTitle()
1616
{
1717
if (location.href.indexOf('is-external=true') == -1) {
18-
parent.document.title="InProcessLink (sdk 1.3.0 API)";
18+
parent.document.title="InProcessLink (sdk 1.4.0 API)";
1919
}
2020
}
2121
</SCRIPT>

docs/com/dynatrace/oneagent/sdk/api/InProcessLinkTracer.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
<!--NewPage-->
33
<HTML>
44
<HEAD>
5-
<!-- Generated by javadoc (build 1.6.0_45) on Thu Jun 07 11:05:09 CEST 2018 -->
5+
<!-- Generated by javadoc (build 1.6.0_45) on Tue Jul 10 17:18:46 CEST 2018 -->
66
<TITLE>
7-
InProcessLinkTracer (sdk 1.3.0 API)
7+
InProcessLinkTracer (sdk 1.4.0 API)
88
</TITLE>
99

10-
<META NAME="date" CONTENT="2018-06-07">
10+
<META NAME="date" CONTENT="2018-07-10">
1111

1212
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
1313

1414
<SCRIPT type="text/javascript">
1515
function windowTitle()
1616
{
1717
if (location.href.indexOf('is-external=true') == -1) {
18-
parent.document.title="InProcessLinkTracer (sdk 1.3.0 API)";
18+
parent.document.title="InProcessLinkTracer (sdk 1.4.0 API)";
1919
}
2020
}
2121
</SCRIPT>

docs/com/dynatrace/oneagent/sdk/api/IncomingRemoteCallTracer.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
<!--NewPage-->
33
<HTML>
44
<HEAD>
5-
<!-- Generated by javadoc (build 1.6.0_45) on Thu Jun 07 11:05:09 CEST 2018 -->
5+
<!-- Generated by javadoc (build 1.6.0_45) on Tue Jul 10 17:18:46 CEST 2018 -->
66
<TITLE>
7-
IncomingRemoteCallTracer (sdk 1.3.0 API)
7+
IncomingRemoteCallTracer (sdk 1.4.0 API)
88
</TITLE>
99

10-
<META NAME="date" CONTENT="2018-06-07">
10+
<META NAME="date" CONTENT="2018-07-10">
1111

1212
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
1313

1414
<SCRIPT type="text/javascript">
1515
function windowTitle()
1616
{
1717
if (location.href.indexOf('is-external=true') == -1) {
18-
parent.document.title="IncomingRemoteCallTracer (sdk 1.3.0 API)";
18+
parent.document.title="IncomingRemoteCallTracer (sdk 1.4.0 API)";
1919
}
2020
}
2121
</SCRIPT>

docs/com/dynatrace/oneagent/sdk/api/IncomingTaggable.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
<!--NewPage-->
33
<HTML>
44
<HEAD>
5-
<!-- Generated by javadoc (build 1.6.0_45) on Thu Jun 07 11:05:09 CEST 2018 -->
5+
<!-- Generated by javadoc (build 1.6.0_45) on Tue Jul 10 17:18:46 CEST 2018 -->
66
<TITLE>
7-
IncomingTaggable (sdk 1.3.0 API)
7+
IncomingTaggable (sdk 1.4.0 API)
88
</TITLE>
99

10-
<META NAME="date" CONTENT="2018-06-07">
10+
<META NAME="date" CONTENT="2018-07-10">
1111

1212
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
1313

1414
<SCRIPT type="text/javascript">
1515
function windowTitle()
1616
{
1717
if (location.href.indexOf('is-external=true') == -1) {
18-
pare 341A nt.document.title="IncomingTaggable (sdk 1.3.0 API)";
18+
parent.document.title="IncomingTaggable (sdk 1.4.0 API)";
1919
}
2020
}
2121
</SCRIPT>

docs/com/dynatrace/oneagent/sdk/api/IncomingWebRequestTracer.html

Lines changed: 4 additions & 4 deletions
Original file line number< F438 /th>Diff line numberDiff line change
@@ -2,20 +2,20 @@
22
<!--NewPage-->
33
<HTML>
44
<HEAD>
5-
<!-- Generated by javadoc (build 1.6.0_45) on Thu Jun 07 11:05:09 CEST 2018 -->
5+
<!-- Generated by javadoc (build 1.6.0_45) on Tue Jul 10 17:18:46 CEST 2018 -->
66
<TITLE>
7-
IncomingWebRequestTracer (sdk 1.3.0 API)
7+
IncomingWebRequestTracer (sdk 1.4.0 API)
88
</TITLE>
99

10-
<META NAME="date" CONTENT="2018-06-07">
10+
<META NAME="date" CONTENT="2018-07-10">
1111

1212
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
1313

1414
<SCRIPT type="text/javascript">
1515
function windowTitle()
1616
{
1717
if (location.href.indexOf('is-external=true') == -1) {
18-
parent.document.title="IncomingWebRequestTracer (sdk 1.3.0 API)";
18+
parent.document.title="IncomingWebRequestTracer (sdk 1.4.0 API)";
1919
}
2020
}
2121
</SCRIPT>

docs/com/dynatrace/oneagent/sdk/api/LoggingCallback.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
<!--NewPage-->
33
<HTML>
44
<HEAD>
5-
<!-- Generated by javadoc (build 1.6.0_45) on Thu Jun 07 11:05:09 CEST 2018 -->
5+
<!-- Generated by javadoc (build 1.6.0_45) on Tue Jul 10 17:18:46 CEST 2018 -->
66
<TITLE>
7-
LoggingCallback (sdk 1.3.0 API)
7+
LoggingCallback (sdk 1.4.0 API)
88
</TITLE>
99

10-
<META NAME="date" CONTENT="2018-06-07">
10+
<META NAME="date" CONTENT="2018-07-10">
1111

1212
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
1313

1414
<SCRIPT type="text/javascript">
1515
function windowTitle()
1616
{
1717
if (location.href.indexOf('is-external=true') == -1) {
18-
parent.document.title="LoggingCallback (sdk 1.3.0 API)";
18+
parent.document.title="LoggingCallback (sdk 1.4.0 API)";
1919
}
2020
}
2121
</SCRIPT>

0 commit comments

Comments
 (0)
0