This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a change to branch dep
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git
discard 258fd7521 chore: exclude .omc state dirs from license-eye header check
discard 9027cbfc1 chore(deps): bump ui/mcp/go deps to clear Dependabot
advisories
omit 3c1b52a10 Merge branch 'main' into dev
omit d80788773 feat: implement global tag type metadata for stream parts
add c6183d7ff Support migration copy/verify/analysis index mode measure
(#1187)
add 5604682e0 Add storage-node post-trace pipeline: design, pipeline.v1
proto, Go SDK (#1189)
add 3c8659ba5 perf(trace): vectorized trace query — limit pushdown,
bounded sidx scan, native columnar distributed wire frame (#1190)
add 6f4ef25b8 Make dump UT more stable (#1188)
add 7b961589c feat(canopy): add Canopy BFF + React SPA subproject (M0–M2)
(#1191)
add ac7f7a3b1 feat(lifecycle): throttle migration under receiver memory
pressure; fix bluge dedup OOM (#1193)
add 7ae98e0b6 feat: implement global tag type metadata for stream parts
(#1184)
add 68ac23e15 feat: in-merge trace retention filter with native .so plugin
pipeline (#1194)
add d1574db08 feat(canopy): M3 metadata management —
Group/Stream/Measure/Trace/IndexRule CRUD (#1197)
add ec48e7ff5 feat(trace): dynamic sampler registration via group-scoped
pipeline config (#1198)
add 152fa41f8 Fix block metadata reset before unmarshal for stream and
trace (#1195)
add 4c674abc4 feat: implement global tag type metadata for measure parts
(#1196)
add 38704419f Add FODC memory-pressure pprof capture (#1200)
add 2c9946197 Lifecycle only handle stream/measure/trace snapshots (#1202)
add a4fac2f4b Add Consistently check after Eventually checks (#1204)
add 9b83f0bc6 fix(stream): fix migration corruption from arena tagValue
double-free (#1205)
add 0e3254c99 Add the codex/claude plugin to bydbQL (#1201)
add 215f4bbe0 fix: avoid pooling arena-owned migration tag values (#1203)
add 1a2696b8a feat(trace): bounded meter + logger telemetry for the
sampler plugin SDK (#1206)
add 0126a55e6 chore(deps): bump ui/mcp/go deps to clear Dependabot
advisories
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (258fd7521)
\
N -- N -- N refs/heads/dep (0126a55e6)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.agents/plugins/marketplace.json | 20 +
.claude-plugin/marketplace.json | 13 +
.claude-plugin/plugin.json | 37 +
.codex-plugin/plugin.json | 37 +
.github/workflows/canopy.yml | 112 +
.github/workflows/ci.yml | 8 +
.github/workflows/flaky-test.yml | 39 +
.github/workflows/publish-docker.yml | 6 +
.github/workflows/test-fodc-e2e.yml | 49 +-
.gitignore | 2 +
.golangci.yml | 7 +
.licenserc.yaml | 7 +-
.mcp.json | 15 +
CHANGES.md | 13 +-
Makefile | 78 +-
api/data/codec.go | 17 +
api/data/codec_test.go | 5 +-
api/data/data.go | 9 +-
api/data/trace_frame.go | 50 +
api/data/trace_frame_test.go | 109 +
api/proto/banyandb/cluster/v1/rpc.proto | 1 +
api/proto/banyandb/common/v1/common.proto | 77 +
api/proto/banyandb/fodc/v1/rpc.proto | 75 +
.../banyandb/pipeline/v1/trace_pipeline.proto | 116 +
api/validate/validate.go | 44 +
api/validate/validate_test.go | 25 +
.../backup/lifecycle/measure_migration_visitor.go | 72 +-
banyand/backup/lifecycle/migration_error_test.go | 7 +-
banyand/backup/lifecycle/migration_integration.go | 13 +-
banyand/backup/lifecycle/retry.go | 135 +
banyand/backup/lifecycle/retry_test.go | 132 +
banyand/backup/lifecycle/roundtrip_test.go | 13 +-
banyand/backup/lifecycle/row_replay_measure.go | 6 +-
banyand/backup/lifecycle/row_replay_pipeline.go | 4 +-
banyand/backup/lifecycle/row_replay_stream.go | 2 +-
banyand/backup/lifecycle/row_replay_trace.go | 2 +-
banyand/backup/lifecycle/service.go | 31 +-
banyand/backup/lifecycle/steps.go | 9 +
.../backup/lifecycle/stream_migration_visitor.go | 110 +-
.../backup/lifecycle/trace_migration_visitor.go | 135 +-
banyand/cmd/migration/MIGRATION.md | 2 +-
banyand/cmd/migration/README.md | 24 +-
banyand/cmd/migration/analyze.go | 75 +
banyand/cmd/migration/copy.go | 17 +-
banyand/cmd/migration/scripts/verify-data.sh | 24 +
banyand/cmd/migration/verify.go | 172 +-
banyand/internal/dump/measure/suite_test.go | 52 +-
banyand/internal/migration/fsutil.go | 22 +-
banyand/internal/migration/fsutil_test.go | 100 +
.../internal/migration/migration_stream_test.go | 6 +-
banyand/internal/migration/orchestrator.go | 23 +
banyand/internal/migration/orchestrator_test.go | 100 +
banyand/internal/sidx/interfaces.go | 7 +-
banyand/internal/sidx/merge.go | 62 +-
banyand/internal/sidx/merge_test.go | 96 +-
banyand/internal/sidx/query.go | 38 +-
banyand/internal/sidx/query_test.go | 55 +
banyand/internal/sidx/sidx.go | 37 +
banyand/internal/sidx/timestamp_test.go | 4 +-
banyand/measure/block.go | 9 +
banyand/measure/block_metadata.go | 16 +
banyand/measure/block_metadata_test.go | 35 +
banyand/measure/block_reader_test.go | 1 +
banyand/measure/block_test.go | 14 +
banyand/measure/block_writer.go | 11 +-
banyand/measure/export_test.go | 37 +
banyand/measure/file_part_sync_test.go | 30 +-
banyand/measure/measure.go | 1 +
banyand/measure/measure_suite_test.go | 2 +-
banyand/measure/merger.go | 14 +-
banyand/measure/merger_test.go | 40 +-
banyand/measure/metadata_test.go | 11 +-
banyand/measure/migration_analyze.go | 17 +
banyand/measure/migration_copy.go | 18 -
banyand/measure/migration_copy_test.go | 58 -
banyand/measure/migration_e2e_test.go | 2 +-
banyand/measure/migration_executor.go | 46 +-
banyand/measure/migration_indexmode_copy.go | 1111 +++
banyand/measure/migration_indexmode_copy_test.go | 1470 ++++
banyand/measure/migration_indexmode_e2e_test.go | 538 ++
banyand/measure/migration_oom_throttling_test.go | 408 +
banyand/measure/migration_schema.go | 44 +-
banyand/measure/migration_schema_test.go | 93 +
banyand/measure/migration_verify.go | 56 +-
banyand/measure/part.go | 23 +-
banyand/measure/part_iter_test.go | 2 +
banyand/measure/part_metadata.go | 95 +
banyand/measure/part_test.go | 6 +
banyand/measure/svc_data.go | 4 +-
banyand/measure/svc_liaison.go | 3 +
banyand/measure/svc_standalone.go | 2 +
banyand/measure/syncer.go | 19 +
banyand/measure/tstable_test.go | 1 +
banyand/measure/write_data.go | 66 +-
banyand/measure/write_data_busy_test.go | 67 +
banyand/metadata/schema/reader/loaders.go | 6 +
banyand/metadata/schema/schemaserver/service.go | 9 +-
banyand/property/db/repair_gossip_test.go | 22 +-
banyand/protector/protector.go | 53 +-
banyand/protector/protector_test.go | 107 +
banyand/protector/wait.go | 63 +
banyand/protector/wait_test.go | 72 +
banyand/query/processor.go | 119 +-
banyand/query/query.go | 3 +-
banyand/queue/pub/chunked_sync.go | 6 +
banyand/queue/queue.go | 18 +-
.../queue/queue_test.go | 24 +-
banyand/queue/sub/chunked_sync.go | 5 +
banyand/queue/sub/chunked_sync_test.go | 62 +
banyand/queue/sub/sub.go | 4 +-
banyand/stream/block_metadata.go | 2 +
banyand/stream/block_metadata_test.go | 35 +
banyand/stream/block_scanner_test.go | 1 +
banyand/stream/block_writer.go | 6 +-
banyand/stream/file_part_sync_test.go | 30 +-
banyand/stream/merger.go | 2 +-
banyand/stream/metadata_test.go | 9 +-
banyand/stream/migration_copy.go | 22 +-
banyand/stream/part.go | 2 +-
banyand/stream/part_iter_test.go | 2 +
banyand/stream/query_by_idx_test.go | 1 +
banyand/stream/stream.go | 1 +
banyand/stream/stream_suite_test.go | 2 +-
banyand/stream/svc_liaison.go | 3 +
banyand/stream/svc_standalone.go | 6 +-
banyand/stream/test_helper.go | 110 +-
banyand/stream/tstable_test.go | 1 +
banyand/stream/wqueue_test.go | 10 +-
banyand/stream/write_data.go | 91 +-
banyand/stream/write_data_busy_test.go | 94 +
banyand/trace/block.go | 17 +
banyand/trace/block_metadata.go | 2 +
banyand/trace/block_metadata_test.go | 54 +-
banyand/trace/merger.go | 375 +-
banyand/trace/merger_bench_test.go | 8 +-
banyand/trace/merger_durability_test.go | 5 +-
banyand/trace/merger_test.go | 10 +-
banyand/trace/metadata.go | 241 +-
banyand/trace/metadata_test.go | 7 +-
banyand/trace/metrics.go | 93 +-
banyand/trace/pipeline_chain.go | 235 +
banyand/trace/pipeline_chain_filter_test.go | 604 ++
banyand/trace/pipeline_chain_test.go | 291 +
banyand/trace/pipeline_loader.go | 240 +
...constants.go => pipeline_loader_norace_test.go} | 13 +-
.../{constants.go => pipeline_loader_race_test.go} | 13 +-
banyand/trace/pipeline_loader_test.go | 335 +
banyand/trace/pipeline_metrics.go | 127 +
banyand/trace/pipeline_metrics_test.go | 433 +
banyand/trace/pipeline_registry.go | 169 +
banyand/trace/pipeline_registry_test.go | 177 +
banyand/trace/pipeline_watch_test.go | 493 ++
banyand/trace/plugin_telemetry.go | 712 ++
banyand/trace/plugin_telemetry_integration_test.go | 550 ++
banyand/trace/plugin_telemetry_realso_test.go | 746 ++
banyand/trace/plugin_telemetry_test.go | 378 +
banyand/trace/query_vectorized.go | 10 +-
banyand/trace/streaming_pipeline_test.go | 4 +-
banyand/trace/svc_liaison.go | 4 +
banyand/trace/svc_standalone.go | 15 +-
banyand/trace/testmain_test.go | 46 +
banyand/trace/trace.go | 7 +
banyand/trace/trace_suite_test.go | 2 +-
banyand/trace/tstable.go | 3 +
banyand/trace/vectorized_parity_test.go | 57 +-
banyand/trace/write_data.go | 47 +-
banyand/trace/write_data_busy_test.go | 67 +
bydbctl/internal/cmd/measure_test.go | 5 +-
bydbctl/internal/cmd/property_test.go | 31 +-
bydbctl/internal/cmd/stream_test.go | 5 +-
bydbctl/internal/cmd/topn_test.go | 7 +-
bydbctl/internal/cmd/trace_test.go | 5 +-
canopy/.env.example | 32 +
canopy/.gitignore | 9 +
{ui => canopy}/.licenserc.yaml | 43 +-
canopy/.prettierignore | 5 +
scripts/build/lint.mk => canopy/Makefile | 39 +-
canopy/README.md | 40 +
canopy/e2e/handoff-server.cjs | 69 +
.../vue-query.js => canopy/e2e/m0-boot.spec.ts | 35 +-
canopy/e2e/m1-bff.spec.ts | 59 +
canopy/e2e/m2-login.spec.ts | 84 +
canopy/e2e/m2-shell.spec.ts | 96 +
canopy/e2e/m3-crud.spec.ts | 1195 +++
canopy/e2e/m3-handoff.spec.ts | 71 +
canopy/e2e/m3-indexrule-ui.spec.ts | 454 +
canopy/e2e/m3-indexrule.spec.ts | 288 +
canopy/e2e/m3-lifecycle.spec.ts | 444 +
canopy/e2e/m3-metadata.spec.ts | 127 +
canopy/e2e/playwright.config.ts | 59 +
.../e2e/playwright.handoff.config.ts | 35 +-
.../e2e/playwright.reuse.config.ts | 30 +-
canopy/e2e/screenshots/m2-home-groups.png | Bin 0 -> 82209 bytes
canopy/e2e/screenshots/m2-login-error.png | Bin 0 -> 144161 bytes
canopy/e2e/screenshots/m2-login.png | Bin 0 -> 164477 bytes
canopy/e2e/screenshots/m2-shell.png | Bin 0 -> 78578 bytes
canopy/e2e/screenshots/m3-crud-group-created.png | Bin 0 -> 618882 bytes
canopy/e2e/screenshots/m3-crud-group-error.png | Bin 0 -> 634213 bytes
canopy/e2e/screenshots/m3-crud-measure-detail.png | Bin 0 -> 331924 bytes
canopy/e2e/screenshots/m3-crud-stream-detail.png | Bin 0 -> 389770 bytes
canopy/e2e/screenshots/m3-crud-trace-detail.png | Bin 0 -> 142232 bytes
.../m3-indexrule-ui-binding-created.png | Bin 0 -> 391639 bytes
canopy/e2e/screenshots/m3-indexrule-ui-created.png | Bin 0 -> 377787 bytes
canopy/e2e/screenshots/m3-lifecycle-created.png | Bin 0 -> 622010 bytes
canopy/e2e/screenshots/m3-measures-overview.png | Bin 0 -> 53573 bytes
canopy/e2e/setup/global-setup.ts | 106 +
canopy/e2e/setup/global-teardown.ts | 77 +
canopy/package-lock.json | 8752 ++++++++++++++++++++
canopy/package.json | 28 +
canopy/scripts/dev-bff.mjs | 130 +
canopy/scripts/seed-m3-review.mjs | 162 +
.../server/eslint.config.mjs | 37 +-
canopy/server/package.json | 38 +
canopy/server/src/config.ts | 104 +
canopy/server/src/index.ts | 68 +
.../main.css => canopy/server/src/lib/role.ts | 39 +-
canopy/server/src/lib/ssrf.ts | 103 +
canopy/server/src/plugins/proxy.ts | 183 +
.../server/src/plugins/session.ts | 38 +-
canopy/server/src/plugins/static.ts | 58 +
canopy/server/src/routes/auth.ts | 122 +
canopy/server/test/bff.test.ts | 490 ++
canopy/server/test/boot-guard.test.ts | 73 +
canopy/server/test/live-smoke.test.ts | 82 +
canopy/server/test/ssrf.test.ts | 61 +
canopy/server/tsconfig.json | 14 +
canopy/shared/package.json | 21 +
canopy/shared/src/api-dto.ts | 153 +
.../constants.js => canopy/shared/src/index.ts | 5 +-
canopy/shared/src/query.ts | 70 +
canopy/shared/src/schema.ts | 193 +
canopy/shared/tsconfig.json | 8 +
mcp/tsconfig.json => canopy/tsconfig.base.json | 11 +-
canopy/web/eslint.config.mjs | 51 +
canopy/web/index.html | 33 +
canopy/web/package.json | 41 +
canopy/web/src/App.tsx | 465 ++
canopy/web/src/auth/AuthContext.tsx | 64 +
canopy/web/src/components/CanopyMark.tsx | 53 +
canopy/web/src/components/Combobox.test.tsx | 77 +
canopy/web/src/components/Combobox.tsx | 422 +
canopy/web/src/components/GroupForm.test.tsx | 88 +
canopy/web/src/components/GroupForm.tsx | 556 ++
.../src/components/IndexRuleBindingForm.test.tsx | 276 +
canopy/web/src/components/IndexRuleBindingForm.tsx | 413 +
canopy/web/src/components/IndexRuleForm.test.tsx | 220 +
canopy/web/src/components/IndexRuleForm.tsx | 436 +
canopy/web/src/components/MeasureForm.test.tsx | 131 +
canopy/web/src/components/MeasureForm.tsx | 501 ++
canopy/web/src/components/Pager.test.tsx | 67 +
canopy/web/src/components/Pager.tsx | 103 +
.../web/src/components/Shell.tsx | 45 +-
canopy/web/src/components/Sidebar.tsx | 452 +
canopy/web/src/components/StreamForm.test.tsx | 111 +
canopy/web/src/components/StreamForm.tsx | 381 +
canopy/web/src/components/SubjectOverflow.tsx | 148 +
canopy/web/src/components/TraceForm.test.tsx | 154 +
canopy/web/src/components/TraceForm.tsx | 323 +
canopy/web/src/components/icons.tsx | 273 +
canopy/web/src/components/modal-utils.test.tsx | 137 +
canopy/web/src/components/modal-utils.ts | 137 +
canopy/web/src/data/DataSource.ts | 77 +
canopy/web/src/data/api.test.ts | 167 +
canopy/web/src/data/api.ts | 323 +
.../web/src/data/fixtures/.gitkeep | 0
.../dashboard.js => canopy/web/src/main.tsx | 17 +-
canopy/web/src/pages/GroupPage.tsx | 391 +
canopy/web/src/pages/HomePage.tsx | 100 +
canopy/web/src/pages/IndexPage.tsx | 594 ++
canopy/web/src/pages/LoginPage.test.tsx | 151 +
canopy/web/src/pages/LoginPage.tsx | 314 +
canopy/web/src/pages/ResourceDetailPage.tsx | 519 ++
canopy/web/src/pages/TypeOverviewPage.tsx | 118 +
canopy/web/src/pages/meta-utils.ts | 121 +
canopy/web/src/styles/canopy.css | 2454 ++++++
.../constants.js => canopy/web/src/test-setup.ts | 4 +-
canopy/web/src/validation.test.ts | 355 +
canopy/web/src/validation.ts | 354 +
canopy/web/tsconfig.json | 14 +
canopy/web/vite.config.ts | 54 +
dist/LICENSE | 147 +-
...e-github.com-aws-aws-sdk-go-v2-internal-ini.txt | 202 -
.../license-github.com-bits-and-blooms-bitset.txt | 2 +-
.../license-github.com-golang-jwt-jwt-v5.txt | 9 -
...otify.txt => license-github.com-zeebo-xxh3.txt} | 15 +-
...-go-ini-ini.txt => license-gopkg.in-ini.v1.txt} | 0
docs/api-reference.md | 482 ++
docs/design/post-trace-pipeline.md | 666 ++
docs/installation/binaries.md | 27 +
docs/menu.yml | 2 +
docs/operation/configuration.md | 3 +
docs/operation/lifecycle.md | 1 +
docs/operation/mcp/build.md | 16 +
docs/operation/mcp/plugin.md | 123 +
fodc/agent/internal/cmd/root.go | 64 +-
fodc/agent/internal/cmd/root_test.go | 39 +
fodc/agent/internal/flightrecorder/datasource.go | 19 +
.../internal/flightrecorder/flightrecorder.go | 45 +
.../internal/flightrecorder/flightrecorder_test.go | 52 +
fodc/agent/internal/pressureprofiler/fetch.go | 59 +
fodc/agent/internal/pressureprofiler/profiler.go | 239 +
.../internal/pressureprofiler/profiler_test.go | 206 +
fodc/agent/internal/pressureprofiler/storage.go | 258 +
.../internal/pressureprofiler/storage_test.go | 128 +
fodc/agent/internal/proxy/client.go | 263 +
.../internal/proxy/client_blocking_send_test.go | 4 +-
fodc/agent/internal/proxy/client_test.go | 99 +-
fodc/agent/internal/watchdog/watchdog.go | 18 +
fodc/agent/testhelper/flightrecorder.go | 3 +
fodc/agent/testhelper/pressureprofiler.go | 110 +
fodc/internal/pprofcapture/pprofcapture.go | 44 +
fodc/proxy/cmd/proxy/main.go | 9 +-
fodc/proxy/internal/api/server.go | 136 +
fodc/proxy/internal/api/server_test.go | 18 +-
fodc/proxy/internal/grpc/pressure_list_test.go | 130 +
fodc/proxy/internal/grpc/server_test.go | 8 +-
fodc/proxy/internal/grpc/service.go | 406 +-
fodc/proxy/internal/grpc/service_test.go | 4 +-
.../integration/agent_reconnection_test.go | 4 +-
.../agent_registration_metrics_flow_test.go | 4 +-
.../cluster_topology_integration_test.go | 4 +-
fodc/proxy/internal/integration/diagnostic_test.go | 4 +-
.../internal/integration/failure_scenarios_test.go | 6 +-
.../integration/full_proxy_workflow_test.go | 4 +-
.../high_availability_scalability_test.go | 4 +-
.../integration/lifecycle_integration_test.go | 4 +-
.../integration/metrics_time_window_test.go | 4 +-
.../integration/multiple_agents_roles_test.go | 4 +-
.../internal/integration/pressure_profile_test.go | 246 +
.../integration/prometheus_integration_test.go | 4 +-
fodc/proxy/internal/pressure/aggregator.go | 269 +
fodc/proxy/internal/pressure/aggregator_test.go | 99 +
go.mod | 145 +-
go.sum | 318 +-
mcp/.gitignore | 1 +
mcp/.licenserc.yaml | 2 +
mcp/Makefile | 23 +-
mcp/package-lock.json | 1410 +++-
mcp/package.json | 8 +-
mcp/src/index.ts | 2 +-
mcp/src/query/parse-validator.test.ts | 79 +
mcp/src/query/parse-validator.ts | 123 +
mcp/src/query/validation.test.ts | 62 +
mcp/src/query/validation.ts | 2 +-
mcp/src/server/mcp.ts | 48 +
mcp/tools/build-validator.js | 44 +
mcp/tools/bydbql-parse/main.go | 96 +
mcp/tools/bydbql-parse/main_test.go | 114 +
mcp/tools/bydbql-parse/testdata/invalid.txt | 22 +
mcp/tools/bydbql-parse/testdata/valid.txt | 28 +
mcp/tools/check-plugin-manifests.js | 88 +
mcp/tsconfig.json | 2 +-
pkg/cmdsetup/data.go | 2 +-
pkg/cmdsetup/standalone.go | 2 +-
pkg/encoding/array.go | 80 +-
pkg/encoding/{array.go => vararray/vararray.go} | 9 +-
pkg/pb/v1/value.go | 27 +-
.../pb/v1/valuetype/valuetype.go | 23 +-
.../sdk/_example/segment-tail-sampler/README.md | 67 +
.../sdk/_example/segment-tail-sampler/main.go | 321 +
pkg/pipeline/sdk/decode.go | 129 +
pkg/pipeline/sdk/importgraph_test.go | 87 +
pkg/pipeline/sdk/sdk.go | 210 +
pkg/pipeline/sdk/sdk_test.go | 164 +
pkg/pipeline/sdk/telemetry.go | 104 +
pkg/query/logical/trace/trace_frame.go | 325 +
pkg/query/logical/trace/trace_frame_test.go | 130 +
pkg/query/logical/trace/trace_plan_distributed.go | 263 +-
.../logical/trace/trace_plan_distributed_test.go | 140 +-
pkg/test/eventually.go | 151 +
pkg/test/eventually_test.go | 62 +
pkg/test/flags/flags.go | 31 +
pkg/test/setup/external.go | 418 +
scripts/release.sh | 33 +-
skills/bydbql/SKILL.md | 39 +
skills/bydbql/references/examples.md | 30 +
skills/bydbql/references/safety.md | 18 +
skills/bydbql/references/syntax.md | 374 +
test/cases/lifecycle/lifecycle.go | 25 +-
test/cases/lifecycle/orphan.go | 5 +-
test/cases/measure/measure.go | 3 +-
test/cases/property/data/data.go | 5 +
test/cases/property/property.go | 3 +-
test/cases/schema/clamp.go | 3 +-
test/cases/schema/shape_break.go | 7 +-
test/cases/schema/tag_family_move.go | 9 +-
test/cases/stream/stream.go | 3 +-
test/cases/trace/cmd/generate/seed.go | 4 +-
.../cases/trace/data/testdata/sw_mixed_traces.json | 4 +-
...duration_asc_limit2_offset1_proj_explicit_1.yml | 38 +-
...t_order_duration_asc_limit5_proj_explicit_6.yml | 78 +-
...en_feat_order_duration_desc_proj_explicit_3.yml | 4 +-
...ter_state_eq_limit5_offset1_proj_explicit_8.yml | 4 +-
test/cases/trace/data/want/gen_leaf_eq_state.yml | 4 +-
.../cases/trace/data/want/gen_leaf_ge_duration.yml | 4 +-
test/cases/trace/data/want/gen_leaf_ge_state.yml | 4 +-
.../cases/trace/data/want/gen_leaf_gt_duration.yml | 4 +-
test/cases/trace/data/want/gen_leaf_gt_state.yml | 4 +-
.../trace/data/want/gen_leaf_in_service_id.yml | 2 +-
.../cases/trace/data/want/gen_leaf_in_trace_id.yml | 2 +-
.../cases/trace/data/want/gen_leaf_le_duration.yml | 4 +-
test/cases/trace/data/want/gen_leaf_le_state.yml | 4 +-
.../cases/trace/data/want/gen_leaf_lt_duration.yml | 4 +-
test/cases/trace/data/want/gen_leaf_lt_state.yml | 4 +-
.../trace/data/want/gen_leaf_ne_service_id.yml | 4 +-
test/cases/trace/data/want/gen_leaf_ne_state.yml | 4 +-
.../cases/trace/data/want/gen_leaf_ne_trace_id.yml | 4 +-
.../trace/data/want/gen_leaf_not_in_service_id.yml | 4 +-
.../trace/data/want/gen_leaf_not_in_trace_id.yml | 4 +-
.../trace/data/want/gen_tree_depth5_deep_and.yml | 4 +-
test/cases/trace/trace.go | 3 +-
test/cases/tracepipeline/data/data.go | 379 +
.../data/input/t_drop_1.ql} | 5 +-
.../data/input/t_drop_1.yml} | 7 +-
.../data/input/t_drop_2.ql} | 5 +-
.../data/input/t_drop_2.yml} | 7 +-
.../data/input/t_keep_boundary.ql} | 5 +-
.../data/input/t_keep_boundary.yml} | 7 +-
.../data/input/t_keep_errfast.ql} | 5 +-
.../data/input/t_keep_errfast.yml} | 7 +-
.../data/input/t_keep_errslow.ql} | 5 +-
.../data/input/t_keep_errslow.yml} | 7 +-
.../data/input/t_keep_highlat.ql} | 5 +-
.../data/input/t_keep_highlat.yml} | 7 +-
.../data/input/t_keep_nostatus.ql} | 5 +-
.../data/input/t_keep_nostatus.yml} | 7 +-
.../data/testdata/batch1.json} | 89 +-
test/cases/tracepipeline/data/testdata/batch2.json | 90 +
.../data/want/t_drop_1.yml} | 15 +-
.../data/want/t_drop_2.yml} | 15 +-
.../data/want/t_keep_boundary.yml} | 15 +-
.../data/want/t_keep_errfast.yml} | 15 +-
.../data/want/t_keep_errslow.yml} | 15 +-
.../data/want/t_keep_highlat.yml} | 15 +-
.../data/want/t_keep_nostatus.yml} | 15 +-
test/cases/tracepipeline/ops.go | 177 +
.../trace => test/cases/tracepipeline}/schema.go | 72 +-
.../testdata/groups/test-trace-pipeline.json | 4 +-
.../testdata/index_rule_bindings/filter.json | 10 +-
.../testdata/index_rules/filter-duration.json | 9 +-
.../tracepipeline/testdata/traces/filter.json | 24 +-
test/cases/tracepipeline/tracepipeline.go | 549 ++
.../cases/fodc-pressure/banyandb-cluster.yaml | 98 +
test/e2e-v2/cases/fodc-pressure/check-pressure.sh | 123 +
test/e2e-v2/cases/fodc-pressure/e2e.yaml | 68 +
.../expected/pressure-status.yml} | 2 +-
test/integration/distributed/pipeline/common.go | 410 +
.../integration/distributed/pipeline}/doc.go | 11 +-
.../distributed/pipeline/dynamic_test.go | 505 ++
.../{inspection => pipeline}/suite_test.go | 8 +-
test/integration/handoff/handoff_suite_test.go | 6 +-
.../replication/measure_normal_replication_test.go | 3 +-
test/integration/replication/replication_test.go | 3 +-
.../replication/stream_replication_test.go | 3 +-
.../replication/trace_replication_test.go | 3 +-
test/integration/standalone/other/measure_test.go | 3 +-
test/integration/standalone/other/tls_test.go | 7 +-
test/integration/standalone/pipeline/common.go | 304 +
.../integration/standalone/pipeline}/doc.go | 11 +-
.../standalone/pipeline/dynamic_test.go | 440 +
test/integration/standalone/pipeline/soak_test.go | 66 +
.../{multi_segments => pipeline}/suite_test.go | 8 +-
test/plugins/_faultysampler/main.go | 159 +
test/plugins/_latencystatussampler/main.go | 185 +
test/plugins/_telemetrysampler/main.go | 128 +
test/plugins/telemetry_smoke_test.go | 171 +
ui/LICENSE | 4 +-
ui/package-lock.json | 16 +-
ui/package.json | 2 +-
469 files changed, 54309 insertions(+), 2163 deletions(-)
create mode 100644 .agents/plugins/marketplace.json
create mode 100644 .claude-plugin/marketplace.json
create mode 100644 .claude-plugin/plugin.json
create mode 100644 .codex-plugin/plugin.json
create mode 100644 .github/workflows/canopy.yml
create mode 100644 .mcp.json
create mode 100644 api/data/trace_frame.go
create mode 100644 api/data/trace_frame_test.go
create mode 100644 api/proto/banyandb/pipeline/v1/trace_pipeline.proto
create mode 100644 banyand/backup/lifecycle/retry.go
create mode 100644 banyand/backup/lifecycle/retry_test.go
create mode 100644 banyand/measure/export_test.go
delete mode 100644 banyand/measure/migration_copy_test.go
create mode 100644 banyand/measure/migration_indexmode_copy.go
create mode 100644 banyand/measure/migration_indexmode_copy_test.go
create mode 100644 banyand/measure/migration_indexmode_e2e_test.go
create mode 100644 banyand/measure/migration_oom_throttling_test.go
create mode 100644 banyand/measure/write_data_busy_test.go
create mode 100644 banyand/protector/wait.go
create mode 100644 banyand/protector/wait_test.go
copy pkg/query/vectorized/trace/sort_key_test.go =>
banyand/queue/queue_test.go (62%)
create mode 100644 banyand/stream/write_data_busy_test.go
create mode 100644 banyand/trace/pipeline_chain.go
create mode 100644 banyand/trace/pipeline_chain_filter_test.go
create mode 100644 banyand/trace/pipeline_chain_test.go
create mode 100644 banyand/trace/pipeline_loader.go
copy banyand/trace/{constants.go => pipeline_loader_norace_test.go} (74%)
copy banyand/trace/{constants.go => pipeline_loader_race_test.go} (74%)
create mode 100644 banyand/trace/pipeline_loader_test.go
create mode 100644 banyand/trace/pipeline_metrics.go
create mode 100644 banyand/trace/pipeline_metrics_test.go
create mode 100644 banyand/trace/pipeline_registry.go
create mode 100644 banyand/trace/pipeline_registry_test.go
create mode 100644 banyand/trace/pipeline_watch_test.go
create mode 100644 banyand/trace/plugin_telemetry.go
create mode 100644 banyand/trace/plugin_telemetry_integration_test.go
create mode 100644 banyand/trace/plugin_telemetry_realso_test.go
create mode 100644 banyand/trace/plugin_telemetry_test.go
create mode 100644 banyand/trace/testmain_test.go
create mode 100644 banyand/trace/write_data_busy_test.go
create mode 100644 canopy/.env.example
create mode 100644 canopy/.gitignore
copy {ui => canopy}/.licenserc.yaml (72%)
create mode 100644 canopy/.prettierignore
copy scripts/build/lint.mk => canopy/Makefile (58%)
create mode 100644 canopy/README.md
create mode 100644 canopy/e2e/handoff-server.cjs
copy ui/src/plugins/vue-query.js => canopy/e2e/m0-boot.spec.ts (55%)
create mode 100644 canopy/e2e/m1-bff.spec.ts
create mode 100644 canopy/e2e/m2-login.spec.ts
create mode 100644 canopy/e2e/m2-shell.spec.ts
create mode 100644 canopy/e2e/m3-crud.spec.ts
create mode 100644 canopy/e2e/m3-handoff.spec.ts
create mode 100644 canopy/e2e/m3-indexrule-ui.spec.ts
create mode 100644 canopy/e2e/m3-indexrule.spec.ts
create mode 100644 canopy/e2e/m3-lifecycle.spec.ts
create mode 100644 canopy/e2e/m3-metadata.spec.ts
create mode 100644 canopy/e2e/playwright.config.ts
copy ui/src/stores/header.js => canopy/e2e/playwright.handoff.config.ts (54%)
copy ui/src/plugins/vue-query.js => canopy/e2e/playwright.reuse.config.ts (66%)
create mode 100644 canopy/e2e/screenshots/m2-home-groups.png
create mode 100644 canopy/e2e/screenshots/m2-login-error.png
create mode 100644 canopy/e2e/screenshots/m2-login.png
create mode 100644 canopy/e2e/screenshots/m2-shell.png
create mode 100644 canopy/e2e/screenshots/m3-crud-group-created.png
create mode 100644 canopy/e2e/screenshots/m3-crud-group-error.png
create mode 100644 canopy/e2e/screenshots/m3-crud-measure-detail.png
create mode 100644 canopy/e2e/screenshots/m3-crud-stream-detail.png
create mode 100644 canopy/e2e/screenshots/m3-crud-trace-detail.png
create mode 100644 canopy/e2e/screenshots/m3-indexrule-ui-binding-created.png
create mode 100644 canopy/e2e/screenshots/m3-indexrule-ui-created.png
create mode 100644 canopy/e2e/screenshots/m3-lifecycle-created.png
create mode 100644 canopy/e2e/screenshots/m3-measures-overview.png
create mode 100644 canopy/e2e/setup/global-setup.ts
create mode 100644 canopy/e2e/setup/global-teardown.ts
create mode 100644 canopy/package-lock.json
create mode 100644 canopy/package.json
create mode 100644 canopy/scripts/dev-bff.mjs
create mode 100644 canopy/scripts/seed-m3-review.mjs
copy ui/src/plugins/vue-query.js => canopy/server/eslint.config.mjs (54%)
create mode 100644 canopy/server/package.json
create mode 100644 canopy/server/src/config.ts
create mode 100644 canopy/server/src/index.ts
copy ui/src/assets/main.css => canopy/server/src/lib/role.ts (59%)
create mode 100644 canopy/server/src/lib/ssrf.ts
create mode 100644 canopy/server/src/plugins/proxy.ts
copy ui/src/plugins/vue-query.js => canopy/server/src/plugins/session.ts (55%)
create mode 100644 canopy/server/src/plugins/static.ts
create mode 100644 canopy/server/src/routes/auth.ts
create mode 100644 canopy/server/test/bff.test.ts
create mode 100644 canopy/server/test/boot-guard.test.ts
create mode 100644 canopy/server/test/live-smoke.test.ts
create mode 100644 canopy/server/test/ssrf.test.ts
create mode 100644 canopy/server/tsconfig.json
create mode 100644 canopy/shared/package.json
create mode 100644 canopy/shared/src/api-dto.ts
copy ui/src/views/constants.js => canopy/shared/src/index.ts (90%)
create mode 100644 canopy/shared/src/query.ts
create mode 100644 canopy/shared/src/schema.ts
create mode 100644 canopy/shared/tsconfig.json
copy mcp/tsconfig.json => canopy/tsconfig.base.json (53%)
create mode 100644 canopy/web/eslint.config.mjs
create mode 100644 canopy/web/index.html
create mode 100644 canopy/web/package.json
create mode 100644 canopy/web/src/App.tsx
create mode 100644 canopy/web/src/auth/AuthContext.tsx
create mode 100644 canopy/web/src/components/CanopyMark.tsx
create mode 100644 canopy/web/src/components/Combobox.test.tsx
create mode 100644 canopy/web/src/components/Combobox.tsx
create mode 100644 canopy/web/src/components/GroupForm.test.tsx
create mode 100644 canopy/web/src/components/GroupForm.tsx
create mode 100644 canopy/web/src/components/IndexRuleBindingForm.test.tsx
create mode 100644 canopy/web/src/components/IndexRuleBindingForm.tsx
create mode 100644 canopy/web/src/components/IndexRuleForm.test.tsx
create mode 100644 canopy/web/src/components/IndexRuleForm.tsx
create mode 100644 canopy/web/src/components/MeasureForm.test.tsx
create mode 100644 canopy/web/src/components/MeasureForm.tsx
create mode 100644 canopy/web/src/components/Pager.test.tsx
create mode 100644 canopy/web/src/components/Pager.tsx
copy ui/src/assets/main.css => canopy/web/src/components/Shell.tsx (62%)
create mode 100644 canopy/web/src/components/Sidebar.tsx
create mode 100644 canopy/web/src/components/StreamForm.test.tsx
create mode 100644 canopy/web/src/components/StreamForm.tsx
create mode 100644 canopy/web/src/components/SubjectOverflow.tsx
create mode 100644 canopy/web/src/components/TraceForm.test.tsx
create mode 100644 canopy/web/src/components/TraceForm.tsx
create mode 100644 canopy/web/src/components/icons.tsx
create mode 100644 canopy/web/src/components/modal-utils.test.tsx
create mode 100644 canopy/web/src/components/modal-utils.ts
create mode 100644 canopy/web/src/data/DataSource.ts
create mode 100644 canopy/web/src/data/api.test.ts
create mode 100644 canopy/web/src/data/api.ts
copy dist/licenses/ui-licenses/license--vue-devtools-api.txt =>
canopy/web/src/data/fixtures/.gitkeep (100%)
copy ui/src/router/modules/dashboard.js => canopy/web/src/main.tsx (77%)
create mode 100644 canopy/web/src/pages/GroupPage.tsx
create mode 100644 canopy/web/src/pages/HomePage.tsx
create mode 100644 canopy/web/src/pages/IndexPage.tsx
create mode 100644 canopy/web/src/pages/LoginPage.test.tsx
create mode 100644 canopy/web/src/pages/LoginPage.tsx
create mode 100644 canopy/web/src/pages/ResourceDetailPage.tsx
create mode 100644 canopy/web/src/pages/TypeOverviewPage.tsx
create mode 100644 canopy/web/src/pages/meta-utils.ts
create mode 100644 canopy/web/src/styles/canopy.css
copy ui/src/views/constants.js => canopy/web/src/test-setup.ts (92%)
create mode 100644 canopy/web/src/validation.test.ts
create mode 100644 canopy/web/src/validation.ts
create mode 100644 canopy/web/tsconfig.json
create mode 100644 canopy/web/vite.config.ts
delete mode 100644
dist/licenses/license-github.com-aws-aws-sdk-go-v2-internal-ini.txt
delete mode 100644 dist/licenses/license-github.com-golang-jwt-jwt-v5.txt
copy dist/licenses/{license-github.com-fsnotify-fsnotify.txt =>
license-github.com-zeebo-xxh3.txt} (75%)
rename dist/licenses/{license-github.com-go-ini-ini.txt =>
license-gopkg.in-ini.v1.txt} (100%)
create mode 100644 docs/design/post-trace-pipeline.md
create mode 100644 docs/operation/mcp/plugin.md
create mode 100644 fodc/agent/internal/pressureprofiler/fetch.go
create mode 100644 fodc/agent/internal/pressureprofiler/profiler.go
create mode 100644 fodc/agent/internal/pressureprofiler/profiler_test.go
create mode 100644 fodc/agent/internal/pressureprofiler/storage.go
create mode 100644 fodc/agent/internal/pressureprofiler/storage_test.go
create mode 100644 fodc/agent/testhelper/pressureprofiler.go
create mode 100644 fodc/internal/pprofcapture/pprofcapture.go
create mode 100644 fodc/proxy/internal/grpc/pressure_list_test.go
create mode 100644 fodc/proxy/internal/integration/pressure_profile_test.go
create mode 100644 fodc/proxy/internal/pressure/aggregator.go
create mode 100644 fodc/proxy/internal/pressure/aggregator_test.go
create mode 100644 mcp/src/query/parse-validator.test.ts
create mode 100644 mcp/src/query/parse-validator.ts
create mode 100644 mcp/src/query/validation.test.ts
create mode 100644 mcp/tools/build-validator.js
create mode 100644 mcp/tools/bydbql-parse/main.go
create mode 100644 mcp/tools/bydbql-parse/main_test.go
create mode 100644 mcp/tools/bydbql-parse/testdata/invalid.txt
create mode 100644 mcp/tools/bydbql-parse/testdata/valid.txt
create mode 100644 mcp/tools/check-plugin-manifests.js
copy pkg/encoding/{array.go => vararray/vararray.go} (86%)
copy banyand/trace/constants.go => pkg/pb/v1/valuetype/valuetype.go (52%)
create mode 100644 pkg/pipeline/sdk/_example/segment-tail-sampler/README.md
create mode 100644 pkg/pipeline/sdk/_example/segment-tail-sampler/main.go
create mode 100644 pkg/pipeline/sdk/decode.go
create mode 100644 pkg/pipeline/sdk/importgraph_test.go
create mode 100644 pkg/pipeline/sdk/sdk.go
create mode 100644 pkg/pipeline/sdk/sdk_test.go
create mode 100644 pkg/pipeline/sdk/telemetry.go
create mode 100644 pkg/query/logical/trace/trace_frame.go
create mode 100644 pkg/query/logical/trace/trace_frame_test.go
create mode 100644 pkg/test/eventually.go
create mode 100644 pkg/test/eventually_test.go
create mode 100644 pkg/test/setup/external.go
create mode 100644 skills/bydbql/SKILL.md
create mode 100644 skills/bydbql/references/examples.md
create mode 100644 skills/bydbql/references/safety.md
create mode 100644 skills/bydbql/references/syntax.md
create mode 100644 test/cases/tracepipeline/data/data.go
copy test/cases/{measure/data/input/offset_empty.ql =>
tracepipeline/data/input/t_drop_1.ql} (90%)
copy test/cases/{trace/data/input/eq_trace_id.yml =>
tracepipeline/data/input/t_drop_1.yml} (91%)
copy test/cases/{measure/data/input/offset_empty.ql =>
tracepipeline/data/input/t_drop_2.ql} (90%)
copy test/cases/{trace/data/input/eq_trace_id.yml =>
tracepipeline/data/input/t_drop_2.yml} (91%)
copy test/cases/{measure/data/input/offset_empty.ql =>
tracepipeline/data/input/t_keep_boundary.ql} (90%)
copy test/cases/{trace/data/input/eq_trace_id.yml =>
tracepipeline/data/input/t_keep_boundary.yml} (91%)
copy test/cases/{measure/data/input/offset_empty.ql =>
tracepipeline/data/input/t_keep_errfast.ql} (90%)
copy test/cases/{trace/data/input/eq_trace_id.yml =>
tracepipeline/data/input/t_keep_errfast.yml} (91%)
copy test/cases/{measure/data/input/offset_empty.ql =>
tracepipeline/data/input/t_keep_errslow.ql} (90%)
copy test/cases/{trace/data/input/eq_trace_id.yml =>
tracepipeline/data/input/t_keep_errslow.yml} (91%)
copy test/cases/{measure/data/input/offset_empty.ql =>
tracepipeline/data/input/t_keep_highlat.ql} (90%)
copy test/cases/{trace/data/input/eq_trace_id.yml =>
tracepipeline/data/input/t_keep_highlat.yml} (91%)
copy test/cases/{measure/data/input/offset_empty.ql =>
tracepipeline/data/input/t_keep_nostatus.ql} (90%)
copy test/cases/{trace/data/input/eq_trace_id.yml =>
tracepipeline/data/input/t_keep_nostatus.yml} (91%)
copy test/cases/{trace/data/testdata/sw_updated.json =>
tracepipeline/data/testdata/batch1.json} (55%)
create mode 100644 test/cases/tracepipeline/data/testdata/batch2.json
copy test/cases/{stream/data/want/filter_tag.yaml =>
tracepipeline/data/want/t_drop_1.yml} (82%)
copy test/cases/{stream/data/want/filter_tag.yaml =>
tracepipeline/data/want/t_drop_2.yml} (82%)
copy test/cases/{stream/data/want/filter_tag.yaml =>
tracepipeline/data/want/t_keep_boundary.yml} (82%)
copy test/cases/{stream/data/want/filter_tag.yaml =>
tracepipeline/data/want/t_keep_errfast.yml} (82%)
copy test/cases/{stream/data/want/filter_tag.yaml =>
tracepipeline/data/want/t_keep_errslow.yml} (82%)
copy test/cases/{stream/data/want/filter_tag.yaml =>
tracepipeline/data/want/t_keep_highlat.yml} (82%)
copy test/cases/{stream/data/want/filter_tag.yaml =>
tracepipeline/data/want/t_keep_nostatus.yml} (82%)
create mode 100644 test/cases/tracepipeline/ops.go
copy {pkg/test/trace => test/cases/tracepipeline}/schema.go (54%)
copy pkg/test/trace/testdata/groups/test-trace-spec.json =>
test/cases/tracepipeline/testdata/groups/test-trace-pipeline.json (84%)
copy pkg/test/trace/testdata/index_rule_bindings/zipkin.json =>
test/cases/tracepipeline/testdata/index_rule_bindings/filter.json (63%)
copy pkg/test/trace/testdata/index_rules/duration_spec.json =>
test/cases/tracepipeline/testdata/index_rules/filter-duration.json (58%)
copy pkg/test/trace/testdata/traces/sw.json =>
test/cases/tracepipeline/testdata/traces/filter.json (71%)
create mode 100644 test/cases/tracepipeline/tracepipeline.go
create mode 100644 test/e2e-v2/cases/fodc-pressure/banyandb-cluster.yaml
create mode 100755 test/e2e-v2/cases/fodc-pressure/check-pressure.sh
create mode 100644 test/e2e-v2/cases/fodc-pressure/e2e.yaml
copy test/e2e-v2/cases/{zipkin/expected/remote-service-name.yml =>
fodc-pressure/expected/pressure-status.yml} (98%)
create mode 100644 test/integration/distributed/pipeline/common.go
copy {api/common => test/integration/distributed/pipeline}/doc.go (61%)
create mode 100644 test/integration/distributed/pipeline/dynamic_test.go
copy test/integration/distributed/{inspection => pipeline}/suite_test.go (84%)
create mode 100644 test/integration/standalone/pipeline/common.go
copy {api/common => test/integration/standalone/pipeline}/doc.go (64%)
create mode 100644 test/integration/standalone/pipeline/dynamic_test.go
create mode 100644 test/integration/standalone/pipeline/soak_test.go
copy test/integration/standalone/{multi_segments => pipeline}/suite_test.go
(86%)
create mode 100644 test/plugins/_faultysampler/main.go
create mode 100644 test/plugins/_latencystatussampler/main.go
create mode 100644 test/plugins/_telemetrysampler/main.go
create mode 100644 test/plugins/telemetry_smoke_test.go