https://github.com/opentracing-contrib/java-rxjava
OpenTracing Instrumentation for RxJava
https://github.com/opentracing-contrib/java-rxjava
java opentracing rxjava rxjava2
Last synced: 11 months ago
JSON representation
OpenTracing Instrumentation for RxJava
- Host: GitHub
- URL: https://github.com/opentracing-contrib/java-rxjava
- Owner: opentracing-contrib
- License: apache-2.0
- Created: 2017-06-06T04:35:52.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2020-12-11T09:04:19.000Z (over 5 years ago)
- Last Synced: 2025-04-04T22:11:20.597Z (about 1 year ago)
- Topics: java, opentracing, rxjava, rxjava2
- Language: Java
- Homepage:
- Size: 205 KB
- Stars: 10
- Watchers: 6
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] [![Released Version][maven-img]][maven] [](https://opensource.org/licenses/Apache-2.0)
# OpenTracing RxJava Instrumentation
OpenTracing instrumentation for RxJava.
## Installation
### RxJava 1
pom.xml
```xml
io.opentracing.contrib
opentracing-rxjava-1
VERSION
```
### RxJava 2
pom.xml
```xml
io.opentracing.contrib
opentracing-rxjava-2
VERSION
```
### RxJava 3
pom.xml
```xml
io.opentracing.contrib
opentracing-rxjava-3
VERSION
```
## Usage
```java
// Instantiate tracer
Tracer tracer = ...
// Optionally register tracer with GlobalTracer
GlobalTracer.register(tracer);
```
### RxJava 1
```java
// Enable Tracing via TracingRxJavaUtils
TracingRxJavaUtils.enableTracing(tracer);
```
#### Subscriber
```java
// Decorate RxJava Subscriber with TracingSubscriber
Subscriber subscriber = ...
Subscriber tracingSubscriber = new TracingSubscriber<>(subscriber, "subscriber", tracer);
// Subscribe Observable to TracingSubscriber
observable.subscribe(tracingSubscriber);
```
#### Action
```java
// Decorate RxJava Action with TracingActionSubscriber
Action1 onNext = ...
TracingActionSubscriber tracingSubscriber = new TracingActionSubscriber<>(onNext,
"action", tracer);
// Subscribe Observable to TracingActionSubscriber
observable.subscribe(tracingSubscriber);
```
#### Observer
```java
// Decorate RxJava Observer with TracingObserverSubscriber
Observer observer = ...
TracingObserverSubscriber tracingSubscriber = new TracingObserverSubscriber(observer,
"observer", tracer);
// Subscribe Observable to TracingObserverSubscriber
observable.subscribe(tracingSubscriber);
```
### RxJava 2 / RxJava 3
```java
// Enable Tracing via TracingRxJava2Utils
// For RxJava 2:
TracingRxJava2Utils.enableTracing(tracer);
// For RxJava 3:
TracingRxJava3Utils.enableTracing(tracer);
```
#### Observer
```java
// Decorate RxJava Observer with TracingObserver
Observer observer = ...
Observer tracingObserver = new TracingObserver<>(observer, "observer", tracer);
// Subscribe Observable to TracingObserver
observable.subscribe(tracingObserver);
```
#### Consumer
```java
// Decorate RxJava Consumer with TracingConsumer
Consumer onNext = ...
TracingConsumer tracingConsumer = new TracingConsumer(onNext, "consumer", tracer);
// Subscribe Observable to TracingConsumer
observable.subscribe(tracingConsumer);
```
## License
[Apache 2.0 License](./LICENSE).
[ci-img]: https://travis-ci.org/opentracing-contrib/java-rxjava.svg?branch=master
[ci]: https://travis-ci.org/opentracing-contrib/java-rxjava
[cov-img]: https://coveralls.io/repos/github/opentracing-contrib/java-rxjava/badge.svg?branch=master
[cov]: https://coveralls.io/github/opentracing-contrib/java-rxjava?branch=master
[maven-img]: https://img.shields.io/maven-central/v/io.opentracing.contrib/opentracing-rxjava-1.svg
[maven]: http://search.maven.org/#search%7Cga%7C1%7Copentracing-rxjava-1