wu-sheng opened a new pull request, #13869: URL: https://github.com/apache/skywalking/pull/13869
## Summary - New admin-server endpoints `/inspect/metrics` (metric catalog) and `/inspect/entities` (entity enumeration with MQE-ready output). Designed in [SWIP-14](https://github.com/apache/skywalking/blob/swip-14-inspect-api/docs/en/swip/SWIP-14.md). - Companion: the legacy `status-query-plugin` is relocated onto `server-admin/status` as a sibling feature module, dual-bound so skywalking-ui keeps working on `core.restPort` (12800) and the admin port (17128) gains the same surface when admin-server is enabled. URI paths and payloads unchanged. - Core change: one new abstract method on `IMetricsQueryDAO` (`listEntityIdsInRange`); implementations for BanyanDB, Elasticsearch, JDBC. Abstract by design so 3rd party storage backends fail at compile if they miss the override. - 12 unit tests + 9 e2e cases (catalog, every supported scope, `LABELED_VALUE`, MINUTE / HOUR / DAY duration windows, unknown-metric negative). - Operator references: [`admin-api/inspect.md`](https://github.com/apache/skywalking/blob/swip-14-inspect-api/docs/en/setup/backend/admin-api/inspect.md), [`admin-api/status.md`](https://github.com/apache/skywalking/blob/swip-14-inspect-api/docs/en/setup/backend/admin-api/status.md). - Two changelog entries at the end of the 10.5.0 Project section. ## Test plan - [x] `mvnw compile` — full OAP server build green - [x] `mvnw checkstyle:check` — clean across all touched modules - [x] `license-eye header check` — 5015 files checked, 0 invalid - [x] Unit tests: 9 in `EntityDecoderTest`, 3 in `StatusModuleProviderTest` — all green - [x] E2E matrix on all 5 storage backends (local docker compose): - BanyanDB: **78/78 passed** - Elasticsearch (8.18.8): **76/76 passed** - MySQL: **76/76 passed** - OpenSearch (2.4.0): **76/76 passed** - PostgreSQL: **75/75 passed** - [x] Live `curl` smoke test against the running OAP — both `/inspect/metrics` and `/inspect/entities` return the documented JSON shape, including the multi-scope decoded payload and `mqeEntity` block ## Notes - `IMetricsQueryDAO.listEntityIdsInRange` is intentionally abstract — see the javadoc on the method. Any 3rd party storage implementer will get a clean compile error on upgrade and must consciously implement the override. - The `status-query-plugin` selector rename (`SW_QUERY=…,status-query-plugin` → `SW_STATUS=default`, on by default) is the only operator-visible change; default deployments need no action. - `docs/en/status/{query_alarm_runtime_status,query_cluster_nodes,query_ttl_setup}.md` are removed; `docs/en/status/status_apis.md` becomes a one-cycle redirect stub pointing at the new `admin-api/status.md`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
