All Projects → smallrye → smallrye-opentracing

smallrye / smallrye-opentracing

Licence: Apache-2.0 license
An MicroProfile-OpenTracing implementation

Programming Languages

java
68154 projects - #9 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to smallrye-opentracing

Brave Opentracing
Bridge between OpenTracing and Brave
Stars: ✭ 64 (+276.47%)
Mutual labels:  tracing, opentracing, distributed-tracing
easeagent
An agent component for the Java system
Stars: ✭ 437 (+2470.59%)
Mutual labels:  tracing, opentracing, distributed-tracing
Csharp Netcore
OpenTracing instrumentation for .NET Core & .NET 5 apps
Stars: ✭ 225 (+1223.53%)
Mutual labels:  tracing, opentracing, distributed-tracing
go-sensor
🚀 Go Distributed Tracing & Metrics Sensor for Instana
Stars: ✭ 90 (+429.41%)
Mutual labels:  tracing, opentracing, distributed-tracing
Zipkin Go Opentracing
OpenTracing Bridge for Zipkin Go
Stars: ✭ 472 (+2676.47%)
Mutual labels:  tracing, opentracing, distributed-tracing
Haystack
Top level repository for Haystack, containing documentation and deployment scripts
Stars: ✭ 261 (+1435.29%)
Mutual labels:  tracing, opentracing, distributed-tracing
ruby-sensor
💎 Ruby Distributed Tracing & Metrics Sensor for Instana
Stars: ✭ 23 (+35.29%)
Mutual labels:  tracing, opentracing, distributed-tracing
Jaeger Ui
Web UI for Jaeger
Stars: ✭ 639 (+3658.82%)
Mutual labels:  tracing, opentracing, distributed-tracing
nodejs
Node.js in-process collectors for Instana
Stars: ✭ 66 (+288.24%)
Mutual labels:  tracing, opentracing, distributed-tracing
Natchez
functional tracing for cats
Stars: ✭ 214 (+1158.82%)
Mutual labels:  tracing, opentracing
Zipkin
Zipkin is a distributed tracing system
Stars: ✭ 14,969 (+87952.94%)
Mutual labels:  tracing, distributed-tracing
lambda-python
SignalFx AWS Lambda Python Wrapper
Stars: ✭ 15 (-11.76%)
Mutual labels:  tracing, distributed-tracing
Dd Trace Js
JavaScript APM Tracer
Stars: ✭ 212 (+1147.06%)
Mutual labels:  tracing, opentracing
Dd Trace Php
Datadog Tracing PHP Client
Stars: ✭ 203 (+1094.12%)
Mutual labels:  tracing, opentracing
Kanali
A Kubernetes Native API Management Solution
Stars: ✭ 192 (+1029.41%)
Mutual labels:  tracing, opentracing
Go2sky
Distributed tracing and monitor SDK in Go for Apache SkyWalking APM
Stars: ✭ 234 (+1276.47%)
Mutual labels:  tracing, distributed-tracing
Instrumentedsql
A sql driver that will wrap any other driver and log/trace all its calls
Stars: ✭ 244 (+1335.29%)
Mutual labels:  tracing, opentracing
Brave
Java distributed tracing implementation compatible with Zipkin backend services.
Stars: ✭ 2,117 (+12352.94%)
Mutual labels:  tracing, distributed-tracing
Dd Trace Java
Datadog APM client for Java
Stars: ✭ 228 (+1241.18%)
Mutual labels:  tracing, distributed-tracing
Dd Trace Go
A Go tracing package for Datadog APM
Stars: ✭ 244 (+1335.29%)
Mutual labels:  tracing, opentracing

badge Quality Gate Status License smallrye opentracing?color=green

SmallRye OpenTracing (Deprecated)

OpenTracing is no longer under development and was replaced by OpenTelemetry Tracing. In the future, please refer to the OpenTelemetry Quarkus extension: https://quarkus.io/guides/opentelemetry


SmallRye OpenTracing is an implementation of https://github.com/eclipse/microprofile-opentracing meant to be reusable for different vendors.

How to use

The following components have to be added to deployment to pass microprofile-opentracing-tck:

Server side JAX-RS

Server side JAX-RS tracing integration is provided by JAX-RS SmallRyeTracingDynamicFeature and servlet filter SpanFinishingFilter which finishes the span started in JAX-RS filter.

The installation is JAX-RS and server implementation specific. For example in RestEasy DynamicFeature it can be enabled by specifying resteasy.providers in servlet context init parameters. The following code snippet demonstrates possible installation.

public class ServletContextTracingInstaller implements ServletContextListener {

  @Override
  public void contextInitialized(ServletContextEvent servletContextEvent) {
    ServletContext servletContext = servletContextEvent.getServletContext();
    servletContext.setInitParameter("resteasy.providers", SmallRyeTracingDynamicFeature.class.getName());

    Dynamic filterRegistration = servletContext.addFilter("tracingFilter", new SpanFinishingFilter());
    filterRegistration.setAsyncSupported(true);
    filterRegistration.addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "*");
  }
}

Client side JAX-RS

Vendor has to implement ClientTracingRegistrarProvider and specify it in META-INF/services/org.eclipse.microprofile.opentracing.ClientTracingRegistrarProvider.

This project provides SmallRyeClientTracingFeature with tracing integration. The feature has to be registered to ClientBuilder in vendor specific implementation of ClientTracingRegistrarProvider. Client side tracing usually requires more components, for example OpenTracing-aware AsyncExecutor.

MicroProfile Rest Client

The Rest Client instrumentation is provided in SmallRyeRestClientListener which has to be registered in META-INF/services/org.eclipse.microprofile.rest.client.spi.RestClientListener.

CDI

The @Traced aspects of the specification is provided by the OpenTracingInterceptor, from the OpenTracing Contrib Java Interceptors project.

Tracer producer

Vendor has to provide CDI tracer producer. It is not provided by this library as the tracer resolution is not defined by MicroProfile specification.

Develop

mvn clean install

Debug

Debug of the deployment can be enabled in arquillian.xml configuration file.

Run the following to debug tests on port 8788.

mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8788 -Xnoagent -Djava.compiler=NONE" test
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].