Skip to content

Commit

Permalink
feat(discover): add ai assistant prompts to logs overview detail
Browse files Browse the repository at this point in the history
  • Loading branch information
Marco Antonio Ghiani committed Dec 16, 2024
1 parent 612ddaa commit 42e182c
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,18 @@ import { i18n } from '@kbn/i18n';
import { UnifiedDocViewerLogsOverview } from '@kbn/unified-doc-viewer-plugin/public';
import React from 'react';
import type { DocumentProfileProvider } from '../../../../profiles';
import { ProfileProviderServices } from '../../../profile_provider_services';

export const getDocViewer: DocumentProfileProvider['profile']['getDocViewer'] =
(prev) => (params) => {
export const createGetDocViewer =
(services: ProfileProviderServices): DocumentProfileProvider['profile']['getDocViewer'] =>
(prev) =>
(params) => {
const prevDocViewer = prev(params);

const logsAIAssistantFeature = services.discoverShared.features.registry.getById(
'observability-logs-ai-assistant'
);

return {
...prevDocViewer,
docViewsRegistry: (registry) => {
Expand All @@ -25,7 +32,12 @@ export const getDocViewer: DocumentProfileProvider['profile']['getDocViewer'] =
defaultMessage: 'Log overview',
}),
order: 0,
component: (props) => <UnifiedDocViewerLogsOverview {...props} />,
component: (props) => (
<UnifiedDocViewerLogsOverview
{...props}
renderAIAssistant={logsAIAssistantFeature?.render}
/>
),
});

return prevDocViewer.docViewsRegistry(registry);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@
* License v3.0 only", or the "Server Side Public License, v 1".
*/

export { getDocViewer } from './get_doc_viewer';
export { createGetDocViewer } from './get_doc_viewer';
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@
import { DataTableRecord } from '@kbn/discover-utils';
import { DocumentProfileProvider, DocumentType } from '../../../profiles';
import { ProfileProviderServices } from '../../profile_provider_services';
import { getDocViewer } from './accessors';
import { createGetDocViewer } from './accessors';
import { OBSERVABILITY_ROOT_PROFILE_ID } from '../consts';

export const createObservabilityLogDocumentProfileProvider = (
services: ProfileProviderServices
): DocumentProfileProvider => ({
profileId: 'observability-log-document-profile',
profile: {
getDocViewer,
getDocViewer: createGetDocViewer(services),
},
resolve: ({ record, rootContext }) => {
if (rootContext.profileId !== OBSERVABILITY_ROOT_PROFILE_ID) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@ export const LogAIAssistant = ({
return undefined;
}

const message = doc.fields.find((field) => field.field === 'message')?.value[0];

if (!message) {
return undefined;
}

return getContextualInsightMessages({
message:
'Can you explain what this log message means? Where it could be coming from, whether it is expected and whether it is an issue.',
Expand All @@ -53,6 +59,10 @@ export const LogAIAssistant = ({

const message = doc.fields.find((field) => field.field === 'message')?.value[0];

if (!message) {
return undefined;
}

return getContextualInsightMessages({
message: `I'm looking at a log entry. Can you construct a Kibana KQL query that I can enter in the search bar that gives me similar log entries, based on the message field?`,
instructions: JSON.stringify({
Expand All @@ -61,7 +71,9 @@ export const LogAIAssistant = ({
});
}, [getContextualInsightMessages, doc]);

return (
const hasAtLeastOnePrompt = Boolean(explainLogMessageMessages || similarLogMessageMessages);

return hasAtLeastOnePrompt ? (
<EuiFlexGroup direction="column" gutterSize="m">
{ObservabilityAIAssistantContextualInsight && explainLogMessageMessages ? (
<EuiFlexItem grow={false}>
Expand All @@ -82,7 +94,7 @@ export const LogAIAssistant = ({
</EuiFlexItem>
) : null}
</EuiFlexGroup>
);
) : null;
};

// eslint-disable-next-line import/no-default-export
Expand Down

0 comments on commit 42e182c

Please sign in to comment.