All Projects → hypertrace → javaagent

hypertrace / javaagent

Licence: Apache-2.0 license
Hypertrace OpenTelemetry Java agent with payload/body and headers data capture.

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects
groovy
2714 projects

Projects that are alternatives of or similar to javaagent

opentelemetry-js-api
OpenTelemetry Javascript API
Stars: ✭ 75 (+476.92%)
Mutual labels:  tracing, opentelemetry
uptrace
Open source APM: OpenTelemetry traces, metrics, and logs
Stars: ✭ 1,187 (+9030.77%)
Mutual labels:  tracing, opentelemetry
datadog-trace-agent
Datadog Trace Agent archive (pre-6.10.0)
Stars: ✭ 70 (+438.46%)
Mutual labels:  tracing, apm-agent
opentelemetry-ext-js
js extensions for the open-telemetry project
Stars: ✭ 122 (+838.46%)
Mutual labels:  tracing, opentelemetry
hubble-otel
Hubble adaptor for OpenTelemetry
Stars: ✭ 29 (+123.08%)
Mutual labels:  tracing, opentelemetry
Gf
GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang.
Stars: ✭ 6,501 (+49907.69%)
Mutual labels:  tracing, opentelemetry
easeagent
An agent component for the Java system
Stars: ✭ 437 (+3261.54%)
Mutual labels:  tracing, javaagent
gateway
A proxy to buffer and forward metrics, events, and traces.
Stars: ✭ 94 (+623.08%)
Mutual labels:  tracing, opentelemetry
splunk-otel-java
Splunk Distribution of OpenTelemetry Java
Stars: ✭ 39 (+200%)
Mutual labels:  tracing, opentelemetry
opentelemetry-swift
OpenTelemetry Tracer built for Swift Distributed Tracing
Stars: ✭ 22 (+69.23%)
Mutual labels:  tracing, opentelemetry
opentelemetry-tide
🔭🌊 OpenTelemetry integration for Tide
Stars: ✭ 18 (+38.46%)
Mutual labels:  tracing, opentelemetry
thundra-agent-python
Thundra Lambda Python Agent
Stars: ✭ 36 (+176.92%)
Mutual labels:  tracing
Ghost.jl
The Code Tracer
Stars: ✭ 46 (+253.85%)
Mutual labels:  tracing
otel-launcher-go
Launcher, a Lightstep Distro for OpenTelemetry Go 🚀
Stars: ✭ 82 (+530.77%)
Mutual labels:  opentelemetry
kobs
Kubernetes Observability Platform
Stars: ✭ 44 (+238.46%)
Mutual labels:  tracing
opentelemetry-lambda
Create your own Lambda Layer in each OTel language using this starter code. Add the Lambda Layer to your Lamdba Function to get tracing with OpenTelemetry.
Stars: ✭ 117 (+800%)
Mutual labels:  opentelemetry
juice
Java后端开发库,涵盖:常用工具类、SPI扩展、分布式锁、限流、分布式链路追踪等。
Stars: ✭ 32 (+146.15%)
Mutual labels:  tracing
ros1 tracetools
Tracing tools for ROS
Stars: ✭ 31 (+138.46%)
Mutual labels:  tracing
appinsights-rs
Application Insights SDK for Rust
Stars: ✭ 29 (+123.08%)
Mutual labels:  tracing
jsish
Jsi is a small, C-embeddable javascript interpreter with tightly woven Web and DB support.
Stars: ✭ 32 (+146.15%)
Mutual labels:  tracing

Hypertrace OpenTelemetry Java agent

Hypertrace distribution of OpenTelemetry Java agent.

This agent supports these frameworks and adds following capabilities:

  • capture request and response headers
  • capture request and response bodies
  • server request headers/bodies evaluation in agent filter that can result in request blocking. The filter implementation will be pluggable.

List of supported frameworks with additional capabilities:

Library/Framework Versions
Apache HttpAsyncClient 4.1+
Apache HttpClient 4.0+
gRPC 1.6+
JAX-RS Client 2.0+
Micronaut (basic support via Netty) 1.0+
Netty 4.0+
OkHttp 3.0+
Servlet 3.0+
Spark Web Framework 2.3+
Spring Webflux 5.0+
Vert.x 3.0+ (4 not supported yet)
Struts 2.3+

Adding custom filter implementation

Custom filter implementations can be added via FilterProvider SPI (Java service loader). The providers can be disabled at startup via ht.filter.provider.<provider-class-name>.disabled=true.

Build

make init-submodules build

The final artifact is in javaagent/build/libs/hypertrace-agent-<version>-all.jar

Run & Configure

Download the latest version.

HT_REPORTING_ENDPOINT=http://localhost:4317 java -javaagent:javaagent/build/libs/hypertrace-agent-<version>-all.jar -jar app.jar

By default the agent uses Otlp exporter.

The configuration precedence order

  1. OpenTelemetry Agent's trace config file OTEL_TRACE_CONFIG/otel.trace.config
  2. OpenTelemetry system properties and env variables
  3. Hypertrace configuration with the following precedence order:
    1. system properties
    2. environment variables, TODO add link to agent-config repo
    3. configuration file, specified HT_CONFIG_FILE=example-config.yaml

Disable instrumentation at startup

Instrumentations can be disabled by -Dotel.instrumentation.<instrumentation-name>.enabled=false.

The following instrumentation names disable only Hypertrace instrumentations, not core OpenTelemetry:

  • ht - all Hypertrace instrumentations
  • servlet-ht - Servlet, Spark Web
  • okhttp-ht - Okhttp
  • grpc-ht - gRPC

The Hypertrace instrumentations use also the core OpenTelemetry instrumentation names so for example -Dotel.instrumentation.servlet.enabled=false disables all servlet instrumentations including core OpenTelemetry and Hypertrace.

Test

Tests use docker via Testcontainers.org.

When running tests from IDE set SMOKETEST_JAVAAGENT_PATH env variable.

make test

Further Reference

Read more in our 'Introducing Hypertrace Java Agent' blog post.

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].