Skip to content

Commit 22998de

Browse files
authored
Merge branch 'master' into fix/csp-header
2 parents 11e60b1 + 676041e commit 22998de

62 files changed

Lines changed: 1639 additions & 90 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.htaccess

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
ErrorDocument 404 /404.html
22

33
# CSP permissions for apache.skywalking.apache.org - Adding third party services Google, Netlify. Approved per https://infra.apache.org/tools/csp.html
4-
SetEnv CSP_PROJECT_DOMAINS "https://www.google.com https://app.netlify.com"
4+
SetEnv CSP_PROJECT_DOMAINS "https://www.google.com https://app.netlify.com"

CLAUDE.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# SkyWalking Website - AI Assistant Guide
2+
3+
## Git Commit Rules
4+
- Do NOT add `Co-Authored-By` with Claude or any AI assistant in commit messages.
5+
6+
## Release Event Post
7+
8+
Event posts live in `content/events/<slug>/index.md`.
9+
Slug format: `release-apache-skywalking-<component>-<version>` with dots replaced by dashes (e.g. `release-apache-skywalking-java-agent-9-6-0`).
10+
11+
### Frontmatter
12+
```yaml
13+
---
14+
title: Release Apache SkyWalking <Component Name> <VERSION>
15+
date: YYYY-MM-DD
16+
author: SkyWalking Team
17+
description: "Release Apache SkyWalking <Component Name> <VERSION>."
18+
---
19+
```
20+
21+
### Body
22+
1. Opening: `SkyWalking <Component Name> X.X.X is released. Go to [downloads](/downloads) page to find release tars.`
23+
2. `Changes by Version` header
24+
3. Version number with `------------------` underline
25+
4. Bullet list of user-facing changes from the source repo's `CHANGES.md` at the release tag. Exclude dependency bumps, build-only, and test-only items.
26+
5. Closing: `All issues and pull requests are [here](<github milestone link>)`
27+
28+
## data/releases.yml Update
29+
30+
### Link rules
31+
- **Latest version** (top entry): uses `https://www.apache.org/dyn/closer.cgi/skywalking/...` for download and `https://downloads.apache.org/skywalking/...` for asc/sha512.
32+
- **Older versions**: use `https://archive.apache.org/dist/skywalking/...` for all links (download, asc, sha512).
33+
- When adding a new version, insert it at the top and demote the previous latest version's links to `archive.apache.org`.
34+
35+
### URL pattern
36+
All components follow: `skywalking/<url-path-segment>/<version>/<artifact-filename>`
37+
38+
### Component reference
39+
40+
| Component | URL path segment | Artifact prefix | Source v-prefix | Dist v-prefix |
41+
|-----------|-----------------|-----------------|-----------------|---------------|
42+
| SkyWalking APM | (version only) | `apache-skywalking-apm-` | yes | yes |
43+
| Java Agent | `java-agent/` | `apache-skywalking-java-agent-` | no | yes |
44+
| Python Agent | `python/` | `skywalking-python-` | yes | yes |
45+
| Go Agent | `go/` | `apache-skywalking-go-` | yes | yes |
46+
| NodeJS Agent | `node-js/` | `skywalking-nodejs-` | yes | no |
47+
| Rust Agent | `rust/` | `skywalking-` | yes | yes |
48+
| PHP Agent | `php/` | `skywalking_agent-` | yes | yes |
49+
| Client JavaScript | `client-js/` | `skywalking-client-js-` | yes | yes |
50+
| Ruby Agent | `ruby/` | `skywalking-ruby-` | yes | yes |
51+
| Nginx LUA Agent | `nginx-lua/` | `skywalking-nginx-lua-` | yes | yes |
52+
| Satellite | `satellite/` | `apache-skywalking-satellite-` | yes | yes |
53+
| Rover | `rover/` | `apache-skywalking-rover-` | yes | yes |
54+
| CLI | `cli/` | `skywalking-cli-` | yes | yes |
55+
| Kubernetes Helm | `kubernetes/` | `skywalking-helm-` | yes | (source only) |
56+
| SWCK | `swck/` | `skywalking-swck-` | yes | yes |
57+
| BanyanDB Server | `banyandb/` | `skywalking-banyandb-` | yes | yes |
58+
| BanyanDB Java Client | `banyandb-java-client/` | `apache-skywalking-banyandb-java-client-` | yes | yes |
59+
| BanyanDB Helm | `banyandb-helm/` | `skywalking-banyandb-helm-` | yes | (source only) |
60+
| Eyes | `eyes/` | `skywalking-license-eye-` | yes | yes |
61+
| Infra E2E | `infra-e2e/` | `skywalking-e2e-` | yes | yes |
62+
63+
### Date format
64+
Use `Mon. DDth, YYYY` with ordinal suffixes: 1st, 2nd, 3rd, all others th (e.g. `Feb. 16th, 2026`).
65+
66+
## data/docs.yml Update
67+
68+
When releasing a new version, update the component's `docs` section:
69+
70+
1. **Update `Latest`**: change its `commitId` to the new release tag's dereferenced commit SHA (for annotated tags, dereference with `gh api repos/apache/<repo>/git/tags/<tag-sha> --jq '.object.sha'`).
71+
2. **Add new versioned entry**: insert a `v<VERSION>` entry right after `Latest` with the same commitId and link pattern `/docs/<repo-slug>/v<VERSION>/readme/`.
72+
3. **Keep old versions** as-is.
73+
74+
### Docs entry types
75+
Components use two styles in docs.yml:
76+
- **Hugo-hosted docs** (have `repoUrl`): use `/docs/<repo-slug>/<version>/readme/` links with `commitId`. These have `Next`, `Latest`, and versioned entries.
77+
- **GitHub-linked docs** (no `repoUrl`): use direct GitHub links like `https://github.com/apache/<repo>/tree/v<VERSION>`. These only have versioned entries, no `Latest`/`Next`.
78+
79+
### Getting the commitId
80+
```bash
81+
# Get tag object SHA
82+
TAG_SHA=$(gh api repos/apache/<repo>/git/ref/tags/v<VERSION> --jq '.object.sha')
83+
# Dereference annotated tag to actual commit
84+
COMMIT_SHA=$(gh api repos/apache/<repo>/git/tags/$TAG_SHA --jq '.object.sha')
85+
```
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
---
2+
title: "Apache SkyWalking 2025 in Review: Making BanyanDB Ready for Production"
3+
date: 2026-01-01
4+
author: Sheng Wu
5+
description: "A review of Apache SkyWalking community work in 2025, with a focus on BanyanDB becoming the production-grade native storage for SkyWalking."
6+
tags:
7+
- Community
8+
- Year in Review
9+
- BanyanDB
10+
- Storage
11+
- Release Blog
12+
endTime: 2026-01-01T23:00:00Z
13+
---
14+
15+
2025 was a very focused year for the Apache SkyWalking community: **moving BanyanDB from “native storage” to a “production-ready default”**, and making SkyWalking APM fully benefit from that foundation.
16+
17+
This post summarizes the key milestones, with an emphasis on BanyanDB.
18+
19+
## Storage strategy: saying goodbye to H2
20+
21+
We started 2025 with a clear direction: the **H2 storage option is permanently removed**.
22+
This change reduced long-term maintenance burden and removed a storage choice that was not aligned with production and cloud-native deployments.
23+
24+
## BanyanDB: from 0.8.0 foundations to 0.9.0 production features
25+
26+
**BanyanDB 0.8.0** delivered the “day-2 operations” foundation that a default storage backend needs. The community put a lot of effort into making queries faster and more predictable (for example `index_mode`, numeric index types, and multiple query-path optimizations), while also making the system safer under real production pressure. Disk-usage thresholds and a query **memory protector** were added as guardrails, and the operational toolbox matured with snapshot/backup/restore utilities and improved metadata synchronization.
27+
28+
Just as importantly, 0.8.0 started filling in the missing pieces of a full platform: native property storage and lifecycle-related capabilities that later enabled stronger HA and stage-based deployment patterns.
29+
30+
**BanyanDB 0.9.0** was the “production features” milestone. It introduced the **Trace** data model as a first-class citizen, which unlocked much deeper trace storage and query capabilities. On the reliability and scaling side, the release brought configurable replicas, liaison-side improvements (including load balancing and moving some TopN flow), and broader correctness work such as migrations, version compatibility checks, and access logs.
31+
32+
It also made long-term operations more cloud-friendly with backup/restore support for AWS S3, GCS, and Azure Blob Storage, and added authentication primitives needed in shared environments. In short, 0.9.0 is where BanyanDB clearly moved beyond a “fast storage engine” into a “production platform”.
33+
34+
## SkyWalking APM: BanyanDB becomes the default path
35+
36+
With **APM 10.2.0**, the project made the strategic shift official: H2 was removed permanently, and BanyanDB 0.8.0 became the default path that SkyWalking invests in. A lot of the work here was not flashy, but essential — refining OAP behavior (group settings, index model changes, Progressive TTL, query limits, and more) so running BanyanDB in production felt stable and predictable.
37+
38+
With **APM 10.3.0**, SkyWalking and BanyanDB moved forward together: BanyanDB 0.9.0’s new trace model was adopted end-to-end, reducing inefficient query round-trips and enabling new query views that significantly lowered page latency. The integration also expanded into lifecycle-aware operations with hot/warm/cold stage configuration (including TTL and query support), and added BanyanDB **self-monitoring** through OAP and the UI — the kind of end-to-end polish that turns a storage backend into a truly native solution.
39+
40+
If you’d like this review to cover **APM 10.4.x** as well, please point me to the corresponding release content in this repo (I didn’t find an APM 10.4.0 release announcement in the current checkout).
41+
42+
## Packaging and deployment ecosystem (Helm)
43+
44+
BanyanDB’s production readiness is not only server features — it also depends on deployment maturity.
45+
46+
- Helm charts:
47+
- SkyWalking Kubernetes Helm Chart 4.8.0 improved BanyanDB deployment defaults by updating the bundled BanyanDB Helm dependency, fixing an init-job volume-mount mismatch, and aligning OAP/UI images with the APM 10.3.0 line.
48+
- BanyanDB Helm 0.4.0 added backup/restore sidecars and a default volume for property storage.
49+
- BanyanDB Helm 0.5.0 introduced stage-aware patterns (hot/warm/cold), improved lifecycle-sidecar scheduling, moved liaison to StatefulSet, refined internal networking, and expanded configuration options.
50+
- BanyanDB Helm 0.5.1 refined liaison configuration and fixed restore-init environment issues.
51+
- BanyanDB Helm 0.5.3 fixed a liaison/data-node port issue.
52+
53+
## The rest of the community: agents and tooling kept moving
54+
55+
While storage was the “main storyline”, the community shipped releases across agents, clients, and surrounding components throughout 2025.
56+
57+
Below is a consolidated view of the other releases, grouped by project, with the most important notes.
58+
59+
- **SkyWalking Java Agent**
60+
- **9.4.0**: agent self-observability; async-profiler support; broader plugin improvements.
61+
- **9.5.0**: virtual thread executor plugin; compatibility and stability fixes; dependency upgrades.
62+
63+
- **SkyWalking Go**
64+
- **0.6.0**: richer manual APIs (events/logs/metrics, set span error); goframev2 plugin; bug fixes including Redis cluster mode.
65+
66+
- **SkyWalking for NodeJS**
67+
- **0.8.0**: Express 4/5 compatibility, keep-alive HTTP trace fix, and test/dependency maintenance.
68+
69+
- **SkyWalking Python**
70+
- **1.2.0**: sampling service, `sw_grpc` plugin, async/profiling stability fixes, Python 3.13 support, and dropping Python 3.7.
71+
72+
- **SkyWalking PHP**
73+
- **1.0.0**: reach 1.0; add PSR-3 log reporting; upgrade toolchain/dependencies.
74+
75+
- **SkyWalking Rust**
76+
- **0.9.0**: migrate to Rust edition 2024 and upgrade dependencies.
77+
- **0.10.0**: Kafka client configuration refactor, `rdkafka` upgrade, CI maintenance.
78+
79+
- **SkyWalking Ruby**
80+
- **0.1.0**: initialize agent core and e2e tests; add plugins for Sinatra, redis-rb, net-http, memcached, and Elasticsearch.
81+
82+
- **SkyWalking Client JS**
83+
- **1.0.0**: add Core Web Vitals and static resource metrics; fix fetch/resource error handling; dependency and e2e/test improvements.
84+
85+
- **SkyWalking Satellite**
86+
- **1.3.0**: support native eBPF Access Log protocol and async-profiler protocol; upgrade Go toolchain.
87+
88+
- **SkyWalking Eyes**
89+
- **0.7.0**: improve installation/docs, respect gitignore behavior, upgrade Go, and simplify release steps.
90+
- **0.8.0**: add Elixir support and stronger dependency-license scanning (notably Ruby via Gemfile.lock), plus stability fixes.
91+
92+
## Looking ahead: possible directions in 2026
93+
94+
2025 was about making BanyanDB ready for production. In 2026, the community is exploring the next set of improvements that could make the whole stack simpler to operate, more stable under stress, and easier to integrate into broader observability ecosystems.
95+
96+
Possible areas include:
97+
98+
- **BanyanDB: remove the etcd dependency**: the direction under discussion is to move away from etcd (given ecosystem activity and maintenance concerns) and rely more on DNS-based discovery plus BanyanDB’s native property capabilities.
99+
- **BanyanDB: stronger stability testing**: more systematic testing, including chaos testing, to validate behavior under failures and noisy conditions.
100+
- **BanyanDB: better observability export**: introducing First Occurrence Data Collection (FODC) as a sidecar and proxy server to provide a unified stream of observability data to third-party systems.
101+
- **SkyWalking APM: broader runtime and query capabilities**: cold-stage data query support, a newer Java runtime (Java 25), and consideration of TraceQL protocol (Temper) support.
102+
103+
## Closing
104+
105+
Thanks to everyone who contributed to SkyWalking in 2025. Every contribution is high-value — code, documentation, reviews, testing, issue triage, and operational experience — and each of them helped move the project forward.
106+
107+
We also want to say a special thank you to the countless end users across global companies. Many of the most valuable improvements don’t start from a pull request: they start from real-world use cases, performance investigations, production feedback, bug reports, and the patience to help us reproduce and validate fixes.
108+
109+
As another milestone, SkyWalking reached **968 GitHub contributors** globally, and we expect the **1000th** contributor milestone to arrive soon in 2026. But the community is much larger than the number suggests, and SkyWalking’s progress has always been driven by collaboration between contributors, adopters, and maintainers.
110+
111+
Apache SkyWalking was originally created by Sheng Wu as a personal project in May 2015. It would never have grown into what it is today without the whole community — and it will keep moving forward because of the community.

0 commit comments

Comments
 (0)