|
1 | 1 | # Library Instrumentation for Ratpack version 1.7 and higher |
2 | 2 |
|
3 | | -Provides OpenTelemetry instrumentation for [Ratpack](https://ratpack.io/), enabling HTTP client and server spans and |
4 | | -metrics. |
| 3 | +Provides OpenTelemetry instrumentation for [Ratpack](https://ratpack.io/), enabling HTTP client and |
| 4 | +server spans and metrics. |
5 | 5 |
|
6 | 6 | ## Quickstart |
7 | 7 |
|
@@ -29,30 +29,38 @@ implementation("io.opentelemetry.instrumentation:opentelemetry-ratpack-1.7:OPENT |
29 | 29 |
|
30 | 30 | ### Usage |
31 | 31 |
|
| 32 | +The instrumentation library provides implementations for both server and client instrumentation |
| 33 | +that wrap Ratpack components. |
| 34 | + |
32 | 35 | ```java |
33 | 36 | import io.opentelemetry.api.OpenTelemetry; |
34 | 37 | import io.opentelemetry.instrumentation.ratpack.v1_7.RatpackServerTelemetry; |
35 | 38 | import io.opentelemetry.instrumentation.ratpack.v1_7.RatpackClientTelemetry; |
36 | 39 | import ratpack.server.RatpackServer; |
37 | 40 | import ratpack.http.client.HttpClient; |
38 | 41 |
|
39 | | -public class RatpackExample { |
40 | | - public static void main(String[] args) throws Exception { |
41 | | - // Get an OpenTelemetry instance |
42 | | - OpenTelemetry openTelemetry = ...; |
| 42 | +public class RatpackConfiguration { |
43 | 43 |
|
44 | | - // Server instrumentation |
| 44 | + // Create a server with OpenTelemetry instrumentation |
| 45 | + public RatpackServer createTracedServer(OpenTelemetry openTelemetry) throws Exception { |
45 | 46 | RatpackServerTelemetry serverTelemetry = RatpackServerTelemetry.create(openTelemetry); |
46 | | - RatpackServer.start(server -> { |
| 47 | + return RatpackServer.start(server -> { |
47 | 48 | server.registryOf(serverTelemetry::configureRegistry); |
48 | 49 | server.handlers(chain -> |
49 | 50 | chain.get(ctx -> ctx.render("Hello, World!")) |
50 | 51 | ); |
51 | 52 | }); |
| 53 | + } |
52 | 54 |
|
53 | | - // Client instrumentation |
| 55 | + // Create an instrumented HttpClient |
| 56 | + public HttpClient createTracedClient(OpenTelemetry openTelemetry) { |
54 | 57 | RatpackClientTelemetry clientTelemetry = RatpackClientTelemetry.create(openTelemetry); |
55 | | - HttpClient instrumentedHttpClient = clientTelemetry.instrument(HttpClient.of(spec -> {})); |
| 58 | + return clientTelemetry.instrument(createClient()); |
| 59 | + } |
| 60 | + |
| 61 | + // Configuration of the HttpClient goes here |
| 62 | + private HttpClient createClient() { |
| 63 | + return HttpClient.of(spec -> {}); |
56 | 64 | } |
57 | 65 | } |
58 | 66 | ``` |
0 commit comments