Skip to content

Apache SkyWalking — Commands & Recipes

Runnable commands, configuration snippets, and troubleshooting recipes for Apache SkyWalking.

Installation

Helm with BanyanDB

helm install skywalking \
  oci://registry-1.docker.io/apache/skywalking-helm \
  --version <VERSION> \
  -n skywalking --create-namespace \
  --set oap.storageType=banyandb \
  --set banyandb.enabled=true

Helm with Elasticsearch

helm install skywalking \
  oci://registry-1.docker.io/apache/skywalking-helm \
  --version <VERSION> \
  -n skywalking --create-namespace \
  --set oap.storageType=elasticsearch \
  --set oap.env.SW_STORAGE_ES_CLUSTER_NODES="es-master:9200"

BanyanDB CLI (bydbctl)

# List all groups
bydbctl group list

# Query a measure
bydbctl measure query --group sw_metric --name service_cpm

# List streams in a group
bydbctl stream list --group sw_record

# Create an index rule
bydbctl indexrule create -f my-index-rule.yaml

# Delete old data from a group
bydbctl group update --name sw_metric --ttl 7d

BanyanDB Embedded UI

# Access BanyanDB UI (port 17913)
kubectl port-forward -n skywalking svc/banyandb 17913:17913
# Open http://localhost:17913

OAP Server

Health & Status

# OAP L7 health check
curl http://oap:12800/internal/l7check

# GraphQL query — list services
curl -X POST http://oap:12800/graphql \
  -H "Content-Type: application/json" \
  -d '{"query": "{ listServices(duration: {start: \"2026-04-11\", end: \"2026-04-11\", step: DAY}) { key: id label: name } }"}'

Environment Variable Overrides

# Common OAP overrides in Helm values
oap:
  env:
    SW_STORAGE: banyandb
    SW_STORAGE_BANYANDB_TARGETS: "banyandb:17912"
    SW_CORE_RECORD_DATA_TTL: "7"
    SW_CORE_METRICS_DATA_TTL: "30"
    SW_VIRTUAL_THREADS_ENABLED: "true"
    SW_RECEIVER_GRPC_PORT: "11800"

Java Agent

# Attach Java agent
java -javaagent:/path/to/skywalking-agent.jar \
  -Dskywalking.agent.service_name=my-service \
  -Dskywalking.collector.backend_service=oap:11800 \
  -jar my-application.jar

Troubleshooting

OAP Not Receiving Data

# Check receiver ports
kubectl get svc -n skywalking | grep oap

# Check OAP logs for receiver errors
kubectl logs -n skywalking -l app=oap --tail=100 | grep -i "error\|receiver"

# Verify agent connectivity from app pod
kubectl exec -it <app-pod> -- nc -zv oap 11800

BanyanDB Disk Full

# Check disk usage
kubectl exec -n skywalking $(kubectl get pod -n skywalking -l app=banyandb -o name | head -1) -- \
  df -h /data

# Reduce retention
kubectl set env deployment/oap -n skywalking \
  SW_CORE_RECORD_DATA_TTL=3 \
  SW_CORE_METRICS_DATA_TTL=7

Upgrade

helm upgrade skywalking \
  oci://registry-1.docker.io/apache/skywalking-helm \
  --version <NEW_VERSION> \
  -n skywalking -f values.yaml

# Verify
kubectl get pods -n skywalking

Sources