CloudWatch: Fix logs query requestId to prevent setting undefined-logs as a requestId (#109930)

This commit is contained in:
Kevin Yu 2025-08-20 09:41:17 -07:00 committed by GitHub
parent 5bbb7c1e2a
commit 629cb1dee0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 1 deletions

View File

@ -76,6 +76,17 @@ describe('CloudWatchLogsQueryRunner', () => {
});
});
it('does not append -logs to the requestId if requestId is not provided', async () => {
const { runner, queryMock } = setupMockedLogsQueryRunner();
const request = {
...LogsRequestMock,
};
await expect(runner.handleLogQueries(LogsRequestMock.targets, request, queryMock)).toEmitValuesWith(() => {
expect(queryMock.mock.calls[0][0].requestId).toEqual('');
});
});
it('should request to start each query and then request to get the query results', async () => {
const { runner } = setupMockedLogsQueryRunner();

View File

@ -415,12 +415,14 @@ export class CloudWatchLogsQueryRunner extends CloudWatchRequest {
options?: DataQueryRequest<CloudWatchQuery>
): Observable<DataQueryResponse> {
const range = options?.range || getDefaultTimeRange();
// append -logs to prevent requestId from matching metric queries from the same panel
const requestId = options?.requestId ? `${options?.requestId}-logs` : '';
const requestParams: DataQueryRequest<CloudWatchLogsQuery> = {
...options,
range,
skipQueryCache: true,
requestId: options?.requestId + '-logs' || '', // adding -logs to prevent requestId from matching metric queries from the same panel
requestId,
interval: options?.interval || '', // dummy
intervalMs: options?.intervalMs || 1, // dummy
scopedVars: options?.scopedVars || {}, // dummy