Skip to content

Commit dfe0e7b

Browse files
committed
Batch of library readmes
1 parent 68fdead commit dfe0e7b

File tree

7 files changed

+389
-0
lines changed
  • instrumentation

7 files changed

+389
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Library Instrumentation for Alibaba Druid version 1.0 and higher
2+
3+
Provides OpenTelemetry instrumentation for [Alibaba Druid](https://github.com/alibaba/druid).
4+
5+
This instrumentation generates database connection pool metrics for druid data sources.
6+
7+
## Quickstart
8+
9+
### Add these dependencies to your project
10+
11+
Replace `OPENTELEMETRY_VERSION` with the [latest release](https://search.maven.org/search?q=g:io.opentelemetry.instrumentation%20AND%20a:opentelemetry-alibaba-druid-1.0).
12+
13+
For Maven, add to your `pom.xml` dependencies:
14+
15+
```xml
16+
<dependencies>
17+
<dependency>
18+
<groupId>io.opentelemetry.instrumentation</groupId>
19+
<artifactId>opentelemetry-alibaba-druid-1.0</artifactId>
20+
<version>OPENTELEMETRY_VERSION</version>
21+
</dependency>
22+
</dependencies>
23+
```
24+
25+
For Gradle, add to your dependencies:
26+
27+
```kotlin
28+
implementation("io.opentelemetry.instrumentation:opentelemetry-alibaba-druid-1.0:OPENTELEMETRY_VERSION")
29+
```
30+
31+
### Usage
32+
33+
```java
34+
import com.alibaba.druid.pool.DruidDataSource;
35+
import io.opentelemetry.api.OpenTelemetry;
36+
import io.opentelemetry.instrumentation.alibabadruid.v1_0.DruidTelemetry;
37+
38+
// ...
39+
40+
// Get an OpenTelemetry instance
41+
OpenTelemetry openTelemetry = ...;
42+
43+
// Create a DruidTelemetry instance
44+
DruidTelemetry druidTelemetry = DruidTelemetry.create(openTelemetry);
45+
46+
// Create a DruidDataSource
47+
DruidDataSource dataSource = new DruidDataSource();
48+
// ... configure the dataSource
49+
50+
// Register the dataSource for metrics
51+
druidTelemetry.registerMetrics(dataSource, "my-druid-pool");
52+
53+
// Unregister the dataSource when it's no longer needed
54+
druidTelemetry.unregisterMetrics(dataSource);
55+
```
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Library Instrumentation for Apache HttpClient version 4.3 and higher
2+
3+
Provides OpenTelemetry instrumentation for [Apache HttpClient](https://hc.apache.org/httpcomponents-client-ga/).
4+
5+
This instrumentation generates CLIENT spans for each HTTP request.
6+
7+
## Quickstart
8+
9+
### Add these dependencies to your project
10+
11+
Replace `OPENTELEMETRY_VERSION` with the [latest release](https://search.maven.org/search?q=g:io.opentelemetry.instrumentation%20AND%20a:opentelemetry-apache-httpclient-4.3).
12+
13+
For Maven, add to your `pom.xml` dependencies:
14+
15+
```xml
16+
<dependencies>
17+
<dependency>
18+
<groupId>io.opentelemetry.instrumentation</groupId>
19+
<artifactId>opentelemetry-apache-httpclient-4.3</artifactId>
20+
<version>OPENTELEMETRY_VERSION</version>
21+
</dependency>
22+
</dependencies>
23+
```
24+
25+
For Gradle, add to your dependencies:
26+
27+
```kotlin
28+
implementation("io.opentelemetry.instrumentation:opentelemetry-apache-httpclient-4.3:OPENTELEMETRY_VERSION")
29+
```
30+
31+
### Usage
32+
33+
```java
34+
import io.opentelemetry.api.OpenTelemetry;
35+
import io.opentelemetry.instrumentation.apachehttpclient.v4_3.ApacheHttpClientTelemetry;
36+
import org.apache.http.impl.client.CloseableHttpClient;
37+
38+
// ...
39+
40+
// Get an OpenTelemetry instance
41+
OpenTelemetry openTelemetry = ...;
42+
43+
// Create an ApacheHttpClientTelemetry instance
44+
ApacheHttpClientTelemetry telemetry = ApacheHttpClientTelemetry.create(openTelemetry);
45+
46+
// Get a traced HttpClient
47+
CloseableHttpClient httpClient = telemetry.newHttpClient();
48+
49+
// ... use the httpClient to make requests
50+
```
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Library Instrumentation for Armeria version 1.3 and higher
2+
3+
Provides OpenTelemetry instrumentation for [Armeria](https://armeria.dev/).
4+
5+
This instrumentation generates both CLIENT and SERVER spans for each HTTP request.
6+
7+
## Quickstart
8+
9+
### Add these dependencies to your project
10+
11+
Replace `OPENTELEMETRY_VERSION` with the [latest release](https://search.maven.org/search?q=g:io.opentelemetry.instrumentation%20AND%20a:opentelemetry-armeria-1.3).
12+
13+
For Maven, add to your `pom.xml` dependencies:
14+
15+
```xml
16+
<dependencies>
17+
<dependency>
18+
<groupId>io.opentelemetry.instrumentation</groupId>
19+
<artifactId>opentelemetry-armeria-1.3</artifactId>
20+
<version>OPENTELEMETRY_VERSION</version>
21+
</dependency>
22+
</dependencies>
23+
```
24+
25+
For Gradle, add to your dependencies:
26+
27+
```kotlin
28+
implementation("io.opentelemetry.instrumentation:opentelemetry-armeria-1.3:OPENTELEMETRY_VERSION")
29+
```
30+
31+
### Usage
32+
33+
#### Server
34+
35+
```java
36+
import com.linecorp.armeria.server.Server;
37+
import com.linecorp.armeria.server.ServerBuilder;
38+
import io.opentelemetry.api.OpenTelemetry;
39+
import io.opentelemetry.instrumentation.armeria.v1_3.ArmeriaServerTelemetry;
40+
41+
// ...
42+
43+
// Get an OpenTelemetry instance
44+
OpenTelemetry openTelemetry = ...;
45+
46+
// Create an ArmeriaServerTelemetry instance
47+
ArmeriaServerTelemetry telemetry = ArmeriaServerTelemetry.create(openTelemetry);
48+
49+
// Add the decorator to your server builder
50+
Server server = Server.builder()
51+
.decorator(telemetry.newDecorator())
52+
// ... other server configuration
53+
.build();
54+
```
55+
56+
#### Client
57+
58+
```java
59+
import com.linecorp.armeria.client.ClientBuilder;
60+
import com.linecorp.armeria.client.WebClient;
61+
import io.opentelemetry.api.OpenTelemetry;
62+
import io.opentelemetry.instrumentation.armeria.v1_3.ArmeriaClientTelemetry;
63+
64+
// ...
65+
66+
// Get an OpenTelemetry instance
67+
OpenTelemetry openTelemetry = ...;
68+
69+
// Create an ArmeriaClientTelemetry instance
70+
ArmeriaClientTelemetry telemetry = ArmeriaClientTelemetry.create(openTelemetry);
71+
72+
// Add the decorator to your client builder
73+
WebClient client = new ClientBuilder("http://my-service.com")
74+
.decorator(telemetry.newDecorator())
75+
// ... other client configuration
76+
.build(WebClient.class);
77+
```
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Library Instrumentation for Cassandra version 4.4 and higher
2+
3+
Provides OpenTelemetry instrumentation for the [DataStax Java Driver for Apache Cassandra](https://docs.datastax.com/en/developer/java-driver/latest/).
4+
5+
This instrumentation generates CLIENT spans for each CQL query.
6+
7+
## Quickstart
8+
9+
### Add these dependencies to your project
10+
11+
Replace `OPENTELEMETRY_VERSION` with the [latest release](https://search.maven.org/search?q=g:io.opentelemetry.instrumentation%20AND%20a:opentelemetry-cassandra-4.4).
12+
13+
For Maven, add to your `pom.xml` dependencies:
14+
15+
```xml
16+
<dependencies>
17+
<dependency>
18+
<groupId>io.opentelemetry.instrumentation</groupId>
19+
<artifactId>opentelemetry-cassandra-4.4</artifactId>
20+
<version>OPENTELEMETRY_VERSION</version>
21+
</dependency>
22+
</dependencies>
23+
```
24+
25+
For Gradle, add to your dependencies:
26+
27+
```kotlin
28+
implementation("io.opentelemetry.instrumentation:opentelemetry-cassandra-4.4:OPENTELEMETRY_VERSION")
29+
```
30+
31+
### Usage
32+
33+
```java
34+
import com.datastax.oss.driver.api.core.CqlSession;
35+
import io.opentelemetry.api.OpenTelemetry;
36+
import io.opentelemetry.instrumentation.cassandra.v4_4.CassandraTelemetry;
37+
38+
// ...
39+
40+
// Get an OpenTelemetry instance
41+
OpenTelemetry openTelemetry = ...;
42+
43+
// Create a CassandraTelemetry instance
44+
CassandraTelemetry telemetry = CassandraTelemetry.create(openTelemetry);
45+
46+
// Create a CqlSession
47+
CqlSession session = CqlSession.builder().build();
48+
49+
// Wrap the session
50+
CqlSession tracedSession = telemetry.wrap(session);
51+
52+
// ... use the tracedSession to make requests
53+
```
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Library Instrumentation for Elasticsearch REST Client version 7.0 and higher
2+
3+
Provides OpenTelemetry instrumentation for the [Elasticsearch REST Client](https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high.html).
4+
5+
This instrumentation generates CLIENT spans and metrics for each Elasticsearch request.
6+
7+
## Quickstart
8+
9+
### Add these dependencies to your project
10+
11+
Replace `OPENTELEMETRY_VERSION` with the [latest release](https://search.maven.org/search?q=g:io.opentelemetry.instrumentation%20AND%20a:opentelemetry-elasticsearch-rest-7.0).
12+
13+
For Maven, add to your `pom.xml` dependencies:
14+
15+
```xml
16+
<dependencies>
17+
<dependency>
18+
<groupId>io.opentelemetry.instrumentation</groupId>
19+
<artifactId>opentelemetry-elasticsearch-rest-7.0</artifactId>
20+
<version>OPENTELEMETRY_VERSION</version>
21+
</dependency>
22+
</dependencies>
23+
```
24+
25+
For Gradle, add to your dependencies:
26+
27+
```kotlin
28+
implementation("io.opentelemetry.instrumentation:opentelemetry-elasticsearch-rest-7.0:OPENTELEMETRY_VERSION")
29+
```
30+
31+
### Usage
32+
33+
```java
34+
import io.opentelemetry.api.OpenTelemetry;
35+
import io.opentelemetry.instrumentation.elasticsearch.rest.v7_0.ElasticsearchRest7Telemetry;
36+
import org.apache.http.HttpHost;
37+
import org.elasticsearch.client.RestClient;
38+
39+
// ...
40+
41+
// Get an OpenTelemetry instance
42+
OpenTelemetry openTelemetry = ...;
43+
44+
// Create an ElasticsearchRest7Telemetry instance
45+
ElasticsearchRest7Telemetry telemetry = ElasticsearchRest7Telemetry.create(openTelemetry);
46+
47+
// Create a RestClient
48+
RestClient restClient = RestClient.builder(new HttpHost("localhost", 9200, "http")).build();
49+
50+
// Wrap the client
51+
RestClient tracedClient = telemetry.wrap(restClient);
52+
53+
// ... use the tracedClient to make requests
54+
```
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Library Instrumentation for Jetty HttpClient version 12.0 and higher
2+
3+
Provides OpenTelemetry instrumentation for the [Jetty HttpClient](https://www.eclipse.org/jetty/documentation/jetty-12/programming-guide/index.html#pg-client-http).
4+
5+
This instrumentation generates CLIENT spans and metrics for each HTTP request.
6+
7+
## Quickstart
8+
9+
### Add these dependencies to your project
10+
11+
Replace `OPENTELEMETRY_VERSION` with the [latest release](https://search.maven.org/search?q=g:io.opentelemetry.instrumentation%20AND%20a:opentelemetry-jetty-httpclient-12.0).
12+
13+
For Maven, add to your `pom.xml` dependencies:
14+
15+
```xml
16+
<dependencies>
17+
<dependency>
18+
<groupId>io.opentelemetry.instrumentation</groupId>
19+
<artifactId>opentelemetry-jetty-httpclient-12.0</artifactId>
20+
<version>OPENTELEMETRY_VERSION</version>
21+
</dependency>
22+
</dependencies>
23+
```
24+
25+
For Gradle, add to your dependencies:
26+
27+
```kotlin
28+
implementation("io.opentelemetry.instrumentation:opentelemetry-jetty-httpclient-12.0:OPENTELEMETRY_VERSION")
29+
```
30+
31+
### Usage
32+
33+
```java
34+
import io.opentelemetry.api.OpenTelemetry;
35+
import io.opentelemetry.instrumentation.jetty.httpclient.v12_0.JettyClientTelemetry;
36+
import org.eclipse.jetty.client.HttpClient;
37+
38+
// ...
39+
40+
// Get an OpenTelemetry instance
41+
OpenTelemetry openTelemetry = ...;
42+
43+
// Create a JettyClientTelemetry instance
44+
JettyClientTelemetry telemetry = JettyClientTelemetry.create(openTelemetry);
45+
46+
// Get a traced HttpClient
47+
HttpClient httpClient = telemetry.getHttpClient();
48+
49+
// ... use the httpClient to make requests
50+
```
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Library Instrumentation for Jetty HttpClient version 9.2 and higher
2+
3+
Provides OpenTelemetry instrumentation for the [Jetty HttpClient](https://github.com/jetty/jetty.project/tree/jetty-9.4.x).
4+
5+
This instrumentation generates CLIENT spans and metrics for each HTTP request.
6+
7+
## Quickstart
8+
9+
### Add these dependencies to your project
10+
11+
Replace `OPENTELEMETRY_VERSION` with the [latest release](https://search.maven.org/search?q=g:io.opentelemetry.instrumentation%20AND%20a:opentelemetry-jetty-httpclient-9.2).
12+
13+
For Maven, add to your `pom.xml` dependencies:
14+
15+
```xml
16+
<dependencies>
17+
<dependency>
18+
<groupId>io.opentelemetry.instrumentation</groupId>
19+
<artifactId>opentelemetry-jetty-httpclient-9.2</artifactId>
20+
<version>OPENTELEMETRY_VERSION</version>
21+
</dependency>
22+
</dependencies>
23+
```
24+
25+
For Gradle, add to your dependencies:
26+
27+
```kotlin
28+
implementation("io.opentelemetry.instrumentation:opentelemetry-jetty-httpclient-9.2:OPENTELEMETRY_VERSION")
29+
```
30+
31+
### Usage
32+
33+
```java
34+
import io.opentelemetry.api.OpenTelemetry;
35+
import io.opentelemetry.instrumentation.jetty.httpclient.v9_2.JettyClientTelemetry;
36+
import org.eclipse.jetty.client.HttpClient;
37+
38+
// ...
39+
40+
// Get an OpenTelemetry instance
41+
OpenTelemetry openTelemetry = ...;
42+
43+
// Create a JettyClientTelemetry instance
44+
JettyClientTelemetry telemetry = JettyClientTelemetry.create(openTelemetry);
45+
46+
// Get a traced HttpClient
47+
HttpClient httpClient = telemetry.getHttpClient();
48+
49+
// ... use the httpClient to make requests
50+
```

0 commit comments

Comments
 (0)