Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
3ac6c86
feat(onboarding): Add logs for .NET platforms
alexander-alderman-webb Jan 19, 2026
eade454
feat(onboarding): Logs page for .NET platforms
alexander-alderman-webb Jan 20, 2026
02e5546
feat(onboarding): Add metrics for .NET platforms
alexander-alderman-webb Jan 20, 2026
04b32fa
remove metrics stuff
alexander-alderman-webb Jan 20, 2026
8cf15e0
add metrics.tsx
alexander-alderman-webb Jan 20, 2026
cbbb6d6
add comma to gcp config
alexander-alderman-webb Jan 20, 2026
48ced55
Merge branch 'webb/dotnet-logs' into webb/dotnet-log-page
alexander-alderman-webb Jan 20, 2026
8984109
rename logs function
alexander-alderman-webb Jan 20, 2026
ff38c5d
Merge branch 'webb/dotnet-log-page' into webb/dotnet-metrics
alexander-alderman-webb Jan 20, 2026
da5d27e
add metricsVerify to plain dotnet onboarding
alexander-alderman-webb Jan 20, 2026
87167ed
remove whitespace
alexander-alderman-webb Jan 20, 2026
6992bc1
Merge branch 'webb/dotnet-log-page' into webb/dotnet-metrics
alexander-alderman-webb Jan 20, 2026
f351758
Merge branch 'master' into webb/dotnet-metrics
Flash0ver Feb 4, 2026
afdf99a
merge
Flash0ver Feb 4, 2026
21ac46a
:hammer_and_wrench: apply pre-commit fixes
getsantry[bot] Feb 4, 2026
4374845
fix merge mistake
Flash0ver Feb 4, 2026
c6af5d0
fix(onboarding): Xamarin does not support Trace-connected Metrics
Flash0ver Feb 4, 2026
5e9cd69
Merge branch 'master' into webb/dotnet-metrics
Flash0ver Feb 5, 2026
449e0f2
fix: link to .NET metrics docs
Flash0ver Feb 5, 2026
25da527
fix: language of C# code snippet
Flash0ver Feb 5, 2026
0305cb9
:hammer_and_wrench: apply pre-commit fixes
getsantry[bot] Feb 5, 2026
18d157e
add dotnet to limitedMetricsSupportPrefixes
alexander-alderman-webb Feb 6, 2026
4c90730
merge masteR
alexander-alderman-webb Feb 6, 2026
784ec5a
add missing import
alexander-alderman-webb Feb 6, 2026
d6ee5f9
move logs and metrics to verify section
alexander-alderman-webb Feb 6, 2026
19468b7
remove dotnet-xamarin metrics
alexander-alderman-webb Feb 6, 2026
a4c29ad
fix tests
alexander-alderman-webb Feb 6, 2026
1ed3c84
remove assertion from dotnet tests
alexander-alderman-webb Feb 6, 2026
9a50d5b
Merge branch 'master' into webb/dotnet-metrics
Flash0ver Feb 6, 2026
fd888cf
fix merge error
Flash0ver Feb 6, 2026
3017942
feat(onboarding): Metrics page for .NET platforms (#106552)
alexander-alderman-webb Feb 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 36 additions & 7 deletions static/app/components/onboarding/productSelection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -97,14 +97,43 @@ export const platformProductAvailability = {
ProductSolution.PERFORMANCE_MONITORING,
ProductSolution.PROFILING,
ProductSolution.LOGS,
ProductSolution.METRICS,
],
'dotnet-aspnet': [
ProductSolution.PERFORMANCE_MONITORING,
ProductSolution.LOGS,
ProductSolution.METRICS,
],
'dotnet-aspnetcore': [
ProductSolution.PERFORMANCE_MONITORING,
ProductSolution.LOGS,
ProductSolution.METRICS,
],
'dotnet-awslambda': [
ProductSolution.PERFORMANCE_MONITORING,
ProductSolution.LOGS,
ProductSolution.METRICS,
],
'dotnet-gcpfunctions': [
ProductSolution.PERFORMANCE_MONITORING,
ProductSolution.LOGS,
ProductSolution.METRICS,
],
'dotnet-maui': [
ProductSolution.PERFORMANCE_MONITORING,
ProductSolution.LOGS,
ProductSolution.METRICS,
],
'dotnet-winforms': [
ProductSolution.PERFORMANCE_MONITORING,
ProductSolution.LOGS,
ProductSolution.METRICS,
],
'dotnet-wpf': [
ProductSolution.PERFORMANCE_MONITORING,
ProductSolution.LOGS,
ProductSolution.METRICS,
],
'dotnet-aspnet': [ProductSolution.PERFORMANCE_MONITORING, ProductSolution.LOGS],
'dotnet-aspnetcore': [ProductSolution.PERFORMANCE_MONITORING, ProductSolution.LOGS],
'dotnet-awslambda': [ProductSolution.PERFORMANCE_MONITORING, ProductSolution.LOGS],
'dotnet-gcpfunctions': [ProductSolution.PERFORMANCE_MONITORING, ProductSolution.LOGS],
'dotnet-maui': [ProductSolution.PERFORMANCE_MONITORING, ProductSolution.LOGS],
'dotnet-winforms': [ProductSolution.PERFORMANCE_MONITORING, ProductSolution.LOGS],
'dotnet-wpf': [ProductSolution.PERFORMANCE_MONITORING, ProductSolution.LOGS],
'dotnet-xamarin': [ProductSolution.PERFORMANCE_MONITORING],
dart: [ProductSolution.PERFORMANCE_MONITORING, ProductSolution.LOGS],
kotlin: [ProductSolution.PERFORMANCE_MONITORING],
Expand Down
11 changes: 10 additions & 1 deletion static/app/data/platformCategories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,14 @@ export const withMetricsOnboarding: Set<PlatformKey> = new Set([
'apple',
'apple-ios',
'apple-macos',
'dotnet',
'dotnet-aspnet',
'dotnet-aspnetcore',
'dotnet-awslambda',
'dotnet-gcpfunctions',
'dotnet-maui',
'dotnet-winforms',
'dotnet-wpf',
'react-native',
'go',
'go-echo',
Expand Down Expand Up @@ -480,13 +488,14 @@ export const withMetricsOnboarding: Set<PlatformKey> = new Set([
]);

// List of platforms that do not have metrics support. We make use of this list in the product to not provide any Metrics
export const withoutMetricsSupport: Set<PlatformKey> = new Set([]);
export const withoutMetricsSupport: Set<PlatformKey> = new Set(['dotnet-xamarin']);

export const limitedMetricsSupportPrefixes: Set<string> = new Set([
'android',
'apple',
'bun',
'dart',
'dotnet',
'electron',
'go',
'java',
Expand Down
2 changes: 2 additions & 0 deletions static/app/gettingStartedDocs/dotnet-aspnet/index.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import type {Docs} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {logs} from 'sentry/gettingStartedDocs/dotnet/logs';
import {metrics} from 'sentry/gettingStartedDocs/dotnet/metrics';
import {
feedbackOnboardingJsLoader,
replayOnboardingJsLoader,
Expand All @@ -14,6 +15,7 @@ const docs: Docs = {
crashReportOnboarding: crashReport,
feedbackOnboardingJsLoader,
logsOnboarding: logs,
metricsOnboarding: metrics,
};

export default docs;
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,17 @@ describe('aspnet onboarding docs', () => {
version: '1.99.9',
},
},
selectedProducts: [ProductSolution.PERFORMANCE_MONITORING, ProductSolution.LOGS],
selectedProducts: [
ProductSolution.PERFORMANCE_MONITORING,
ProductSolution.LOGS,
ProductSolution.METRICS,
],
});

// Renders main headings
expect(screen.getByRole('heading', {name: 'Install'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Configure SDK'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Documentation'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Verify Logs'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Samples'})).toBeInTheDocument();

// Renders SDK version from registry
Expand Down
11 changes: 3 additions & 8 deletions static/app/gettingStartedDocs/dotnet-aspnet/onboarding.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import type {
} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {StepType} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {logsVerify} from 'sentry/gettingStartedDocs/dotnet/logs';
import {metricsVerify} from 'sentry/gettingStartedDocs/dotnet/metrics';
import {t, tct} from 'sentry/locale';
import {getPackageVersion} from 'sentry/utils/gettingStartedDocs/getPackageVersion';

Expand Down Expand Up @@ -159,16 +160,10 @@ export const onboarding: OnboardingConfig = {
}
),
},
logsVerify(params),
metricsVerify(params),
],
},
...(params.isLogsSelected
? [
{
title: t('Verify Logs'),
content: [logsVerify(params)],
},
]
: []),
{
title: t('Samples'),
content: [
Expand Down
2 changes: 2 additions & 0 deletions static/app/gettingStartedDocs/dotnet-aspnetcore/index.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import type {Docs} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {logs} from 'sentry/gettingStartedDocs/dotnet/logs';
import {metrics} from 'sentry/gettingStartedDocs/dotnet/metrics';
import {
feedbackOnboardingJsLoader,
replayOnboardingJsLoader,
Expand All @@ -14,6 +15,7 @@ const docs: Docs = {
crashReportOnboarding: crashReport,
feedbackOnboardingJsLoader,
logsOnboarding: logs,
metricsOnboarding: metrics,
};

export default docs;
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,18 @@ describe('aspnetcore onboarding docs', () => {
version: '1.99.9',
},
},
selectedProducts: [ProductSolution.PERFORMANCE_MONITORING, ProductSolution.LOGS],
selectedProducts: [
ProductSolution.PERFORMANCE_MONITORING,
ProductSolution.LOGS,
ProductSolution.METRICS,
],
});

// Renders main headings
expect(screen.getByRole('heading', {name: 'Install'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Configure SDK'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Verify'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Tracing'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Verify Logs'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Samples'})).toBeInTheDocument();

// Renders SDK version from registry
Expand Down
11 changes: 3 additions & 8 deletions static/app/gettingStartedDocs/dotnet-aspnetcore/onboarding.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import type {
} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {StepType} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {logsVerify} from 'sentry/gettingStartedDocs/dotnet/logs';
import {metricsVerify} from 'sentry/gettingStartedDocs/dotnet/metrics';
import {t, tct} from 'sentry/locale';
import {getPackageVersion} from 'sentry/utils/gettingStartedDocs/getPackageVersion';

Expand Down Expand Up @@ -154,6 +155,8 @@ export const onboarding: OnboardingConfig = {
}
),
},
logsVerify(params),
metricsVerify(params),
],
},
...(params.isPerformanceSelected
Expand Down Expand Up @@ -185,14 +188,6 @@ export const onboarding: OnboardingConfig = {
},
] satisfies OnboardingStep[])
: []),
...(params.isLogsSelected
? [
{
title: t('Verify Logs'),
content: [logsVerify(params)],
},
]
: []),
{
title: t('Samples'),
content: [
Expand Down
2 changes: 2 additions & 0 deletions static/app/gettingStartedDocs/dotnet-awslambda/index.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type {Docs} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {feedback} from 'sentry/gettingStartedDocs/dotnet/feedback';
import {logs} from 'sentry/gettingStartedDocs/dotnet/logs';
import {metrics} from 'sentry/gettingStartedDocs/dotnet/metrics';

import {crashReport} from './crashReport';
import {onboarding} from './onboarding';
Expand All @@ -10,6 +11,7 @@ const docs: Docs = {
feedbackOnboardingCrashApi: feedback,
crashReportOnboarding: crashReport,
logsOnboarding: logs,
metricsOnboarding: metrics,
};

export default docs;
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,13 @@ describe('awslambda onboarding docs', () => {
version: '1.99.9',
},
},
selectedProducts: [ProductSolution.LOGS],
selectedProducts: [ProductSolution.LOGS, ProductSolution.METRICS],
});

// Renders main headings
expect(screen.getByRole('heading', {name: 'Install'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Configure SDK'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Verify'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Verify Logs'})).toBeInTheDocument();

// Renders SDK version from registry
expect(
Expand Down
11 changes: 3 additions & 8 deletions static/app/gettingStartedDocs/dotnet-awslambda/onboarding.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import type {
} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {StepType} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {logsVerify} from 'sentry/gettingStartedDocs/dotnet/logs';
import {metricsVerify} from 'sentry/gettingStartedDocs/dotnet/metrics';
import {t, tct} from 'sentry/locale';
import {getPackageVersion} from 'sentry/utils/gettingStartedDocs/getPackageVersion';

Expand Down Expand Up @@ -156,6 +157,8 @@ export const onboarding: OnboardingConfig = {
language: 'shell',
code: 'curl -X GET -I https://url.of.server.aws/api/bad',
},
logsVerify(params),
metricsVerify(params),
{
type: 'text',
text: tct(
Expand All @@ -169,13 +172,5 @@ export const onboarding: OnboardingConfig = {
},
],
},
...(params.isLogsSelected
? [
{
title: t('Verify Logs'),
content: [logsVerify(params)],
},
]
: []),
],
};
2 changes: 2 additions & 0 deletions static/app/gettingStartedDocs/dotnet-gcpfunctions/index.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type {Docs} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {feedback} from 'sentry/gettingStartedDocs/dotnet/feedback';
import {logs} from 'sentry/gettingStartedDocs/dotnet/logs';
import {metrics} from 'sentry/gettingStartedDocs/dotnet/metrics';

import {crashReport} from './crashReport';
import {onboarding} from './onboarding';
Expand All @@ -10,6 +11,7 @@ const docs: Docs = {
feedbackOnboardingCrashApi: feedback,
crashReportOnboarding: crashReport,
logsOnboarding: logs,
metricsOnboarding: metrics,
};

export default docs;
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,13 @@ describe('gcpfunctions onboarding docs', () => {
version: '1.99.9',
},
},
selectedProducts: [ProductSolution.LOGS],
selectedProducts: [ProductSolution.LOGS, ProductSolution.METRICS],
});

// Renders main headings
expect(screen.getByRole('heading', {name: 'Install'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Configure SDK'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Verify'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Verify Logs'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Samples'})).toBeInTheDocument();

// Renders SDK version from registry
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import type {
} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {StepType} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {logsVerify} from 'sentry/gettingStartedDocs/dotnet/logs';
import {metricsVerify} from 'sentry/gettingStartedDocs/dotnet/metrics';
import {t, tct} from 'sentry/locale';
import {getPackageVersion} from 'sentry/utils/gettingStartedDocs/getPackageVersion';

Expand Down Expand Up @@ -167,16 +168,10 @@ export const onboarding: OnboardingConfig = {
language: 'csharp',
code: getVerifySnippet(),
},
logsVerify(params),
metricsVerify(params),
],
},
...(params.isLogsSelected
? [
{
title: t('Verify Logs'),
content: [logsVerify(params)],
},
]
: []),
{
title: t('Samples'),
content: [
Expand Down
2 changes: 2 additions & 0 deletions static/app/gettingStartedDocs/dotnet-maui/index.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type {Docs} from 'sentry/components/onboarding/gettingStartedDoc/types';
import {feedback} from 'sentry/gettingStartedDocs/dotnet/feedback';
import {logs} from 'sentry/gettingStartedDocs/dotnet/logs';
import {metrics} from 'sentry/gettingStartedDocs/dotnet/metrics';

import {crashReport} from './crashReport';
import {onboarding} from './onboarding';
Expand All @@ -10,6 +11,7 @@ const docs: Docs = {
feedbackOnboardingCrashApi: feedback,
crashReportOnboarding: crashReport,
logsOnboarding: logs,
metricsOnboarding: metrics,
};

export default docs;
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,18 @@ describe('maui onboarding docs', () => {
version: '1.99.9',
},
},
selectedProducts: [ProductSolution.PERFORMANCE_MONITORING, ProductSolution.LOGS],
selectedProducts: [
ProductSolution.PERFORMANCE_MONITORING,
ProductSolution.LOGS,
ProductSolution.METRICS,
],
});

// Renders main headings
expect(screen.getByRole('heading', {name: 'Install'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Configure SDK'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Verify'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Tracing'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Verify Logs'})).toBeInTheDocument();
expect(screen.getByRole('heading', {name: 'Sample Application'})).toBeInTheDocument();

// Renders SDK version from registry
Expand Down
Loading
Loading