-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Updated documentation and added bare metal results
- Loading branch information
1 parent
1eee691
commit d00e373
Showing
62 changed files
with
226,849 additions
and
163 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,28 +1,74 @@ | ||
|
||
## Description | ||
|
||
These tests use sample Jax-rs with a spring boot application containing a basic course management process. This application exposes a JAX-RS endpoint for the CourseResource. The tests consist of client rest calls .using unirest to get a list of all the courses in a non instrumented scenario and instrumented with different tracers. | ||
These tests use a [servlet example](https://www.ntu.edu.sg/home/ehchua/programming/java/JavaServlets.html) application to process a GET request and return an HTML page with information of the request an a random number assigned. | ||
|
||
Using Undertow Deployment API the servlet is deployed, and a new instance off Undertow server is launched in [`BenchmarkSimpleServletBase`](src/main/java/io/opentracing/contrib/benchmarks/BenchmarkSimpleServletBase.java) | ||
|
||
The tracer is injected using the OpenTelemetry auto-instrumentation java-agent. | ||
|
||
The tests consist of making a simple request using unirest to get the hello world page in a not instrumentation scenario and instrumented with different tracers. | ||
|
||
```java | ||
String r = Unirest.get("http://" + HOST + ":" + PORT + "/").asString().getBody(); | ||
``` | ||
|
||
## Dependencies | ||
|
||
This project uses this [Opentelemetry dependency](https://github.com/open-telemetry/opentelemetry-java-instrumentation) | ||
This project uses this [Opentelemetry dependency](https://github.com/open-telemetry/opentelemetry-java-instrumentation). | ||
The javaagent serves as a tool to inject tracers and instrument the application.The project additionally requires a running Jaeger tracer. The simplest way to start the Jaeger all-in-one is to use the pre-built image published to DockerHub (a single command line). | ||
|
||
```docker | ||
docker run -d --name jaeger \ | ||
-e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \ | ||
-p 5775:5775/udp \ | ||
-p 6831:6831/udp \ | ||
-p 6832:6832/udp \ | ||
-p 5778:5778 \ | ||
-p 16686:16686 \ | ||
-p 14268:14268 \ | ||
-p 14250:14250 \ | ||
-p 9411:9411 \ | ||
jaegertracing/all-in-one:1.24 | ||
``` | ||
It also requires a running the OpenTelemetry collector to account for the OTLP trace exporter. The collector can be started using the pre-built image published on DockerHub. | ||
|
||
```docker | ||
docker run --publish 4317:4317 otel/opentelemetry-collector | ||
``` | ||
|
||
|
||
## Results | ||
|
||
The latest results are located [here](). | ||
Graphs are constructed based on raw results located in the ``results`` folder. | ||
|
||
### SampleTime metrics | ||
|
||
- X axis: represents each execution result. | ||
- Y axis: represents how long time it takes for the benchmark method to execute. | ||
|
||
### Throughput metrics | ||
|
||
- X axis: represents each execution result. | ||
- Y axis: represents of number of operations per second (the number of times per second the benchmark method could be executed). | ||
|
||
### OTLP Trace Exporter Instrumentation metrics | ||
 | ||
|
||
### Jaeger Trace Exporter Instrumentation metrics | ||
 | ||
|
||
|
||
## Environment | ||
The tests were executed in a personal notebook with these characteristics: | ||
|
||
- Model Name: Lenovo IdeaPad 530S-15IKB | ||
- Processor Name: Intel Core i5 8th gen | ||
- Processor Speed: 1.8 GHz | ||
- Number of Processors: 8 | ||
- Number of Cores: 4 | ||
- L1 Cache: 256 KB | ||
- L2 Cache: 1.0 MB | ||
- L3 Cache: 6.0 MB | ||
- Memory: 8 GB | ||
The tests were executed in a Linux Bare Metal machine with the following characteristics: | ||
|
||
- OS: CentOS 8 | ||
- RAM: 32 GB | ||
- Disk: 1 x 240GB SSD | ||
- Processor: 1 x Intel(R) Xeon(R) CPU E3-1578L v5 @ 2.00GHz | ||
|
||
|
||
|
Binary file added
BIN
+51.3 KB
opentelemetry-benchmark-java-servlet-filter/results-imgs/BareMetalRun1Jaeger.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+50.9 KB
opentelemetry-benchmark-java-servlet-filter/results-imgs/BareMetalRun1No.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+51.1 KB
opentelemetry-benchmark-java-servlet-filter/results-imgs/BareMetalRun1Otlp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+53.6 KB
opentelemetry-benchmark-java-servlet-filter/results-imgs/Baremetal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+40.4 KB
opentelemetry-benchmark-java-servlet-filter/results-imgs/bareMetalrun2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.