[DRAFT] Input Package for Jaeger receiver#17231
[DRAFT] Input Package for Jaeger receiver#17231teresaromero wants to merge 3 commits intoelastic:mainfrom
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.
| jaeger_trace_sender: | ||
| image: jaegertracing/jaeger-tracegen:2.14.0 | ||
| command: | | ||
| -trace-exporter otlp-grpc |
There was a problem hiding this comment.
🔴 CRITICAL Test sender uses OTLP protocol, not Jaeger protocol
Why: jaeger-tracegen with -trace-exporter otlp-grpc sends OTLP data to localhost:4317, but the Jaeger receiver listens for Jaeger-native gRPC on port 14250. The system test will not validate the Jaeger receiver.
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
| /packages/jamf_protect @elastic/security-service-integrations | ||
| /packages/jolokia_input @elastic/obs-infraobs-integrations | ||
| /packages/journald @elastic/elastic-agent-data-plane | ||
| /packages/jaeger_input_otel @elastic/ecosystem |
There was a problem hiding this comment.
🟡 MEDIUM CODEOWNERS entry is out of alphabetical order
Why: jaeger_input_otel should come before jamf_compliance_reporter (line 303), not after journald. This file is alphabetically sorted by package directory name.
| /packages/jaeger_input_otel @elastic/ecosystem | |
| /packages/jaeger_input_otel @elastic/ecosystem | |
| /packages/jamf_compliance_reporter @elastic/security-service-integrations | |
| /packages/jamf_pro @elastic/security-service-integrations | |
| /packages/jamf_protect @elastic/security-service-integrations | |
| /packages/jolokia_input @elastic/obs-infraobs-integrations | |
| /packages/journald @elastic/elastic-agent-data-plane |
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
| - 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.
| changes: | ||
| - description: Initial draft of the package | ||
| type: enhancement | ||
| link: https://github.com/elastic/integrations/pull/1 |
There was a problem hiding this comment.
🟠 HIGH Changelog link points to wrong PR
Why: Link points to PR #1 (a placeholder), not to this PR (#17231). This will be published metadata.
| link: https://github.com/elastic/integrations/pull/1 | |
| link: https://github.com/elastic/integrations/pull/17231 |
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
| command: | | ||
| -trace-exporter otlp-grpc | ||
| -traces 1 | ||
| -service test-service No newline at end of file |
There was a problem hiding this comment.
⚪ LOW Missing trailing newline
Why: File does not end with a newline character, which can cause issues with some tools and is flagged by the diff.
| -service test-service | |
| -service test-service |
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
💔 Build Failed
Failed CI StepsHistory |
| agent: | ||
| ports: ["14250"] |
There was a problem hiding this comment.
I think this should not be needed, since the service and the agent are in the same docker network
| required: false | ||
| title: gRPC endpoint | ||
| description: Endpoint for the Jaeger gRPC protocol (default localhost:14250). | ||
| default: localhost:14250 |
There was a problem hiding this comment.
Could you try by setting here 0.0.0.0:14250 instead? Or in the test configuration file
vars:
grpc_endpoint: 0.0.0.0:14250There 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.
| jaeger_trace_sender: | ||
| image: jaegertracing/jaeger-tracegen:2.14.0 | ||
| command: | | ||
| -trace-exporter otlp-grpc |
There was a problem hiding this comment.
🔴 CRITICAL Test trace sender uses OTLP protocol, but jaegerreceiver expects Jaeger native gRPC
Why: jaeger-tracegen with -trace-exporter otlp-grpc sends OTLP format, but the jaegerreceiver only accepts Jaeger native gRPC protocol on port 14250. The system test will not produce any traces because the protocols are incompatible.
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
| changes: | ||
| - description: Initial draft of the package | ||
| type: enhancement | ||
| link: https://github.com/elastic/integrations/pull/1 |
There was a problem hiding this comment.
🟠 HIGH Changelog link is a placeholder, not the actual PR
Why: The changelog link points to PR #1 which is unrelated. It should reference this PR (#17231) so the changelog correctly tracks the origin of this change.
| link: https://github.com/elastic/integrations/pull/1 | |
| link: https://github.com/elastic/integrations/pull/17231 |
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
| /packages/jamf_protect @elastic/security-service-integrations | ||
| /packages/jolokia_input @elastic/obs-infraobs-integrations | ||
| /packages/journald @elastic/elastic-agent-data-plane | ||
| /packages/jaeger_input_otel @elastic/ecosystem |
There was a problem hiding this comment.
🟡 MEDIUM CODEOWNERS entry is not in alphabetical order
Why: jaeger_input_otel is placed between journald and jumpcloud, but alphabetically it should come before jamf_compliance_reporter (around line 303). Other tools and automation may depend on sorted ordering.
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
| - 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 not in alphabetical order
Why: "Jaeger" is inserted between IIS entries and Imperva, but alphabetically it should be placed between Istio and Jamf Compliance Reporter entries. The same issue exists 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.
| command: | | ||
| -trace-exporter otlp-grpc | ||
| -traces 1 | ||
| -service test-service No newline at end of file |
There was a problem hiding this comment.
⚪ LOW Missing newline at end of file
Why: All other OTel input packages' docker-compose.yml files end with a trailing newline. Missing it can cause issues with some tools and diff displays.
| -service test-service | |
| -service test-service |
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
| required: false | ||
| title: gRPC endpoint | ||
| description: Endpoint for the Jaeger gRPC protocol (default localhost:14250). | ||
| default: localhost:14250 |
There was a problem hiding this comment.
⚪ LOW Missing show_user field on grpc_endpoint variable
Why: All other OTel input packages include show_user on their variables. For the primary endpoint configuration, this should be show_user: true so users can configure it in the Fleet UI.
| default: localhost:14250 | |
| description: Endpoint for the Jaeger gRPC protocol (default localhost:14250). | |
| default: localhost:14250 | |
| show_user: true |
Why is Claude responding? | Type @claude to interact further
Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.
Proposed commit message
Checklist
changelog.ymlfile.Author's Checklist
How to test this PR locally
Related issues
Screenshots