Skip to content

Commit

Permalink
Hide query assist UI if PPL agent is not created (opensearch-project#…
Browse files Browse the repository at this point in the history
…1386) (opensearch-project#1400)

(cherry picked from commit c1a8932)

Signed-off-by: Joshua Li <joshuali925@gmail.com>
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
(cherry picked from commit 2b450ef)
  • Loading branch information
opensearch-trigger-bot[bot] authored and A9 Swift Project User committed Feb 3, 2024
1 parent f8cdac3 commit e1d5d94
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 5 deletions.
4 changes: 2 additions & 2 deletions auto_sync_commit_metadata.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"last_github_commit": "ee4edc1ba4f4eea5e1cabef1d5774016369f0f94",
"last_gitfarm_commit": "1d8a790293f5b8c6ffde6afa21bf8f83ae42c70a"
"last_github_commit": "2b450ef5ed85402c5404ff3482155d6960e8c0ea",
"last_gitfarm_commit": "ea882ef9f8d46e9ab52e122f8bddae6e6759d126"
}
1 change: 1 addition & 0 deletions common/constants/query_assist.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

const QUERY_ASSIST_API_PREFIX = '/api/observability/query_assist';
export const QUERY_ASSIST_API = {
CONFIGURED: `${QUERY_ASSIST_API_PREFIX}/configured`,
GENERATE_PPL: `${QUERY_ASSIST_API_PREFIX}/generate_ppl`,
SUMMARIZE: `${QUERY_ASSIST_API_PREFIX}/summarize`,
};
Expand Down
22 changes: 20 additions & 2 deletions public/components/event_analytics/explorer/explorer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ import {
TAB_EVENT_TITLE,
TIME_INTERVAL_OPTIONS,
} from '../../../../common/constants/explorer';
import { QUERY_ASSIST_API } from '../../../../common/constants/query_assist';
import {
LIVE_END_TIME,
LIVE_OPTIONS,
Expand Down Expand Up @@ -101,8 +102,8 @@ import { selectSearchMetaData } from '../../event_analytics/redux/slices/search_
import { getVizContainerProps } from '../../visualizations/charts/helpers';
import { TabContext, useFetchEvents, useFetchPatterns, useFetchVisualizations } from '../hooks';
import {
selectCountDistribution,
render as updateCountDistribution,
selectCountDistribution,
} from '../redux/slices/count_distribution_slice';
import { selectFields, updateFields } from '../redux/slices/field_slice';
import { selectQueryResult } from '../redux/slices/query_result_slice';
Expand All @@ -112,8 +113,8 @@ import { selectExplorerVisualization } from '../redux/slices/visualization_slice
import {
change as changeVisualizationConfig,
change as changeVizConfig,
selectVisualizationConfig,
change as updateVizConfig,
selectVisualizationConfig,
} from '../redux/slices/viualization_config_slice';
import { getDefaultVisConfig } from '../utils';
import { formatError, getContentTabTitle, getDateRange } from '../utils/utils';
Expand Down Expand Up @@ -217,6 +218,7 @@ export const Explorer = ({
const [subType, setSubType] = useState('visualization');
const [_metricMeasure, setMetricMeasure] = useState('');
const [_metricChecked, setMetricChecked] = useState(false);
const [_refresh, setRefresh] = useState({});
const queryRef = useRef();
const appBasedRef = useRef('');
appBasedRef.current = appBaseQuery;
Expand Down Expand Up @@ -272,6 +274,22 @@ export const Explorer = ({
};
}, []);

useEffect(() => {
// query assist UI should only be enabled when the feature is enabled and configured.
if (coreRefs.queryAssistEnabled) {
http
.get<{ configured: boolean; error?: string }>(QUERY_ASSIST_API.CONFIGURED)
.catch(() => {
console.warn('Failed to check if query assist is configured');
return { configured: false };
})
.then((response) => {
coreRefs.queryAssistEnabled = response.configured;
setRefresh({});
});
}
}, []);

const getErrorHandler = (title: string) => {
return (error: any) => {
if (coreRefs.summarizeEnabled) return;
Expand Down
26 changes: 25 additions & 1 deletion server/routes/query_assist/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
import { isResponseError } from '../../../../../src/core/server/opensearch/client/errors';
import { QUERY_ASSIST_API } from '../../../common/constants/query_assist';
import { generateFieldContext } from '../../common/helpers/query_assist/generate_field_context';
import { requestWithRetryAgentSearch } from './utils/agents';
import { requestWithRetryAgentSearch, searchAgentIdByName } from './utils/agents';

export function registerQueryAssistRoutes(router: IRouter, config: ObservabilityConfig) {
const { ppl_agent_name: pplAgentName } = config.query_assist;
Expand All @@ -22,6 +22,30 @@ export function registerQueryAssistRoutes(router: IRouter, config: Observability
error_summary_agent_name: errorSummaryAgentName,
} = config.summarize;

/**
* Returns whether the PPL agent is configured.
*/
router.get(
{
path: QUERY_ASSIST_API.CONFIGURED,
validate: {},
},
async (
context,
request,
response
): Promise<IOpenSearchDashboardsResponse<any | ResponseError>> => {
const client = context.core.opensearch.client.asCurrentUser;
try {
// if the call does not throw any error, then the agent is properly configured
await searchAgentIdByName(client, pplAgentName!);
return response.ok({ body: { configured: true } });
} catch (error) {
return response.ok({ body: { configured: false, error: error.message } });
}
}
);

router.post(
{
path: QUERY_ASSIST_API.GENERATE_PPL,
Expand Down

0 comments on commit e1d5d94

Please sign in to comment.