zqr10159 opened a new pull request, #4195:
URL: https://github.com/apache/hertzbeat/pull/4195

   ## Summary
   
   This change adds an entity-free three-signal observability transition to the 
existing Angular frontend on top of `apache/master`.
   
   - Accept OTLP Metrics, Logs, and Traces over HTTP/JSON, HTTP/Protobuf, and 
gRPC.
   - Store and query all three signals through GreptimeDB.
   - Add Angular workbenches for Metrics, Logs, and Traces with shared time 
controls and cross-signal context handoff.
   - Replace the separate log stream navigation entry with an in-page 
Query/Live switch while keeping legacy log routes compatible.
   - Add a simple OTLP onboarding form that generates Collector, Java Agent, 
environment, and curl configurations and verifies each signal independently.
   
   ## Scope and compatibility
   
   - The transition deliberately does not introduce Entity, Workspace, 
Topology, or the Next.js frontend.
   - Existing Angular monitoring pages remain unchanged; OTLP Metrics use the 
new `/metrics/manage` workbench.
   - Existing `/log/*` routes remain compatible.
   - GreptimeDB is a release prerequisite for the three-signal path.
   - Cross-signal navigation preserves time range, service/resource attributes, 
trace/span identifiers, environment, and operation context.
   
   ## Backend and reliability
   
   - Adds entity-free Metrics and Trace query contracts plus OTLP 
resource-aware Log filters.
   - Adds Greptime trace schema and log pipeline initialization with explicit 
startup failure when storage is unavailable.
   - Reuses managed HertzBeat access tokens for HTTP and gRPC bearer 
authentication.
   - Separates Greptime query, write, and initialization clients with typed 
timeouts.
   - Adds bounded workloads and fast rejection with retryable `429`/`503` 
responses.
   - Cancels stale Angular queries through debounced `switchMap` flows.
   - Returns HTTP `400` for invalid PromQL and resource filter expressions.
   - Uses typed Trace span-event contracts and calculates trace duration across 
the complete span coverage.
   
   ## Angular experience
   
   - Adds one shared signal time rail with relative presets, absolute ranges, 
previous/next window movement, manual refresh, and optional auto-refresh.
   - Adds explicit Metrics / Logs / Traces navigation in each workbench.
   - Uses flat operator workbenches instead of nested statistics cards.
   - Metrics provides PromQL autocomplete, trend, series, and samples.
   - Logs provides typed severity filters, advanced resource expressions, 
trend, paginated results, details, and live mode.
   - Traces provides service, operation, environment, duration, and error 
filters plus a span waterfall, structured events, attributes, and log/metric 
handoffs.
   - Keeps all localized copy in the existing Angular i18n resources.
   
   ## Validation
   
   - 41 focused backend tests passed across common-core, warehouse, log, and 
manager.
   - 21 focused Angular interaction tests passed in ChromeHeadless.
   - `./mvnw -pl hertzbeat-startup -am -DskipTests package` passed across the 
24-module reactor.
   - Angular production build passed.
   - Full Angular TypeScript lint and focused LESS style checks passed.
   - Locale JSON parsing, hardcoded-CJK scan, and `git diff --check` passed.
   - Real GreptimeDB smoke validation confirmed non-empty Metrics, Logs, and 
Traces; a correlated trace contained 6 spans, 11 events, 1 error, and 9 
matching logs.
   - Authentication and invalid-query smoke checks returned HTTP `401` and 
`400` respectively.
   - Continuous local OTLP writes recovered automatically after backend 
restarts.
   
   ## Known risk
   
   The Angular production build retains the existing initial bundle budget 
warning: 3.12 MB versus the configured 2.00 MB warning threshold. The build 
succeeds, but bundle reduction remains follow-up work.
   
   AI assistance: used for draft implementation and test iteration.
   Human validation: the maintainer reviewed the production Angular pages 
throughout implementation; final Maven, Angular, ChromeHeadless, lint, i18n, 
CJK, diff, and real GreptimeDB/API checks passed.
   Risk notes: GreptimeDB is required for the new three-signal path; Entity, 
Workspace, Topology, alert integration, saved views, and Next.js are 
intentionally out of scope.
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to