Conversation
Introduced the Jaeger OpenTelemetry Input Package, enabling trace data collection in Jaeger format via OpenTelemetry protocols. Updated CODEOWNERS and issue templates to include the new package. Added necessary files including changelog, license, manifest, and documentation. Implemented support for multiple protocols (gRPC, Thrift HTTP, Thrift Binary, Thrift Compact) with configurable options.
… and policy template
…_trace_sender service
✅ Vale Linting ResultsNo issues found on modified lines! The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale. |
There was a problem hiding this comment.
System test will not exercise the Jaeger receiver
The core issue with this PR is a protocol mismatch in the system test setup:
- The
input.yml.hbsconfigures a Jaeger-native gRPC receiver on port 14250 - The
docker-compose.ymltest sender (jaeger-tracegenwith-trace-exporter otlp-grpc) sends OTLP data tolocalhost:4317
These are different protocols on different ports. The test sender will never reach the Jaeger receiver, so the system test cannot validate that the package works.
Note: In Jaeger v2, jaeger-tracegen no longer supports sending in native Jaeger format (the jaeger exporter was removed). To test the Jaeger receiver, you'll need a different test client that can send traces in Jaeger-native gRPC format, or alternatively reconsider whether this package should use an OTLP receiver instead.
Other issues
- Changelog link is a placeholder (
pull/1) — should reference this PR. - CODEOWNERS and issue template entries are out of alphabetical order.
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
packages/jaeger_input_otel/_dev/deploy/docker/docker-compose.yml
Outdated
Show resolved
Hide resolved
| - IBM QRadar [ibm_qradar] | ||
| - IIS OpenTelemetry assets [iis_otel] | ||
| - IIS OpenTelemetry Input Package [iis_input_otel] | ||
| - Jaeger OpenTelemetry Input Package [jaeger_input_otel] |
There was a problem hiding this comment.
🟡 MEDIUM Issue template entry is out of alphabetical order
Why: Jaeger is placed between IIS entries (IIS OpenTelemetry Input Package and IIS [iis]). Move it after the IIS [iis] line (line 216) to maintain alphabetical order. Same fix needed in integration_feature_request.yml.
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
packages/jaeger_input_otel/_dev/deploy/docker/docker-compose.yml
Outdated
Show resolved
Hide resolved
packages/jaeger_input_otel/_dev/test/system/test-default-config.yml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Critical: System test protocol mismatch
The docker-compose test uses jaegertracing/jaeger-tracegen:2.14.0 with -trace-exporter otlp-grpc, which sends traces using the OTLP gRPC protocol. However, the jaegerreceiver configured in input.yml.hbs only accepts the Jaeger native gRPC protocol on port 14250. These are incompatible protocols — the system test will not produce any ingested traces.
In Jaeger v2.x, the jaeger-tracegen tool dropped support for Jaeger-native export ("jaeger exporter is no longer supported, please use otlp"). The test needs to either:
- Use a different trace generator that supports the legacy Jaeger gRPC protocol (e.g., an older Jaeger client or a dedicated test tool), or
- Reconsider whether the
jaegerreceiveris the right OTel receiver for this use case, given that Jaeger v2 itself has moved to OTLP.
Other issues
- Changelog link is a placeholder (
pull/1), needs to be updated topull/17231. - Alphabetical ordering in CODEOWNERS and issue templates:
jaeger_input_otelshould be placed betweenistioandjamf_*entries, not betweenjournaldandjumpcloud(CODEOWNERS) or between IIS and Imperva (issue templates).
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
packages/jaeger_input_otel/_dev/deploy/docker/docker-compose.yml
Outdated
Show resolved
Hide resolved
packages/jaeger_input_otel/_dev/deploy/docker/docker-compose.yml
Outdated
Show resolved
Hide resolved
…pport - Changed package name from `jaeger_otel_input` to `jaeger_input_otel`. - Updated Kibana version requirement to 9.4.0. - Added support for TLS configuration and Thrift HTTP protocol in the input package. - Enhanced documentation to reflect new features and requirements. - Updated changelog link to the latest PR.
…emetry Input Package - Introduced a sample_event.json file to provide a template for trace data. - Updated Docker deployment configuration to build the Jaeger trace sender from source. - Added a Python script to generate and send Jaeger traces for testing. - Removed obsolete variants.yml file and adjusted system test configuration for trace count. - Enhanced documentation to clarify Jaeger and OpenTelemetry roles and requirements.
There was a problem hiding this comment.
The template logic issue I identified is new — the TLS configuration block will be incorrectly nested under thrift_http rather than grpc when both are enabled together.
Existing unresolved issues from prior reviews:
- Alphabetical ordering in issue templates (already flagged in integration_bug.yml, same fix needed in integration_feature_request.yml)
- CODEOWNERS ordering (appears resolved)
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
| protocols: | ||
| grpc: | ||
| endpoint: {{grpc_endpoint}} | ||
| {{#if thrift_http_endpoint}} |
There was a problem hiding this comment.
🟠 HIGH TLS block will be misplaced under thrift_http when both are configured
Why: When both thrift_http_endpoint and TLS are enabled, the tls: block (at 8-space indent) appears after thrift_http:, making it a child of thrift_http instead of grpc. TLS would not apply to gRPC connections.
| {{#if thrift_http_endpoint}} | |
| Reorder so TLS appears before the thrift_http conditional: | |
| ```suggestion | |
| {{#if tls_enabled}} | |
| {{#if tls_cert_file}} | |
| {{#if tls_key_file}} | |
| tls: | |
| cert_file: {{tls_cert_file}} | |
| key_file: {{tls_key_file}} | |
| {{#if tls_client_ca_file}} | |
| client_ca_file: {{tls_client_ca_file}} | |
| {{/if}} | |
| {{/if}} | |
| {{/if}} | |
| {{/if}} | |
| {{#if thrift_http_endpoint}} | |
| thrift_http: | |
| endpoint: {{thrift_http_endpoint}} | |
| {{/if}} |
---
[Why is Claude responding?](https://ela.st/github-ai-tools) | Type `@claude` to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
… Input Package changes - Added Jaeger OpenTelemetry Input Package to CODEOWNERS. - Updated issue templates to include Jaeger OpenTelemetry Input Package in the list of integrations.
…upport - Updated manifest to clarify TLS support for both gRPC and Thrift HTTP connections. - Added expected policy and test files for Thrift HTTP with TLS configuration. - Modified input template to conditionally include TLS settings based on configuration variables.
There was a problem hiding this comment.
The prior review on input.yml.hbs (TLS nesting) appears to be incorrect — the expected output files confirm that TLS is correctly applied to both grpc and thrift_http when both are configured. The template indentation is correct.
The remaining issue from prior reviews (alphabetical ordering in issue templates) still applies to the current diff.
Lower-priority observations (1)
💬 NITPICK Missing trailing newline — packages/jaeger_input_otel/changelog.yml:6
Why: File should end with a newline for consistency with other changelogs in the repo.
link: https://github.com/elastic/integrations/pull/17231Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
| - IIS OpenTelemetry assets [iis_otel] | ||
| - IIS OpenTelemetry Input Package [iis_input_otel] | ||
| - IIS [iis] | ||
| - Jaeger OpenTelemetry Input Package [jaeger_input_otel] |
There was a problem hiding this comment.
🟡 MEDIUM Alphabetical ordering
Why: Jaeger should be placed after Istio (line 226), not after IIS entries. The file is sorted alphabetically by integration name.
| - Jaeger OpenTelemetry Input Package [jaeger_input_otel] | |
| - Istio [istio] | |
| - Jaeger OpenTelemetry Input Package [jaeger_input_otel] | |
| - Jamf Compliance Reporter [jamf_compliance_reporter] |
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
| - IIS OpenTelemetry assets [iis_otel] | ||
| - IIS OpenTelemetry Input Package [iis_input_otel] | ||
| - IIS [iis] | ||
| - Jaeger OpenTelemetry Input Package [jaeger_input_otel] |
There was a problem hiding this comment.
🟡 MEDIUM Alphabetical ordering
Why: Same as bug template - Jaeger should be placed after Istio, not after IIS entries.
| - Jaeger OpenTelemetry Input Package [jaeger_input_otel] | |
| - Istio [istio] | |
| - Jaeger OpenTelemetry Input Package [jaeger_input_otel] | |
| - Jamf Compliance Reporter [jamf_compliance_reporter] |
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
💚 Build Succeeded
History
|
Proposed commit message
Jaeger OpenTelemetry Input Package
Introduces the Jaeger OpenTelemetry Input Package for Elastic, enabling collection of trace data in Jaeger format (legacy Protobuf gRPC, Thrift HTTP) via the jaegerreceiver from OpenTelemetry Collector Contrib.
WHAT:
jaeger_input_otelthat configures the Jaeger receiver in EDOTWHY:
Status: Waiting for the Fleet APM fix to ingest traces before full validation in production workflows.
Checklist
changelog.ymlfile.Author's Checklist
How to test this PR locally
The system test deploys a Python trace sender that emits Jaeger Thrift HTTP format to
elastic-agent:14268. Traces are sent after the agent signals readiness via SIGHUP.Related issues
Screenshots