The GitHub Actions job "CodeSpell Check" on 
rocketmq-clients.git/fix/nodejs-client-defect-fixes has failed.
Run started by GitHub user zhaohai666 (triggered by zhaohai666).

Head commit for run:
4a99496bfa2bd5967e3630dec8413d9ea80548ce / zhaohaihzb <[email protected]>
feat(nodejs): add metrics export pipeline, custom IpNameResolver and 
consumption rate limiting

Close the three remaining gaps between the Node.js client and the Java client.

1. Metrics export pipeline (OTLP/gRPC), mirroring
   org.apache.rocketmq.client.java.metrics:
   - Add src/metrics/*: Metric, ClientMeter, ClientMeterManager, HistogramEnum,
     GaugeEnum, GaugeObserver, EmptyGaugeObserver, MetricLabels, 
InvocationStatus.
   - Rebuild an OpenTelemetry SdkMeterProvider on every settings command,
     exporting the four RocketMQ histograms (send cost time, delivery latency,
     await time, process time) using the Java client's explicit bucket
     boundaries, plus the consumer cached-message gauges. Each export request is
     signed through the client's MQv2-HMAC-SHA1 metadata provider, which is the
     Node equivalent of the Java AuthInterceptor.
   - Add MessageMeterInterceptor, recording histograms at the SEND / RECEIVE /
     CONSUME hook points via the existing interceptor chain.
   - Add PushConsumerGaugeObserver, aggregating cached messages/bytes per topic.
   - Wire the manager into BaseClient (created in the constructor, reset from
     onSettingsCommand, shut down on client shutdown).

2. Custom ip: gRPC NameResolver for endpoints targets 
(src/route/IpNameResolver.ts).

3. Consumer-side rate limiting via a Semaphore (src/util/Semaphore.ts) applied
   to ProcessQueue, providing the backpressure that Java gets from
   consumeConcurrentlyMax.

Verification: 66 offline tests pass (defect-fixes, metrics, IpNameResolver,
ProcessQueue, Semaphore); tsc is clean for both the prod and the test config;
eslint reports no errors.

Report URL: https://github.com/apache/rocketmq-clients/actions/runs/34434216507

With regards,
GitHub Actions via GitBox

Reply via email to