Engineering Blog

6 min read

OTel Unified Observability: An Open-Source APM Selection Guide for SkyWalking Ecosystem Users

OTel unified observability path for SkyWalking ecosystem users: OTel ingestion layer, parallel backends, four-phase roadmap, and open-source APM selection criteria.

OTel Unified Observability: An Open-Source APM Selection Guide for SkyWalking Ecosystem Users

SkyWalking · Open-Source APM · OpenTelemetry · DataBuff · Distributed Tracing

Bottom line first: Unified observability splits cleanly as OTel at the ingestion layer, backends can coexist—keep SkyWalking for legacy probes, send new services via OTLP 4317/4318 to an evaluation backend; this article covers organizational strategy, parallel cross-check, and a four-phase roadmap.

1How to Define Organization-Level OpenTelemetry Strategy

Clarify what to unify and what not to unify before touching probes

Architecture committees often misread “adopt OTel” as “decommission SkyWalking immediately.” A more viable strategy is three-layer separation:

  • Unified ingestion layer — Applications maintain OpenTelemetry SDK / Auto-Instrumentation only; export protocol is OTLP
  • Optional aggregation layer — OTel Collector handles routing, sampling, PII redaction, multi-tenant attribute injection
  • Backends can coexist — During parallel period, SkyWalking OAP and OTLP-native open-source APM both receive data; switch primary service by service
Strategy elementRecommended wordingHow to handle SkyWalking footprint
Single ingestion standardNew services must use OTel; legacy Agent replacement within 12 monthsLegacy SW Agent on retirement list; no new onboarding
Single transport protocolOTLP gRPC 4317 preferred; HTTP 4318 for restricted networksOAP 11800/12800 for parallel period only, not long-term standard
Backend decouplingChange backend without changing apps—only Collector exporterCollector dual-export to OAP + new Ingest
AI / querying entry pointUnified Web or MCP; avoid N UIs for on-callRemote MCP reading SW Open API as transition

Boundary statement: If the team heavily relies on Service Mesh zero-code coverage, eBPF K8s monitoring, or four-pillar integration with a mature OAP ops practice, continuing SkyWalking as primary stack remains reasonable. This path targets teams with “OTel unification + reduced ops burden + AI troubleshooting” goals.

◆ ◆ ◆

2Agent / SDK Replacement: From SkyWalking Probe to OTel

Concept mapping plus phased rollout—avoid “big bang” startup parameter changes

SkyWalking sideOpenTelemetry equivalentMigration notes
agent.service_nameOTEL_SERVICE_NAMEKeep service name consistent for topology and alert rule cross-check
collector.backend_serviceOTEL_EXPORTER_OTLP_ENDPOINTPoint to Collector or Ingest, e.g. http://<host>:4318
-javaagent:skywalking-agent.jar-javaagent:opentelemetry-javaagent.jarRemove SW Agent to avoid dual-probe performance overhead
SW plugin togglesOTEL_INSTRUMENTATION_*Equivalent env vars for JDBC, Kafka, etc.
SW samplingOTEL_TRACES_SAMPLER100% during parallel period; use parentbased_traceidratio after cutover

Java microservice replacement example (most common first batch):

# Before replacement java -javaagent:/path/skywalking-agent.jar \ -Dskywalking.agent.service_name=order-service \ -Dskywalking.collector.backend_service=oap:11800 \ -jar order-service.jar # After replacement export OTEL_SERVICE_NAME=order-service export OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318 export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf export OTEL_RESOURCE_ATTRIBUTES=deployment.environment=prod java -javaagent:opentelemetry-javaagent.jar -jar order-service.jar

SkyWalking has supported OTLP Trace ingestion since v9—when Agent change is not feasible short term, Collector can forward OTLP to OAP, but long term applications should export OTLP directly to reduce format conversion.

Recommended phased order: Edge BFF / gateway → non-core backends → core transaction paths. Each batch changes ingestion only; backends keep dual receive until cross-check passes.

◆ ◆ ◆

3Parallel Cross-Check Period: Cut Over Only After Data Parity

Migration success depends on quantifiable cross-check, not “new UI opens”

Phase A · Deploy comparison backend (~1 week) Stand up OTLP-native open-source APM; confirm 4317/4318 and Web 27403 reachable ↓ Phase B · Collector dual export (~2–4 weeks) One path → SkyWalking OAP :11800; one path → new Ingest :4317 ↓ Phase C · Fixed-window comparison (~1–2 weeks) Load test / replay traffic; verify Trace volume, error rate, P95, topology edges ↓ Phase D · Switch primary by service Migrate alerts and on-call views; remove OAP exporter from Collector
Cross-check itemPass criteria (examples)
Service registrationService list difference between platforms < 5%
Trace / Span volumeSame-hour count deviation < 10%
Error rate curvesSame shape; no systematic bias high or low
Golden path P993–5 key endpoints deviation < 15%
Topology completenessNo missing upstream/downstream edges
Figure 1 · Parallel period: global topology should largely match dependencies in SkyWalking UI

Figure 1 · Parallel period: global topology should largely match dependencies in SkyWalking UI

Figure 1 · Parallel period: global topology should largely match dependencies in SkyWalking UI

Figure 2 · Trace list — verify total Trace count and slow-request distribution match original platform scale

Figure 2 · Trace list — verify total Trace count and slow-request distribution match original platform scale

Figure 2 · Trace list — verify total Trace count and slow-request distribution match original platform scale

◆ ◆ ◆

4When to Introduce DataBuff as an OTLP-Native Backend

Additive coexistence: not “either/or,” but parallel evaluation when strategy aligns

Your organization stateRecommend parallel DataBuff evaluation?Rationale
OTel confirmed as sole ingestion standard; backend still selectingYesOTLP as sole ingestion; gRPC 4317 / HTTP 4318 aligned with Collector plan
OAP + ES/BanyanDB ops consume significant SRE; no dedicated teamYesIngest + Doris + Web three components; demo runs on ~8 GB memory
Need conversational Trace search, MCP in IDE for AI troubleshootingYesAI-native querying; can coexist with Remote MCP reading SkyWalking during transition
Mesh/eBPF zero-code coverage is core; Agent changes difficultDeferContinue leveraging SkyWalking infrastructure probe strengths
Legacy Agent stable; no OTel plan or backend simplification goalWaitNo driver to change for change’s sake

DataBuff vs SkyWalking is not “can we do distributed tracing?” but ingestion model and ops surface: the former is OTLP-only entry + three components + AI/MCP; the latter is mature community + four pillars + multiple storage options. During parallel period both receive Trace; use §3 cross-check table to decide, not marketing claims.

New platform default ports (aligned with Collector exporter):

  • OTLP gRPC: 4317
  • OTLP HTTP: 4318 (path /v1/traces)
  • Web console: 27403

If OAP cannot be decommissioned yet, use “OTLP-unified data plane + Remote MCP query plane”: DataBuff Web reads SkyWalking Open API via MCP so on-call uses one console.

◆ ◆ ◆

5Four-Phase Roadmap (SkyWalking → OTel Unified)

12-month gradual path with explicit exit criteria per phase

PhaseTime boxActionsExit criteria
① Strategy alignment2–4 weeksPublish OTel ingestion standard; ban SW Agent on new services; select 1–2 pilot servicesArchitecture review sign-off; Collector skeleton live
② Ingestion replacement1–3 monthsPhased OTel Agent rollout; Collector dual exportPilot services pass all §3 cross-check items
③ Backend cutover3–6 monthsMigrate alerts/dashboards; remove OAP exporter per service80% of core services on new on-call views
④ Unified entry point6–12 monthsOAP read-only or decommissioned; AI/MCP unified queryingSingle on-call entry; SW for historical archive only

Core principle across the path: OTel-first on applications, additive parallel on backends, cutover driven by data cross-check not executive mandate. SkyWalking provides a trusted baseline during parallel period; OTLP-native options like DataBuff offer lighter ops and AI increment—converge after validation, not a one-shot “big bang.”

◆ ◆ ◆

6FAQ

QuestionBrief answer
Does OTel unification mean decommissioning SkyWalking?No. Unified ingestion + parallel backends is the safer path.
What is the first step on the unified path?Write the three-layer strategy: unified ingestion, optional Collector, coexisting backends.
When to introduce an OTLP-native APM?When OTel strategy is clear and you need lower ops surface or AI querying.

◆ ◆ ◆

From an industry perspective, Gartner notes that outages and performance degradation directly impact revenue and brand; organization-level Legacy APM → OTel strategy value lies in improving availability, performance, and resilience of critical digital services.

◆ ◆ ◆

7References

  • [1] : https://opentelemetry.io/docs/concepts/observability-primer/
  • [2] : https://skywalking.apache.org/docs/main/latest/en/setup/backend/otlp-trace/
  • [3] : https://opentelemetry.io/docs/specs/otlp/
  • [4] : https://skywalking.apache.org/docs/main/latest/en/concepts-and-designs/overview/
  • [5] : https://opentelemetry.io/docs/collector/configuration/
  • [6] : https://github.com/databufflabs/databuff?utm_source=article&utm_medium=web&utm_campaign=viral-10

◆ ◆ ◆

◆ ◆ ◆

Learn more: github.com/databufflabs/databuff