Browse Source

chore(llm-monitoring): Rename AI monitoring to LLM monitoring (#71037)

Co-authored-by: getsantry[bot] <66042841+getsantry[bot]@users.noreply.github.com>
colin-sentry 10 months ago
parent
commit
94fae5392b

+ 2 - 2
src/sentry/web/urls.py

@@ -709,9 +709,9 @@ urlpatterns += [
     ),
     # AI Monitoring
     re_path(
-        r"^ai-monitoring/",
+        r"^llm-monitoring/",
         react_page_view,
-        name="ai-monitoring",
+        name="llm-monitoring",
     ),
     # Performance
     re_path(

+ 8 - 10
static/app/components/events/interfaces/ai-monitoring/aiMonitoringSection.tsx → static/app/components/events/interfaces/llm-monitoring/llmMonitoringSection.tsx

@@ -10,8 +10,9 @@ import {MutableSearch} from 'sentry/utils/tokenizeSearch';
 import {
   NumberOfPipelinesChart,
   TotalTokensUsedChart,
-} from 'sentry/views/aiMonitoring/aiMonitoringCharts';
+} from 'sentry/views/llmMonitoring/llmMonitoringCharts';
 import * as ModuleLayout from 'sentry/views/performance/moduleLayout';
+import {useAIModuleURL} from 'sentry/views/performance/utils/useModuleURL';
 import {useIndexedSpans} from 'sentry/views/starfish/queries/useIndexedSpans';
 import {type IndexedResponse, SpanIndexedField} from 'sentry/views/starfish/types';
 
@@ -20,7 +21,7 @@ interface Props {
   organization: Organization;
 }
 
-export default function AIMonitoringSection({event, organization}: Props) {
+export default function LLMMonitoringSection({event}: Props) {
   const traceId = event.contexts.trace?.trace_id;
   const spanId = event.contexts.trace?.span_id;
   const {data, error, isLoading} = useIndexedSpans({
@@ -29,25 +30,22 @@ export default function AIMonitoringSection({event, organization}: Props) {
     referrer: 'api.ai-pipelines.view',
     search: new MutableSearch(`trace:${traceId} id:"${spanId}"`),
   });
+  const moduleUrl = useAIModuleURL();
   const aiPipelineGroup =
     data && (data[0] as IndexedResponse)?.[SpanIndexedField.SPAN_AI_PIPELINE_GROUP];
 
   const actions = (
     <ButtonBar gap={1}>
-      <LinkButton
-        size="xs"
-        icon={<IconOpen />}
-        to={`/organizations/${organization.slug}/ai-monitoring/`}
-      >
-        {t('View in AI Monitoring')}
+      <LinkButton size="xs" icon={<IconOpen />} to={moduleUrl}>
+        {t('View in LLM Monitoring')}
       </LinkButton>
     </ButtonBar>
   );
 
   return (
     <EventDataSection
-      title={t('AI monitoring')}
-      type="ai-monitoring"
+      title={t('LLM monitoring')}
+      type="llm-monitoring"
       help={t('Charts showing how many tokens are being used')}
       actions={actions}
     >

+ 5 - 5
static/app/components/sidebar/index.tsx

@@ -408,16 +408,16 @@ function Sidebar() {
     />
   );
 
-  const aiMonitoring = hasOrganization && (
+  const llmMonitoring = hasOrganization && (
     <Feature features="ai-analytics" organization={organization}>
       <SidebarItem
         {...sidebarItemProps}
         icon={<IconRobot />}
-        label={t('AI Monitoring')}
+        label={t('LLM Monitoring')}
         isAlpha
         variant="short"
-        to={`/organizations/${organization.slug}/ai-monitoring/`}
-        id="ai-monitoring"
+        to={`/organizations/${organization.slug}/llm-monitoring/`}
+        id="llm-monitoring"
       />
     </Feature>
   );
@@ -582,7 +582,7 @@ function Sidebar() {
                   {profiling}
                   {metrics}
                   {replays}
-                  {aiMonitoring}
+                  {llmMonitoring}
                   {feedback}
                   {monitors}
                   {alerts}

+ 5 - 5
static/app/routes.tsx

@@ -1435,13 +1435,13 @@ function buildRoutes() {
     </Route>
   );
 
-  const aiMonitoringRoutes = (
-    <Route path="/ai-monitoring/" withOrgPath>
-      <IndexRoute component={make(() => import('sentry/views/aiMonitoring/landing'))} />
+  const llmMonitoringRoutes = (
+    <Route path="/llm-monitoring/" withOrgPath>
+      <IndexRoute component={make(() => import('sentry/views/llmMonitoring/landing'))} />
       <Route
         path="pipeline-type/:groupId/"
         component={make(
-          () => import('sentry/views/aiMonitoring/aiMonitoringDetailsPage')
+          () => import('sentry/views/llmMonitoring/llmMonitoringDetailsPage')
         )}
       />
     </Route>
@@ -2071,7 +2071,7 @@ function buildRoutes() {
       {statsRoutes}
       {discoverRoutes}
       {performanceRoutes}
-      {aiMonitoringRoutes}
+      {llmMonitoringRoutes}
       {profilingRoutes}
       {metricsRoutes}
       {gettingStartedRoutes}

+ 0 - 4
static/app/views/aiMonitoring/settings.ts

@@ -1,4 +0,0 @@
-import {t} from 'sentry/locale';
-
-export const MODULE_TITLE = t('AI Monitoring');
-export const BASE_URL = '/ai-monitoring';

+ 3 - 3
static/app/views/issueDetails/groupEventDetails/groupEventDetailsContent.tsx

@@ -55,8 +55,8 @@ import {getReplayIdFromEvent} from 'sentry/utils/replays/getReplayIdFromEvent';
 import useOrganization from 'sentry/utils/useOrganization';
 import {ResourcesAndMaybeSolutions} from 'sentry/views/issueDetails/resourcesAndMaybeSolutions';
 
-const AIMonitoringSection = lazy(
-  () => import('sentry/components/events/interfaces/ai-monitoring/aiMonitoringSection')
+const LLMMonitoringSection = lazy(
+  () => import('sentry/components/events/interfaces/llm-monitoring/llmMonitoringSection')
 );
 
 type GroupEventDetailsContentProps = {
@@ -154,7 +154,7 @@ function DefaultGroupEventDetailsContent({
           );
         }) ? (
         <LazyLoad
-          LazyComponent={AIMonitoringSection}
+          LazyComponent={LLMMonitoringSection}
           event={event}
           organization={organization}
         />

+ 11 - 11
static/app/views/aiMonitoring/landing.tsx → static/app/views/llmMonitoring/landing.tsx

@@ -14,15 +14,15 @@ import {
   NumberOfPipelinesChart,
   PipelineDurationChart,
   TotalTokensUsedChart,
-} from 'sentry/views/aiMonitoring/aiMonitoringCharts';
-import {AIMonitoringOnboarding} from 'sentry/views/aiMonitoring/onboarding';
-import {PipelinesTable} from 'sentry/views/aiMonitoring/PipelinesTable';
-import {BASE_URL} from 'sentry/views/aiMonitoring/settings';
+} from 'sentry/views/llmMonitoring/llmMonitoringCharts';
+import {LLMMonitoringOnboarding} from 'sentry/views/llmMonitoring/onboarding';
+import {PipelinesTable} from 'sentry/views/llmMonitoring/pipelinesTable';
+import {BASE_URL} from 'sentry/views/llmMonitoring/settings';
 import {useOnboardingProject} from 'sentry/views/performance/browser/webVitals/utils/useOnboardingProject';
 import * as ModuleLayout from 'sentry/views/performance/moduleLayout';
 import {ModulePageProviders} from 'sentry/views/performance/modulePageProviders';
 
-export function AiMonitoringPage() {
+export function LLMMonitoringPage() {
   const organization = useOrganization();
   const onboardingProject = useOnboardingProject();
   const isOnboarding = !!onboardingProject;
@@ -38,15 +38,15 @@ export function AiMonitoringPage() {
                   label: t('Dashboard'),
                 },
                 {
-                  label: t('AI Monitoring'),
+                  label: t('LLM Monitoring'),
                 },
               ]}
             />
             <Layout.Title>
-              {t('AI Monitoring')}
+              {t('LLM Monitoring')}
               <PageHeadingQuestionTooltip
                 title={t('View analytics and information about your AI pipelines')}
-                docsUrl="https://docs.sentry.io/product/ai-monitoring/"
+                docsUrl="https://docs.sentry.io/product/llm-monitoring/"
               />
             </Layout.Title>
           </Layout.HeaderContent>
@@ -63,7 +63,7 @@ export function AiMonitoringPage() {
               </ModuleLayout.Full>
               {isOnboarding ? (
                 <ModuleLayout.Full>
-                  <AIMonitoringOnboarding />
+                  <LLMMonitoringOnboarding />
                 </ModuleLayout.Full>
               ) : (
                 <Fragment>
@@ -92,11 +92,11 @@ export function AiMonitoringPage() {
 function PageWithProviders() {
   return (
     <ModulePageProviders
-      title={t('AI Monitoring')}
+      title={t('LLM Monitoring')}
       baseURL={BASE_URL}
       features="ai-analytics"
     >
-      <AiMonitoringPage />
+      <LLMMonitoringPage />
     </ModulePageProviders>
   );
 }

+ 0 - 0
static/app/views/aiMonitoring/aiMonitoringCharts.tsx → static/app/views/llmMonitoring/llmMonitoringCharts.tsx


+ 8 - 8
static/app/views/aiMonitoring/aiMonitoringDetailsPage.tsx → static/app/views/llmMonitoring/llmMonitoringDetailsPage.tsx

@@ -18,9 +18,9 @@ import {
   NumberOfPipelinesChart,
   PipelineDurationChart,
   TotalTokensUsedChart,
-} from 'sentry/views/aiMonitoring/aiMonitoringCharts';
-import {PipelineSpansTable} from 'sentry/views/aiMonitoring/pipelineSpansTable';
-import {BASE_URL} from 'sentry/views/aiMonitoring/settings';
+} from 'sentry/views/llmMonitoring/llmMonitoringCharts';
+import {PipelineSpansTable} from 'sentry/views/llmMonitoring/pipelineSpansTable';
+import {BASE_URL} from 'sentry/views/llmMonitoring/settings';
 import {MetricReadout} from 'sentry/views/performance/metricReadout';
 import * as ModuleLayout from 'sentry/views/performance/moduleLayout';
 import {ModulePageProviders} from 'sentry/views/performance/modulePageProviders';
@@ -42,7 +42,7 @@ type Query = {
   'span.description'?: string;
 };
 
-export function AiMonitoringPage({params}: Props) {
+export function LLMMonitoringPage({params}: Props) {
   const moduleURL = useAIModuleURL();
   const location = useLocation<Query>();
 
@@ -98,15 +98,15 @@ export function AiMonitoringPage({params}: Props) {
                   label: t('Dashboard'),
                 },
                 {
-                  label: t('AI Monitoring'),
+                  label: t('LLM Monitoring'),
+                  to: moduleURL,
                 },
                 {
                   label: spanDescription ?? t('(no name)'),
-                  to: moduleURL,
                 },
               ]}
             />
-            <Layout.Title>{t('AI Monitoring')}</Layout.Title>
+            <Layout.Title>{t('LLM Monitoring')}</Layout.Title>
           </Layout.HeaderContent>
         </Layout.Header>
         <Layout.Body>
@@ -183,7 +183,7 @@ function PageWithProviders({params}: Props) {
       baseURL={BASE_URL}
       features="ai-analytics"
     >
-      <AiMonitoringPage params={params} />
+      <LLMMonitoringPage params={params} />
     </ModulePageProviders>
   );
 }

+ 3 - 3
static/app/views/aiMonitoring/onboarding.tsx → static/app/views/llmMonitoring/onboarding.tsx

@@ -7,15 +7,15 @@ import ButtonBar from 'sentry/components/buttonBar';
 import OnboardingPanel from 'sentry/components/onboardingPanel';
 import {t} from 'sentry/locale';
 
-const docsSetupURL = 'https://docs.sentry.io/product/ai-monitoring/getting-started/';
+const docsSetupURL = 'https://docs.sentry.io/product/llm-monitoring/getting-started/';
 
-export function AIMonitoringOnboarding() {
+export function LLMMonitoringOnboarding() {
   return (
     <OnboardingPanel image={<PerfImage src={emptyStateImg} />}>
       <h3>{t('Understand your AI pipelines')}</h3>
       <p>
         {t(
-          `Trying to productionize AI? Sentry's AI monitoring features help you understand the price, performance, and quality of your AI pipelines.`
+          `Trying to productionize AI? Sentry's LLM monitoring features help you understand the price, performance, and quality of your AI pipelines.`
         )}
       </p>
       <ButtonList gap={1}>

Some files were not shown because too many files changed in this diff