Add virtual thread support for gRPC and HTTP servers on JDK 25+ (#13705)

  Add virtual thread support for gRPC and Armeria HTTP servers on JDK 25+

  Enable virtual-thread-per-task executors for all 4 gRPC and 7 HTTP
  server handler pools when running on JDK 25+, with automatic fallback
  to platform thread pools on older JDKs. JDK 25 is required as the
  first LTS with the synchronized pinning fix (JEP 491).

  Key changes:
  - VirtualThreads: reflection-based detection and executor factory
  - VirtualThreadScheduledExecutor: virtual-thread-backed scheduled
    executor for Armeria's blockingTaskExecutor
  - Default Docker image changed to JDK 25; JDK 11/17/21 variants kept
  - Kill switch: SW_VIRTUAL_THREADS_ENABLED=false

  On JDK 25+, ~9 ForkJoinPool carrier threads replace up to 800+
  platform threads across all handler pools.
18 files changed
tree: d78a9bdef2e4fe55658a78b11ff75d8bd73570e4
  1. .github/
  2. .mvn/
  3. apm-checkstyle/
  4. apm-dist/
  5. apm-protocol/
  6. apm-webapp/
  7. changes/
  8. dist-material/
  9. docker/
  10. docs/
  11. oap-server/
  12. oap-server-bom/
  13. test/
  14. tools/
  15. .asf.yaml
  16. .dlc.json
  17. .gitignore
  18. .gitmodules
  19. .licenserc.yaml
  20. CLAUDE.md
  21. codeStyle.xml
  22. CONTRIBUTING.md
  23. HEADER
  24. LICENSE
  25. lombok.config
  26. Makefile
  27. mvnw
  28. mvnw.cmd
  29. NOTICE
  30. pom.xml
  31. README.md
README.md

Apache SkyWalking

SkyWalking: an APM (Application Performance Monitoring) system, especially designed for microservices, cloud native and container-based architectures.

GitHub stars X Follow

GitHub Release

Abstract

SkyWalking is an open-source APM system that provides monitoring, tracing and diagnosing capabilities for distributed systems in Cloud Native architectures.

  • Distributed Tracing
    • End-to-end distributed tracing. Service topology analysis, service-centric observability and APIs dashboards.
  • Agents for your stack
    • Java, .Net Core, PHP, NodeJS, Golang, LUA, Rust, C++, Client JavaScript and Python agents with active development and maintenance.
  • eBPF early adoption
    • Rover agent works as a monitor and profiler powered by eBPF to monitor Kubernetes deployments and diagnose CPU and network performance.
  • Scaling
    • 100+ billion telemetry data could be collected and analyzed from one SkyWalking cluster.
  • Mature Telemetry Ecosystems Supported
    • Metrics, Traces, and Logs from mature ecosystems are supported, e.g. Zipkin, OpenTelemetry, Prometheus, Zabbix, Fluentd
  • Native APM Database
    • BanyanDB, an observability database, created in 2022, aims to ingest, analyze and store telemetry/observability data.
  • Consistent Metrics Aggregation
    • SkyWalking native meter format and widely known metrics format(OpenTelemetry, Telegraf, Zabbix, e.g.) are processed through the same script pipeline.
  • Log Management Pipeline
    • Support log formatting, extract metrics, various sampling policies through script pipeline in high performance.
  • Alerting and Telemetry Pipelines
    • Support service-centric, deployment-centric, API-centric alarm rule setting. Support forwarding alarms and all telemetry data to 3rd party.
  • AI Power Enabled
    • Machine Learning (ML) and Artificial Intelligence (AI) analyze observability data to identify patterns and enhance capabilities, such as recognizing HTTP URI patterns and automatically calculating metric baselines for intelligent alerting, improving anomaly detection.

Live Demo

Documentation

Downloads

Please head to the releases page to download a release of Apache SkyWalking.

Compiling project

Follow this document.

Code of conduct

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please follow the REPORTING GUIDELINES to report unacceptable behavior.

Contact Us

  • Mail list: dev@skywalking.apache.org. Mail to dev-subscribe@skywalking.apache.org, follow the reply to subscribe the mail list.
  • Send Request to join SkyWalking slack mail to the mail list(dev@skywalking.apache.org), we will invite you in.
  • For Chinese speaker, send [CN] Request to join SkyWalking slack mail to the mail list(dev@skywalking.apache.org), we will invite you in.
  • Twitter, ASFSkyWalking
  • bilibili B站 视频
  • 掘金

Our Users

Hundreds of companies and organizations use SkyWalking for research, production, and commercial purposes. Visit our website to find the user page.

License

Apache 2.0 License.