Usage Insights: Fix usage insight errors being logged as [object Object] (#93502)

* join error strings instead of raw errors

* add unit test
This commit is contained in:
Michael Mandrus
2025-01-06 16:25:05 -05:00
committed by GitHub
parent cca9b0d2d3
commit 739b7716b1
2 changed files with 25 additions and 1 deletions
@@ -218,6 +218,30 @@ describe('emitDataRequestEvent', () => {
emitDataRequestEvent(datasource)(data);
expect(reportMetaAnalytics).not.toBeCalled();
});
it('Should not report errors when there are none', () => {
const data = getTestData({
panelId: 2,
});
emitDataRequestEvent(datasource)(data);
expect(reportMetaAnalytics).toBeCalledTimes(1);
expect(reportMetaAnalytics).toHaveBeenCalledWith(expect.not.objectContaining({ error: expect.any(String) }));
});
it('Should report errors if they exist', () => {
const data = getTestData(
{
panelId: 2,
},
undefined,
[{ message: 'message A' }, { message: 'message B' }]
);
emitDataRequestEvent(datasource)(data);
expect(reportMetaAnalytics).toBeCalledTimes(1);
expect(reportMetaAnalytics).toHaveBeenCalledWith(expect.objectContaining({ error: 'message A, message B' }));
});
});
// Previously we filtered out Explore and Correlations events due to too many errors being generated while a user is building a query
@@ -77,7 +77,7 @@ export function emitDataRequestEvent(datasource: DataSourceApi) {
function enrichWithErrorData(eventData: DataRequestEventPayload, data: PanelData) {
if (data.errors?.length) {
eventData.error = data.errors.join(', ');
eventData.error = data.errors.map((e) => e.message).join(', ');
} else if (data.error) {
eventData.error = data.error.message;
}