|
@@ -5,67 +5,67 @@ import {MetricsOperation, MetricsType} from 'sentry/types';
|
|
|
import {ColumnType} from '../discover/fields';
|
|
|
|
|
|
export enum SessionMetric {
|
|
|
- SENTRY_SESSIONS_SESSION = 'sentry.sessions.session',
|
|
|
- SENTRY_SESSIONS_SESSION_DURATION = 'sentry.sessions.session.duration',
|
|
|
- SENTRY_SESSIONS_SESSION_ERROR = 'sentry.sessions.session.error',
|
|
|
- SENTRY_SESSIONS_USER = 'sentry.sessions.user',
|
|
|
+ SESSION = 'sentry.sessions.session',
|
|
|
+ SESSION_DURATION = 'sentry.sessions.session.duration',
|
|
|
+ SESSION_ERROR = 'sentry.sessions.session.error',
|
|
|
+ USER = 'sentry.sessions.user',
|
|
|
}
|
|
|
|
|
|
export enum TransactionMetric {
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_FP = 'sentry.transactions.measurements.fp',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_FCP = 'sentry.transactions.measurements.fcp',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_LCP = 'sentry.transactions.measurements.lcp',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_FID = 'sentry.transactions.measurements.fid',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_CLS = 'sentry.transactions.measurements.cls',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_TTFB = 'sentry.transactions.measurements.ttfb',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_TTFB_REQUESTTIME = 'sentry.transactions.measurements.ttfb.requesttime',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_APP_START_COLD = 'sentry.transactions.measurements.app_start_cold',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_APP_START_WARM = 'sentry.transactions.measurements.app_start_warm',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_FRAMES_TOTAL = 'sentry.transactions.measurements.frames_total',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_FRAMES_SLOW = 'sentry.transactions.measurements.frames_slow',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_FRAMES_FROZEN = 'sentry.transactions.measurements.frames_frozen',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_FRAMES_SLOW_RATE = 'sentry.transactions.measurements.frames_slow_rate',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_FRAMES_FROZEN_RATE = 'sentry.transactions.measurements.frames_frozen_rate',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_STALL_COUNT = 'sentry.transactions.measurements.stall_count',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_STALL_TOTAL_TIME = 'sentry.transactions.measurements.stall_total_time',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_STALL_LONGEST_TIME = 'sentry.transactions.measurements.stall_longest_time',
|
|
|
- SENTRY_TRANSACTIONS_MEASUREMENTS_STALL_PERCENTAGE = 'sentry.transactions.measurements.stall_percentage',
|
|
|
- SENTRY_TRANSACTIONS_TRANSACTION_DURATION = 'sentry.transactions.transaction.duration',
|
|
|
- SENTRY_TRANSACTIONS_USER = 'sentry.transactions.user',
|
|
|
- SENTRY_TRANSACTIONS_TRANSACTION = 'transaction',
|
|
|
+ MEASUREMENTS_FP = 'sentry.transactions.measurements.fp',
|
|
|
+ MEASUREMENTS_FCP = 'sentry.transactions.measurements.fcp',
|
|
|
+ MEASUREMENTS_LCP = 'sentry.transactions.measurements.lcp',
|
|
|
+ MEASUREMENTS_FID = 'sentry.transactions.measurements.fid',
|
|
|
+ MEASUREMENTS_CLS = 'sentry.transactions.measurements.cls',
|
|
|
+ MEASUREMENTS_TTFB = 'sentry.transactions.measurements.ttfb',
|
|
|
+ MEASUREMENTS_TTFB_REQUESTTIME = 'sentry.transactions.measurements.ttfb.requesttime',
|
|
|
+ MEASUREMENTS_APP_START_COLD = 'sentry.transactions.measurements.app_start_cold',
|
|
|
+ MEASUREMENTS_APP_START_WARM = 'sentry.transactions.measurements.app_start_warm',
|
|
|
+ MEASUREMENTS_FRAMES_TOTAL = 'sentry.transactions.measurements.frames_total',
|
|
|
+ MEASUREMENTS_FRAMES_SLOW = 'sentry.transactions.measurements.frames_slow',
|
|
|
+ MEASUREMENTS_FRAMES_FROZEN = 'sentry.transactions.measurements.frames_frozen',
|
|
|
+ MEASUREMENTS_FRAMES_SLOW_RATE = 'sentry.transactions.measurements.frames_slow_rate',
|
|
|
+ MEASUREMENTS_FRAMES_FROZEN_RATE = 'sentry.transactions.measurements.frames_frozen_rate',
|
|
|
+ MEASUREMENTS_STALL_COUNT = 'sentry.transactions.measurements.stall_count',
|
|
|
+ MEASUREMENTS_STALL_TOTAL_TIME = 'sentry.transactions.measurements.stall_total_time',
|
|
|
+ MEASUREMENTS_STALL_LONGEST_TIME = 'sentry.transactions.measurements.stall_longest_time',
|
|
|
+ MEASUREMENTS_STALL_PERCENTAGE = 'sentry.transactions.measurements.stall_percentage',
|
|
|
+ TRANSACTION_DURATION = 'sentry.transactions.transaction.duration',
|
|
|
+ USER = 'sentry.transactions.user',
|
|
|
+ TRANSACTION = 'transaction',
|
|
|
}
|
|
|
|
|
|
export const METRIC_TO_COLUMN_TYPE: Readonly<
|
|
|
Record<SessionMetric | TransactionMetric, ColumnType>
|
|
|
> = {
|
|
|
// Session metrics
|
|
|
- [SessionMetric.SENTRY_SESSIONS_USER]: 'integer',
|
|
|
- [SessionMetric.SENTRY_SESSIONS_SESSION_ERROR]: 'integer',
|
|
|
- [SessionMetric.SENTRY_SESSIONS_SESSION_DURATION]: 'duration',
|
|
|
- [SessionMetric.SENTRY_SESSIONS_SESSION]: 'integer',
|
|
|
+ [SessionMetric.USER]: 'integer',
|
|
|
+ [SessionMetric.SESSION_ERROR]: 'integer',
|
|
|
+ [SessionMetric.SESSION_DURATION]: 'duration',
|
|
|
+ [SessionMetric.SESSION]: 'integer',
|
|
|
|
|
|
// Transaction metrics
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_USER]: 'integer',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION]: 'string',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION]: 'duration',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_FP]: 'duration',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_FCP]: 'duration',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_LCP]: 'duration',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_FID]: 'duration',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_CLS]: 'number',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_TTFB]: 'duration',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_TTFB_REQUESTTIME]: 'duration',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_APP_START_COLD]: 'duration',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_APP_START_WARM]: 'duration',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_FRAMES_TOTAL]: 'integer',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_FRAMES_SLOW]: 'integer',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_FRAMES_FROZEN]: 'integer',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_FRAMES_SLOW_RATE]: 'percentage',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_FRAMES_FROZEN_RATE]: 'percentage',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_STALL_COUNT]: 'integer',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_STALL_TOTAL_TIME]: 'duration',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_STALL_LONGEST_TIME]: 'duration',
|
|
|
- [TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_STALL_PERCENTAGE]: 'percentage',
|
|
|
+ [TransactionMetric.USER]: 'integer',
|
|
|
+ [TransactionMetric.TRANSACTION]: 'string',
|
|
|
+ [TransactionMetric.TRANSACTION_DURATION]: 'duration',
|
|
|
+ [TransactionMetric.MEASUREMENTS_FP]: 'duration',
|
|
|
+ [TransactionMetric.MEASUREMENTS_FCP]: 'duration',
|
|
|
+ [TransactionMetric.MEASUREMENTS_LCP]: 'duration',
|
|
|
+ [TransactionMetric.MEASUREMENTS_FID]: 'duration',
|
|
|
+ [TransactionMetric.MEASUREMENTS_CLS]: 'number',
|
|
|
+ [TransactionMetric.MEASUREMENTS_TTFB]: 'duration',
|
|
|
+ [TransactionMetric.MEASUREMENTS_TTFB_REQUESTTIME]: 'duration',
|
|
|
+ [TransactionMetric.MEASUREMENTS_APP_START_COLD]: 'duration',
|
|
|
+ [TransactionMetric.MEASUREMENTS_APP_START_WARM]: 'duration',
|
|
|
+ [TransactionMetric.MEASUREMENTS_FRAMES_TOTAL]: 'integer',
|
|
|
+ [TransactionMetric.MEASUREMENTS_FRAMES_SLOW]: 'integer',
|
|
|
+ [TransactionMetric.MEASUREMENTS_FRAMES_FROZEN]: 'integer',
|
|
|
+ [TransactionMetric.MEASUREMENTS_FRAMES_SLOW_RATE]: 'percentage',
|
|
|
+ [TransactionMetric.MEASUREMENTS_FRAMES_FROZEN_RATE]: 'percentage',
|
|
|
+ [TransactionMetric.MEASUREMENTS_STALL_COUNT]: 'integer',
|
|
|
+ [TransactionMetric.MEASUREMENTS_STALL_TOTAL_TIME]: 'duration',
|
|
|
+ [TransactionMetric.MEASUREMENTS_STALL_LONGEST_TIME]: 'duration',
|
|
|
+ [TransactionMetric.MEASUREMENTS_STALL_PERCENTAGE]: 'percentage',
|
|
|
};
|
|
|
|
|
|
export const METRICS_OPERATIONS: Readonly<
|
|
@@ -76,60 +76,60 @@ export const METRICS_OPERATIONS: Readonly<
|
|
|
> = {
|
|
|
sum: {
|
|
|
metricsTypes: ['counter'],
|
|
|
- defaultValue: SessionMetric.SENTRY_SESSIONS_SESSION,
|
|
|
+ defaultValue: SessionMetric.SESSION,
|
|
|
},
|
|
|
count_unique: {
|
|
|
metricsTypes: ['set'],
|
|
|
- defaultValue: SessionMetric.SENTRY_SESSIONS_USER,
|
|
|
+ defaultValue: SessionMetric.USER,
|
|
|
},
|
|
|
avg: {
|
|
|
metricsTypes: ['distribution'],
|
|
|
- defaultValue: TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION,
|
|
|
+ defaultValue: TransactionMetric.TRANSACTION_DURATION,
|
|
|
},
|
|
|
count: {
|
|
|
metricsTypes: ['distribution'],
|
|
|
- defaultValue: TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION,
|
|
|
+ defaultValue: TransactionMetric.TRANSACTION_DURATION,
|
|
|
},
|
|
|
max: {
|
|
|
metricsTypes: ['distribution'],
|
|
|
- defaultValue: TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION,
|
|
|
+ defaultValue: TransactionMetric.TRANSACTION_DURATION,
|
|
|
},
|
|
|
p50: {
|
|
|
metricsTypes: ['distribution'],
|
|
|
- defaultValue: TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION,
|
|
|
+ defaultValue: TransactionMetric.TRANSACTION_DURATION,
|
|
|
},
|
|
|
p75: {
|
|
|
metricsTypes: ['distribution'],
|
|
|
- defaultValue: TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION,
|
|
|
+ defaultValue: TransactionMetric.TRANSACTION_DURATION,
|
|
|
},
|
|
|
p95: {
|
|
|
metricsTypes: ['distribution'],
|
|
|
- defaultValue: TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION,
|
|
|
+ defaultValue: TransactionMetric.TRANSACTION_DURATION,
|
|
|
},
|
|
|
p99: {
|
|
|
metricsTypes: ['distribution'],
|
|
|
- defaultValue: TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION,
|
|
|
+ defaultValue: TransactionMetric.TRANSACTION_DURATION,
|
|
|
},
|
|
|
};
|
|
|
|
|
|
// This is not the full map, just what we need for performance table.
|
|
|
// In the future we might want something more generic that strips the aggregate functions.
|
|
|
const DISCOVER_FIELD_TO_METRIC = {
|
|
|
- 'count_unique(user)': `count_unique(${TransactionMetric.SENTRY_TRANSACTIONS_USER})`,
|
|
|
- 'tpm()': `count(${TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION})`,
|
|
|
- 'p75(measurements.fcp)': `p75(${TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_FCP})`,
|
|
|
- 'p75(measurements.lcp)': `p75(${TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_LCP})`,
|
|
|
- 'p75(measurements.fid)': `p75(${TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_FID})`,
|
|
|
- 'p75(measurements.cls)': `p75(${TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_CLS})`,
|
|
|
- 'p50()': `p50(${TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION})`,
|
|
|
- 'p95()': `p95(${TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION})`,
|
|
|
- 'p50(transaction.duration)': `p50(${TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION})`,
|
|
|
- 'p75(transaction.duration)': `p75(${TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION})`,
|
|
|
- 'p95(transaction.duration)': `p95(${TransactionMetric.SENTRY_TRANSACTIONS_TRANSACTION_DURATION})`,
|
|
|
- 'p75(measurements.app_start_cold)': `p75(${TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_APP_START_COLD})`,
|
|
|
- 'p75(measurements.app_start_warm)': `p75(${TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_APP_START_WARM})`,
|
|
|
- 'p75(measurements.frames_slow_rate)': `p75(${TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_FRAMES_SLOW_RATE})`,
|
|
|
- 'p75(measurements.frames_frozen_rate)': `p75(${TransactionMetric.SENTRY_TRANSACTIONS_MEASUREMENTS_FRAMES_FROZEN_RATE})`,
|
|
|
+ 'count_unique(user)': `count_unique(${TransactionMetric.USER})`,
|
|
|
+ 'tpm()': `count(${TransactionMetric.TRANSACTION_DURATION})`,
|
|
|
+ 'p75(measurements.fcp)': `p75(${TransactionMetric.MEASUREMENTS_FCP})`,
|
|
|
+ 'p75(measurements.lcp)': `p75(${TransactionMetric.MEASUREMENTS_LCP})`,
|
|
|
+ 'p75(measurements.fid)': `p75(${TransactionMetric.MEASUREMENTS_FID})`,
|
|
|
+ 'p75(measurements.cls)': `p75(${TransactionMetric.MEASUREMENTS_CLS})`,
|
|
|
+ 'p50()': `p50(${TransactionMetric.TRANSACTION_DURATION})`,
|
|
|
+ 'p95()': `p95(${TransactionMetric.TRANSACTION_DURATION})`,
|
|
|
+ 'p50(transaction.duration)': `p50(${TransactionMetric.TRANSACTION_DURATION})`,
|
|
|
+ 'p75(transaction.duration)': `p75(${TransactionMetric.TRANSACTION_DURATION})`,
|
|
|
+ 'p95(transaction.duration)': `p95(${TransactionMetric.TRANSACTION_DURATION})`,
|
|
|
+ 'p75(measurements.app_start_cold)': `p75(${TransactionMetric.MEASUREMENTS_APP_START_COLD})`,
|
|
|
+ 'p75(measurements.app_start_warm)': `p75(${TransactionMetric.MEASUREMENTS_APP_START_WARM})`,
|
|
|
+ 'p75(measurements.frames_slow_rate)': `p75(${TransactionMetric.MEASUREMENTS_FRAMES_SLOW_RATE})`,
|
|
|
+ 'p75(measurements.frames_frozen_rate)': `p75(${TransactionMetric.MEASUREMENTS_FRAMES_FROZEN_RATE})`,
|
|
|
|
|
|
// TODO(metrics):
|
|
|
// transaction.op
|