Skip to content

Support OTLP/HTTP receiver for traces, logs, and metrics#13826

Merged
wu-sheng merged 1 commit intomasterfrom
feature/otlp-http-receiver
Apr 16, 2026
Merged

Support OTLP/HTTP receiver for traces, logs, and metrics#13826
wu-sheng merged 1 commit intomasterfrom
feature/otlp-http-receiver

Conversation

@wu-sheng
Copy link
Copy Markdown
Member

@wu-sheng wu-sheng commented Apr 16, 2026

Add OTLP/HTTP endpoints for traces, logs, and metrics

SkyWalking's OTLP receiver previously only supported gRPC. Many OTLP sources prefer or require HTTP:

  • The OTel Swift SDK (iOS monitoring, SWIP-11) uses OTLP/HTTP as its primary exporter
  • The SkyAPM Mini Program Monitor for WeChat/Alipay mini programs sends telemetry via HTTP
  • OTLP/HTTP is simpler and more proxy/firewall-friendly than gRPC for mobile and browser clients

Each existing OTLP gRPC handler now also registers an HTTP handler at startup:

Endpoint Content Types
POST /v1/traces application/x-protobuf, application/json
POST /v1/logs application/x-protobuf, application/json
POST /v1/metrics application/x-protobuf, application/json

Processing 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 0d91769 for Ryuk reaper bug fix.

@wu-sheng wu-sheng force-pushed the feature/otlp-http-receiver branch from ed9eb35 to 6320982 Compare April 16, 2026 07:44
@wu-sheng wu-sheng added this to the 10.5.0 milestone Apr 16, 2026
@wu-sheng wu-sheng added the feature New feature label Apr 16, 2026
@wu-sheng wu-sheng added the backend OAP backend related. label Apr 16, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/metrics supporting application/x-protobuf and application/json.
  • Refactor trace/log gRPC handlers to share processing logic with HTTP handlers via processExport(...).
  • Update docs/changelog and bump apache/skywalking-infra-e2e workflow 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.

Comment thread docs/en/setup/backend/otlp-trace.md Outdated
Comment thread docs/en/setup/backend/otlp-trace.md Outdated
@wu-sheng wu-sheng force-pushed the feature/otlp-http-receiver branch from 6320982 to ec486d7 Compare April 16, 2026 08:09
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>
@wu-sheng wu-sheng force-pushed the feature/otlp-http-receiver branch from ec486d7 to 210b909 Compare April 16, 2026 08:30
@wu-sheng wu-sheng merged commit 097fe8b into master Apr 16, 2026
829 of 839 checks passed
@wu-sheng wu-sheng deleted the feature/otlp-http-receiver branch April 16, 2026 10:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend OAP backend related. feature New feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants