Skip to content

Commit 77a7bef

Browse files
authored
fix: suppress synthetic observability alert (#25)
1 parent 5629adf commit 77a7bef

3 files changed

Lines changed: 33 additions & 0 deletions

File tree

‎src/lib/observability.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ export function initializeObservability(): void {
101101
Sentry.init({
102102
dsn: sentryDsn,
103103
environment: import.meta.env.MODE,
104+
ignoreErrors: [/^Synthetic observability verification$/],
104105
sendDefaultPii: false,
105106
beforeBreadcrumb: filterObservabilityBreadcrumb,
106107
dataCollection: {

‎src/test/observability.test.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ describe("observability primitives", () => {
209209
expect(sentryInitMock).toHaveBeenCalledOnce();
210210
expect(sentryInitMock).toHaveBeenCalledWith(expect.objectContaining({
211211
dsn: "https://public-test@sentry.example/1",
212+
ignoreErrors: [/^Synthetic observability verification$/],
212213
sendDefaultPii: false,
213214
beforeBreadcrumb: filterObservabilityBreadcrumb,
214215
dataCollection: {
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import * as Sentry from "@sentry/react";
2+
import { describe, expect, it, vi } from "vitest";
3+
4+
describe("Sentry event filtering", () => {
5+
it("drops only the exact synthetic observability verification error", async () => {
6+
const send = vi.fn(async () => ({}));
7+
8+
Sentry.init({
9+
dsn: "https://0123456789abcdef0123456789abcdef@o0.ingest.sentry.io/1",
10+
ignoreErrors: [/^Synthetic observability verification$/],
11+
transport: () => ({
12+
send,
13+
flush: async () => true,
14+
}),
15+
});
16+
17+
Sentry.captureException(new Error("Synthetic observability verification"));
18+
await Sentry.flush(1_000);
19+
expect(send).not.toHaveBeenCalled();
20+
21+
Sentry.captureException(new Error("Synthetic observability verification failed"));
22+
await Sentry.flush(1_000);
23+
expect(send).toHaveBeenCalledOnce();
24+
25+
Sentry.captureException(new Error("Real privacy route failure"));
26+
await Sentry.flush(1_000);
27+
expect(send).toHaveBeenCalledTimes(2);
28+
29+
await Sentry.close(1_000);
30+
});
31+
});

0 commit comments

Comments
 (0)