|
@@ -67,6 +67,17 @@ export default function AiAnalyticsPage({params}: Props) {
|
|
|
});
|
|
|
const spanMetrics = data[0] ?? {};
|
|
|
|
|
|
+ const {data: totalTokenData, isLoading: isTotalTokenDataLoading} = useSpanMetrics({
|
|
|
+ search: MutableSearch.fromQueryObject({
|
|
|
+ 'span.category': 'ai',
|
|
|
+ 'span.ai.pipeline.group': groupId,
|
|
|
+ }),
|
|
|
+ fields: ['ai_total_tokens_used()'],
|
|
|
+ enabled: Boolean(groupId),
|
|
|
+ referrer: 'api.ai-pipelines.view',
|
|
|
+ });
|
|
|
+ const tokenUsedMetric = totalTokenData[0] ?? {};
|
|
|
+
|
|
|
return (
|
|
|
<PageFiltersContainer>
|
|
|
<SentryDocumentTitle
|
|
@@ -110,6 +121,13 @@ export default function AiAnalyticsPage({params}: Props) {
|
|
|
isLoading={areSpanMetricsLoading}
|
|
|
/>
|
|
|
|
|
|
+ <MetricReadout
|
|
|
+ title={t('Total Tokens Used')}
|
|
|
+ value={tokenUsedMetric['ai_total_tokens_used()']}
|
|
|
+ unit={'count'}
|
|
|
+ isLoading={isTotalTokenDataLoading}
|
|
|
+ />
|
|
|
+
|
|
|
<MetricReadout
|
|
|
title={t('Runs Per Minute')}
|
|
|
value={spanMetrics?.[`${SpanFunction.SPM}()`]}
|