diff --git a/package.json b/package.json
index 5de10c28900..0666b2ffc88 100644
--- a/package.json
+++ b/package.json
@@ -273,7 +273,7 @@
"@formatjs/intl-durationformat": "^0.7.0",
"@glideapps/glide-data-grid": "^6.0.0",
"@grafana/alerting": "workspace:*",
- "@grafana/assistant": "0.0.16",
+ "@grafana/assistant": "0.0.17",
"@grafana/aws-sdk": "0.7.1",
"@grafana/azure-sdk": "0.0.7",
"@grafana/data": "workspace:*",
diff --git a/packages/grafana-flamegraph/package.json b/packages/grafana-flamegraph/package.json
index fb5b0fa7939..3313be6f7f0 100644
--- a/packages/grafana-flamegraph/package.json
+++ b/packages/grafana-flamegraph/package.json
@@ -83,7 +83,7 @@
"typescript": "5.9.2"
},
"peerDependencies": {
- "@grafana/assistant": "^0.0.12",
+ "@grafana/assistant": "^0.0.17",
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
diff --git a/packages/grafana-flamegraph/src/AnalyzeFlameGraphButton.tsx b/packages/grafana-flamegraph/src/AnalyzeFlameGraphButton.tsx
deleted file mode 100644
index 696a1798ad4..00000000000
--- a/packages/grafana-flamegraph/src/AnalyzeFlameGraphButton.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-import { ChatContextItem, useAssistant } from '@grafana/assistant';
-import { Button } from '@grafana/ui';
-
-type Props = {
- assistantContext: ChatContextItem[];
- className?: string;
-};
-
-export function AnalyzeFlameGraphButton(props: Props) {
- const { assistantContext, className } = props;
- const [isAvailable, openAssistant] = useAssistant();
-
- if (!isAvailable || !openAssistant || assistantContext.length === 0) {
- return null;
- }
-
- return (
-
- );
-}
diff --git a/packages/grafana-flamegraph/src/FlameGraphContainer.test.tsx b/packages/grafana-flamegraph/src/FlameGraphContainer.test.tsx
index 85ce8dd3470..e8786e42466 100644
--- a/packages/grafana-flamegraph/src/FlameGraphContainer.test.tsx
+++ b/packages/grafana-flamegraph/src/FlameGraphContainer.test.tsx
@@ -11,7 +11,8 @@ import { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from './constants';
jest.mock('@grafana/assistant', () => ({
useAssistant: jest.fn(() => [false, null]), // [isAvailable, openAssistant]
- createContext: jest.fn(),
+ createAssistantContextItem: jest.fn(),
+ OpenAssistantButton: () =>
OpenAssistantButton
,
}));
jest.mock('react-use', () => ({
diff --git a/packages/grafana-flamegraph/src/FlameGraphHeader.test.tsx b/packages/grafana-flamegraph/src/FlameGraphHeader.test.tsx
index 0ca621d9f64..59be0ed931e 100644
--- a/packages/grafana-flamegraph/src/FlameGraphHeader.test.tsx
+++ b/packages/grafana-flamegraph/src/FlameGraphHeader.test.tsx
@@ -9,7 +9,8 @@ import { ColorScheme, SelectedView } from './types';
jest.mock('@grafana/assistant', () => ({
useAssistant: jest.fn(() => [false, null]), // [isAvailable, openAssistant]
- createContext: jest.fn(),
+ createAssistantContextItem: jest.fn(),
+ OpenAssistantButton: () => OpenAssistantButton
,
}));
describe('FlameGraphHeader', () => {
diff --git a/packages/grafana-flamegraph/src/FlameGraphHeader.tsx b/packages/grafana-flamegraph/src/FlameGraphHeader.tsx
index e51dd78b051..46f6cde182f 100644
--- a/packages/grafana-flamegraph/src/FlameGraphHeader.tsx
+++ b/packages/grafana-flamegraph/src/FlameGraphHeader.tsx
@@ -3,11 +3,10 @@ import { useEffect, useState } from 'react';
import * as React from 'react';
import { useDebounce, usePrevious } from 'react-use';
-import { ChatContextItem } from '@grafana/assistant';
+import { ChatContextItem, OpenAssistantButton } from '@grafana/assistant';
import { GrafanaTheme2, SelectableValue } from '@grafana/data';
import { Button, ButtonGroup, Dropdown, Input, Menu, RadioButtonGroup, useStyles2 } from '@grafana/ui';
-import { AnalyzeFlameGraphButton } from './AnalyzeFlameGraphButton';
import { byPackageGradient, byValueGradient, diffColorBlindGradient, diffDefaultGradient } from './FlameGraph/colors';
import { CollapsedMap } from './FlameGraph/dataTransform';
import { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from './constants';
@@ -89,8 +88,10 @@ const FlameGraphHeader = ({
- {assistantContext && (
-
+ {!!assistantContext?.length && (
+
+
+
)}
{showResetButton && (