Support OTLP/HTTP receiver for traces, logs, and metrics#13826
Merged
Support OTLP/HTTP receiver for traces, logs, and metrics#13826
Conversation
ed9eb35 to
6320982
Compare
There was a problem hiding this comment.
Pull request overview
This PR extends the existing OTLP receiver in OAP from gRPC-only to also support OTLP/HTTP ingestion for traces, logs, and metrics, aligning SkyWalking with OTLP/HTTP exporters commonly used by mobile/web clients.
Changes:
- Register new Armeria OTLP/HTTP endpoints:
POST /v1/traces,POST /v1/logs,POST /v1/metricssupportingapplication/x-protobufandapplication/json. - Refactor trace/log gRPC handlers to share processing logic with HTTP handlers via
processExport(...). - Update docs/changelog and bump
apache/skywalking-infra-e2eworkflow action SHA.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryTraceHandler.java | Registers HTTP trace handler and extracts shared processExport() for gRPC/HTTP. |
| oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryTraceHTTPHandler.java | Implements /v1/traces OTLP/HTTP handler (protobuf + JSON). |
| oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryMetricHandler.java | Registers HTTP metrics handler alongside existing gRPC handler. |
| oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryMetricHTTPHandler.java | Implements /v1/metrics OTLP/HTTP handler (protobuf + JSON). |
| oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryLogHandler.java | Registers HTTP log handler and extracts shared processExport() for gRPC/HTTP. |
| oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryLogHTTPHandler.java | Implements /v1/logs OTLP/HTTP handler (protobuf + JSON). |
| docs/en/setup/backend/otlp-trace.md | Documents OTLP/HTTP trace endpoint and content types. |
| docs/en/changes/changes.md | Adds changelog entry for OTLP/HTTP support. |
| .github/workflows/skywalking.yaml | Bumps apache/skywalking-infra-e2e action SHA. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
6320982 to
ec486d7
Compare
Each existing OTLP gRPC handler now also registers an HTTP handler at startup. Supported endpoints: - POST /v1/traces (protobuf + JSON) - POST /v1/logs (protobuf + JSON) - POST /v1/metrics (protobuf + JSON) Processing logic extracted into shared processExport() methods called by both gRPC and HTTP handlers. No new config needed — HTTP endpoints are automatically available when the OTLP handler is enabled. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ec486d7 to
210b909
Compare
wankai123
approved these changes
Apr 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add OTLP/HTTP endpoints for traces, logs, and metrics
SkyWalking's OTLP receiver previously only supported gRPC. Many OTLP sources prefer or require HTTP:
Each existing OTLP gRPC handler now also registers an HTTP handler at startup:
POST /v1/tracesapplication/x-protobuf,application/jsonPOST /v1/logsapplication/x-protobuf,application/jsonPOST /v1/metricsapplication/x-protobuf,application/jsonProcessing logic extracted into shared
processExport()methods called by both gRPC and HTTP handlers. No new configuration needed — HTTP endpoints are automatically available when the OTLP handler is enabled.Also bumps infra-e2e to
0d91769for Ryuk reaper bug fix.docs/en/setup/backend/otlp-trace.md— added OTLP/HTTP protocol tableCHANGESlog.