Engineering Blog

5 min read

Open-Source APM Selection Guide: SkyWalking or OpenTelemetry

With OpenTelemetry driving unified ingestion, teams already on SkyWalking can use a five-dimension checklist, three-phase parallel path, and POC acceptance criteria to decide whether to stay the course or validate an OTL

Open-Source APM Selection Guide: SkyWalking or OpenTelemetry

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

摘要:Summary: As OpenTelemetry pushes a unified standard, teams already on SkyWalking often wonder: double down or try OTLP in parallel? This article provides a five-dimension evaluation checklist, a three-phase coexistence path, and 30-minute POC acceptance criteria—turning selection slogans into verifiable actions. Read through before deciding whether to keep SkyWalking or open a new line.

Covers architecture highlights, the five-dimension checklist, and parallel POC screenshots—ready for a technical committee review.

This article does not argue about "who is better." It starts by aligning on selection mindset: parallel evaluation does not mean immediate replacement. Then it walks through the five-dimension checklist to compare SkyWalking and OpenTelemetry routes, lands a three-phase coexistence path, and adds a scenario match table plus 30-minute POC steps. By the end, you can turn vague committee debates into an actionable checklist.

1Align on Mindset: Selection ≠ Replacement

SkyWalking remains a mature open-source APM; much "selection anxiety" comes from OTel strategy, not sudden product obsolescence

Technical committees often swing between two extremes: "never change what we have" or "migrate everything at once." The safer practice is parallel evaluation—keep SkyWalking serving existing probes while new services or OTel-ready workloads connect to another backend, then compare real traces and metrics side by side.

Frame the selection goal as: "Over the next 12 months, can we handle OTel unified ingestion at lower operational cost and add AI-assisted troubleshooting?"—not "Is SkyWalking good enough?"

If ≥2 items on the five-dimension checklist strongly match your strategy (e.g., OTel as the sole standard + AI Q&A), spend an afternoon on a parallel POC. If none match, deepening SkyWalking is equally reasonable.

◆ ◆ ◆

2Five-Dimension Evaluation Checklist

Use directly in architecture reviews; each row includes typical SkyWalking behavior and what to watch during parallel evaluation

DimensionKey QuestionTypical SkyWalking BehaviorParallel Evaluation Focus (DataBuff example)
① OTel StrategyMust the app side maintain only one OTel SDK?Multiple probe formats + OTLP receiver (OAP 11800/12800)Is OTLP the only ingress; do gRPC 4317 / HTTP 4318 align with Collector plans
② Operational SurfaceWho maintains storage and ingestion day to day?OAP + Storage (ES/BanyanDB, etc.) + UI—many componentsCan it collapse to Ingest + Doris + Web; does Demo run on 8G
③ AI TroubleshootingNeed conversational Trace/metric queries?AI Pipeline (ML baselines/URI recognition), not conversational APMAI-native Q&A, multi-agent patrol, MCP in IDE
④ Onboarding & POC CostHow fast can you prove "traces are queryable"?Mature Docker/Helm; storage choice takes timeOne curl / bash to stand up; Web default 27403
⑤ Team SkillsDev self-ops or dedicated SRE?Suits complex stacks with observability specialistsSuits dev-led teams wanting minute-level validation

◆ ◆ ◆

3Three-Phase Parallel Path

A standard cadence to reduce psychological and engineering risk

Phase 1 · Parallel (~2–4 weeks) Leave existing SkyWalking untouched; pick 1–2 new services or OTel-ready workloads and send OTLP to the evaluation backend ↓ Phase 2 · Comparison (~4–8 weeks) OTel Collector dual export; compare trace fields, latency percentiles, topology consistency ↓ Phase 3 · Cutover (per service) Gradually retire OAP dependency; unify AI/MCP Q&A entry (optional Remote MCP for legacy SkyWalking)

In Phase 2, use Collector config: one receiver, multiple exporters—no app code changes, only Collector routing.

If you cannot decommission SkyWalking yet, Phase 3 can become "dual data plane + unified AI entry": DataBuff queries SkyWalking Open API via Remote MCP, with all conversation in one Web console.

Fig. 1 · During comparison, use the global dashboard to observe service alerts and health side by side, reducing UI switching

Fig. 1 · During comparison, use the global dashboard to observe service alerts and health side by side, reducing UI switching

Fig. 1 · During comparison, use the global dashboard to observe service alerts and health side by side, reducing UI switching

◆ ◆ ◆

4Scenario Match: When a POC Is Worth It

Your SituationRecommendationRationale
Company pushing OpenTelemetry as the unified standardParallel POCVerify an OTLP-native backend can serve new services
OAP + ES ops burden, no dedicated SREParallel POCCompare day-to-day ops of a three-component stack
Want natural-language Trace queries, exploring AI opsParallel POCExperience AI-native Q&A and MCP workflows
Heavy Mesh/eBPF, full four-pillar stackStay on SkyWalkingZero-code infrastructure coverage remains a core strength
Stable legacy agents, no OTel roadmapWait and seeNo migration driver—don't change for change's sake

◆ ◆ ◆

5Parallel POC: Validation in 30 Minutes

Selection conclusions should come from reproducible environments, not slides

DataBuff provides a public one-line install script (requires Docker, ~8G RAM):

curl -fsSL https://databuff.ai/databuff/ai-apm-install.sh | bash

After install:

  • Web UI: http://<host>:27403
  • OTLP gRPC: 4317
  • OTLP HTTP: 4318 (e.g. /v1/traces)

POC acceptance checklist (suggested):

  • At least one service appears in the service list with RED metrics
  • Global topology shows call edges
  • Trace list filters slow requests and drills into Spans
  • (Optional) AI Q&A returns answers grounded in real data
Fig. 2 · Acceptance ①: service list should show OTel-reported services with readable request volume / error rate / avg response time trends

Fig. 2 · Acceptance ①: service list should show OTel-reported services with readable request volume / error rate / avg response time trends

Fig. 2 · Acceptance ①: service list should show OTel-reported services with readable request volume / error rate / avg response time trends

Fig. 3 · Acceptance ②: global topology should show inter-service call edges and middleware nodes such as MySQL, Redis, Kafka

Fig. 3 · Acceptance ②: global topology should show inter-service call edges and middleware nodes such as MySQL, Redis, Kafka

Fig. 3 · Acceptance ②: global topology should show inter-service call edges and middleware nodes such as MySQL, Redis, Kafka

◆ ◆ ◆

6FAQ

QuestionShort Answer
Already on SkyWalking—must we migrate immediately?No. Use the five-dimension checklist to assess gaps, then run a parallel POC to validate OTLP ingestion and end-to-end tracing.
Can SkyWalking coexist with OTel-based APM?Yes. Collector dual export or Remote MCP for legacy SkyWalking; new traffic via OTLP 4317/4318.
Which dimension should we check first?OTel strategy alignment—whether the app side wants to maintain only one SDK/Exporter.

◆ ◆ ◆

From an industry perspective, Gartner views observability platform investment as a way to avoid revenue loss from critical digital business failures and to improve availability and resilience. SkyWalking selection need not be binary—a five-dimension parallel POC is a lightweight way to "validate vendors by business outcomes" in Gartner's sense.

◆ ◆ ◆

7References

  • [1] : https://skywalking.apache.org/docs/main/latest/en/concepts-and-designs/overview/
  • [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/next/en/setup/ai-pipeline/introduction/
  • [5] : https://opentelemetry.io/docs/collector/configuration/
  • [6] : https://github.com/databufflabs/databuff?utm_source=article&utm_medium=web&utm_campaign=viral-01
  • [7] : https://databuff.ai/databuff/ai-apm-install.sh
  • [8] : https://www.gartner.com/reviews/market/observability-platforms

◆ ◆ ◆

◆ ◆ ◆

Learn more: github.com/databufflabs/databuff