Skip to content

Commit ab39c57

Browse files
committed
fix: check if metrics are initilized in sendCommand
1 parent f67fefb commit ab39c57

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

packages/client/lib/client/index.ts

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,20 +1097,28 @@ export default class RedisClient<
10971097
};
10981098

10991099
const promise = this._self.#queue.addCommand<T>(args, opts);
1100-
OTelMetrics.instance.recordPendingRequests(1, clientAttributes);
11011100

1102-
const trackedPromise = promise.then((reply) => {
1103-
recordOperation();
1104-
OTelMetrics.instance.recordPendingRequests(-1, clientAttributes);
1105-
return reply;
1106-
}).catch((err) => {
1107-
recordOperation(err);
1108-
OTelMetrics.instance.recordPendingRequests(-1, clientAttributes);
1109-
throw err;
1110-
});
1111-
1112-
this._self.#scheduleWrite();
1113-
return trackedPromise;
1101+
if (OTelMetrics.isInitialized()) {
1102+
OTelMetrics.instance.recordPendingRequests(1, clientAttributes);
1103+
1104+
const trackedPromise = promise
1105+
.then((reply) => {
1106+
recordOperation();
1107+
OTelMetrics.instance.recordPendingRequests(-1, clientAttributes);
1108+
return reply;
1109+
})
1110+
.catch((err) => {
1111+
recordOperation(err);
1112+
OTelMetrics.instance.recordPendingRequests(-1, clientAttributes);
1113+
throw err;
1114+
});
1115+
1116+
this._self.#scheduleWrite();
1117+
return trackedPromise;
1118+
} else {
1119+
this._self.#scheduleWrite();
1120+
return promise;
1121+
}
11141122
}
11151123

11161124
async SELECT(db: number): Promise<void> {

0 commit comments

Comments
 (0)