Smallrye Opentracing

An MicroProfile-OpenTracing implementation
Alternatives To Smallrye Opentracing
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Jaeger17,3351513916 hours ago290September 16, 2022328apache-2.0Go
CNCF Jaeger, a Distributed Tracing Platform
Gf9,00572323 days ago509August 22, 202268mitGo
GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang.
Opentracing Go3,4452,0413,5644 days ago17February 28, 202227apache-2.0Go
OpenTracing API for Go. 🛑 This library is DEPRECATED! https://github.com/opentracing/specification/issues/163
Stabilityguide2,776
4 days agoother
【稳定大于一切】打造国内稳定性领域知识库,让无法解决的问题少一点点,让世界的确定性多一点点。
Stagemonitor1,695118a month ago47April 06, 202085apache-2.0Java
an open source solution to application performance monitoring for java server applications
Opentracing Tutorial1,53233 months ago10April 21, 202128apache-2.0Java
A collection of tutorials for the OpenTracing API
Opentracing Javascript1,0687,360271a year ago40January 06, 202234apache-2.0TypeScript
OpenTracing API for Javascript (both Node and browser)
Jaeger Ui89622 days ago7March 19, 2019187apache-2.0JavaScript
Web UI for Jaeger
Molten694
3 years ago49apache-2.0C
php probe for zipkin and opentracing
Mortar645723 days ago37May 30, 2022mitGo
Mortar is a GO framework/library for building gRPC (and REST) web services.
Alternatives To Smallrye Opentracing
Select To Compare


Alternative Project Comparisons
Readme

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 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
Popular Tracing Projects
Popular Opentracing Projects
Popular Operations Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Java
R
Tracing
Opentracing
Cdi
Jax Rs
Distributed Tracing