Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
2f931c8
Make inference task type configurable
sorenlouv Mar 21, 2025
68819ef
Remove `SelectKnowledgeBaseModel`
sorenlouv Mar 22, 2025
ce96765
Update i18n
sorenlouv Mar 22, 2025
5397a87
Fix functional test
sorenlouv Mar 22, 2025
3770d3f
Improve reindex so it does not delete existing target index
sorenlouv Mar 22, 2025
23b031e
[CI] Auto-commit changed files from 'node scripts/eslint --no-cache -…
kibanamachine Mar 22, 2025
911c947
remove driver import
sorenlouv Mar 22, 2025
be207d6
Rename `alias` to `writeIndexAlias`
sorenlouv Mar 23, 2025
3f193bb
Add missing `concreteWriteIndex`
sorenlouv Mar 24, 2025
5108b7f
Add test for index asserts. Only re-index if there are entries in KB
sorenlouv Mar 24, 2025
3008a8d
Renaming
sorenlouv Mar 24, 2025
d95997e
Merge branch 'make-inference-task-type-configurable' of github.com:so…
sorenlouv Mar 24, 2025
33cb013
Fix tests
sorenlouv Mar 24, 2025
1018f25
Rename re-index test
sorenlouv Mar 24, 2025
73b41db
Remove `elser` from method names
sorenlouv Mar 24, 2025
e03bf88
Merge branch 'main' of github.com:elastic/kibana into make-inference-…
sorenlouv Mar 24, 2025
f8d5630
Submit connectors flyout
sorenlouv Mar 25, 2025
5f81e9b
Call `deleteInferenceEndpoint` from `deleteKnowledgeBaseModel`
sorenlouv Mar 25, 2025
1ef57e1
Call `importTinyElserModel` from `setupKnowledgeBase `
sorenlouv Mar 25, 2025
e1f160f
Fix API tests
sorenlouv Mar 25, 2025
d186006
Call `waitForKnowledgeBaseReady` from `setupKnowledgeBase`
sorenlouv Mar 25, 2025
27e77af
Fix lint issues
sorenlouv Mar 25, 2025
e7d6557
Add `restoreIndexAssets` and use `getAlias` to find current write index
sorenlouv Mar 25, 2025
83fa71a
Require alias to point to write index
sorenlouv Mar 25, 2025
753667e
Add reindex test
sorenlouv Mar 26, 2025
e9683a4
Remove unused test
sorenlouv Mar 26, 2025
901526a
Revert change to use index patterns
sorenlouv Mar 26, 2025
2ff021f
Remove commented out code
sorenlouv Mar 26, 2025
e2fd6c4
Add `terminate_after: 1`
sorenlouv Mar 26, 2025
cfa2e00
Improve tests
sorenlouv Mar 26, 2025
c3f8733
Add `waitForWriteBlockToBeRemoved`
sorenlouv Mar 27, 2025
f94aee0
Add testing around index blocking
sorenlouv Mar 27, 2025
89c0c2b
Improve error message
sorenlouv Mar 27, 2025
f91c479
Improve concurency issues
sorenlouv Mar 27, 2025
6759fb6
Merge branch 'main' of github.com:elastic/kibana into make-inference-…
sorenlouv Mar 27, 2025
b347c15
[CI] Auto-commit changed files from 'node scripts/eslint --no-cache -…
kibanamachine Mar 27, 2025
445de65
Fix lint issue
sorenlouv Mar 27, 2025
3774306
Update x-pack/platform/packages/shared/kbn-ai-assistant/src/knowledge…
sorenlouv Mar 27, 2025
462f035
Fix wording
sorenlouv Mar 27, 2025
a85d610
Use default in function params
sorenlouv Mar 27, 2025
98e3c11
Merge branch 'make-inference-task-type-configurable' of github.com:so…
sorenlouv Mar 27, 2025
6d453cb
[CI] Auto-commit changed files from 'node scripts/eslint --no-cache -…
kibanamachine Mar 27, 2025
d1fb327
Merge branch 'main' into make-inference-task-type-configurable
sorenlouv Apr 1, 2025
208d3bd
Merge branch 'main' of github.com:elastic/kibana into make-inference-…
sorenlouv Apr 3, 2025
5e47832
Fix import
sorenlouv Apr 3, 2025
77bdea9
Merge branch 'main' of github.com:elastic/kibana into make-inference-…
sorenlouv Apr 8, 2025
af38693
Finalize merge resolution
sorenlouv Apr 8, 2025
ea1171a
Simplify reindexing logic
sorenlouv Apr 8, 2025
14583f4
Improve tests
sorenlouv Apr 8, 2025
56c3cf6
Change API to take `inference_id` instead of `model_id`
sorenlouv Apr 11, 2025
61c5fcf
Increase logging
sorenlouv Apr 11, 2025
8771aea
Fix unit test
sorenlouv Apr 11, 2025
d4c9ff0
Merge branch 'main' of github.com:elastic/kibana into make-inference-…
sorenlouv Apr 11, 2025
0ce75b5
Undo client side changes
sorenlouv Apr 11, 2025
2f56793
Use `writeIndexAlias` instead of `indexPatterns` for conversation que…
sorenlouv Apr 11, 2025
20dc795
Merge branch 'main' into make-inference-task-type-configurable
sorenlouv Apr 13, 2025
b3b26a8
Fix lint issues
sorenlouv Apr 13, 2025
90ab9ab
Fix i18n
sorenlouv Apr 13, 2025
ab47c70
Merge branch 'main' of github.com:elastic/kibana into make-inference-…
sorenlouv Apr 14, 2025
917d652
Fix test
sorenlouv Apr 14, 2025
500b49e
Address feedback
sorenlouv Apr 14, 2025
47bbc71
Fix i18n
viduni94 Apr 14, 2025
be6de9b
Merge branch 'main' into make-inference-task-type-configurable
sorenlouv Apr 16, 2025
6570594
Merge branch 'main' into make-inference-task-type-configurable
viduni94 Apr 17, 2025
d6ec1d2
Merge branch 'main' into make-inference-task-type-configurable
viduni94 Apr 20, 2025
fc5bb0b
Merge branch 'main' into make-inference-task-type-configurable
viduni94 Apr 21, 2025
3984665
Merge branch 'main' into make-inference-task-type-configurable
viduni94 Apr 21, 2025
6649b50
When trained model stats are not found, return not_installed instead …
viduni94 Apr 21, 2025
1d17118
Merge branch 'main' into make-inference-task-type-configurable
viduni94 Apr 21, 2025
250c147
Merge branch 'main' into make-inference-task-type-configurable
viduni94 Apr 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import type { ActionConnector } from '@kbn/triggers-actions-ui-plugin/public';
import { GenerativeAIForObservabilityConnectorFeatureId } from '@kbn/actions-plugin/common';
import { isSupportedConnectorType } from '@kbn/inference-common';
import { AssistantBeacon } from '@kbn/ai-assistant-icon';
import { KnowledgeBaseState } from '@kbn/observability-ai-assistant-plugin/public';
import type { UseKnowledgeBaseResult } from '../hooks/use_knowledge_base';
import type { UseGenAIConnectorsResult } from '../hooks/use_genai_connectors';
import { Disclaimer } from './disclaimer';
Expand Down Expand Up @@ -61,13 +60,6 @@ export function WelcomeMessage({
if (isSupportedConnectorType(createdConnector.actionTypeId)) {
connectors.reloadConnectors();
}

if (
!knowledgeBase.status.value ||
knowledgeBase.status.value?.kbState === KnowledgeBaseState.NOT_INSTALLED
) {
knowledgeBase.install();
}
};

const ConnectorFlyout = useMemo(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ import usePrevious from 'react-use/lib/usePrevious';
import { WelcomeMessageKnowledgeBaseSetupErrorPanel } from './welcome_message_knowledge_base_setup_error_panel';
import { UseKnowledgeBaseResult } from '../hooks';

const inferenceId = '.elser-2-elasticsearch'; // TODO: remove hardcoded inferenceId

const SettingUpKnowledgeBase = () => (
<>
<EuiText color="subdued" size="s">
Expand Down Expand Up @@ -56,7 +58,7 @@ const InspectKnowledgeBasePopover = ({

const handleInstall = async () => {
setIsPopoverOpen(false);
await knowledgeBase.install();
await knowledgeBase.install(inferenceId);
};

return knowledgeBase.status.value?.modelStats ? (
Expand Down Expand Up @@ -101,7 +103,7 @@ export function WelcomeMessageKnowledgeBase({
}, [knowledgeBase.isInstalling, prevIsInstalling]);

const install = async () => {
await knowledgeBase.install();
await knowledgeBase.install(inferenceId);
};

if (knowledgeBase.isInstalling) return <SettingUpKnowledgeBase />;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,14 +73,19 @@ describe('useKnowledgeBase', () => {

// Trigger setup
act(() => {
result.current.install();
result.current.install('.elser-2-elasticsearch');
});

// Verify that the install was called
await waitFor(() => {
expect(mockCallApi).toHaveBeenCalledWith(
'POST /internal/observability_ai_assistant/kb/setup',
{
params: {
query: {
inference_id: '.elser-2-elasticsearch',
},
},
signal: null,
}
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export interface UseKnowledgeBaseResult {
status: AbortableAsyncState<APIReturnType<'GET /internal/observability_ai_assistant/kb/status'>>;
isInstalling: boolean;
isPolling: boolean;
install: () => Promise<void>;
install: (inferenceId: string) => Promise<void>;
}

export function useKnowledgeBase(): UseKnowledgeBaseResult {
Expand All @@ -44,36 +44,44 @@ export function useKnowledgeBase(): UseKnowledgeBaseResult {
}
}, [isInstalling, statusRequest]);

const install = useCallback(async () => {
setIsInstalling(true);
try {
// Retry the setup with a maximum of 5 attempts
await pRetry(
async () => {
await service.callApi('POST /internal/observability_ai_assistant/kb/setup', {
signal: null,
});
},
{
retries: 5,
const install = useCallback(
async (inferenceId: string) => {
setIsInstalling(true);
try {
// Retry the setup with a maximum of 5 attempts
await pRetry(
async () => {
await service.callApi('POST /internal/observability_ai_assistant/kb/setup', {
params: {
query: {
inference_id: inferenceId,
},
},
signal: null,
});
},
{
retries: 5,
}
);
if (ml.mlApi?.savedObjects.syncSavedObjects) {
await ml.mlApi.savedObjects.syncSavedObjects();
}
);
if (ml.mlApi?.savedObjects.syncSavedObjects) {
await ml.mlApi.savedObjects.syncSavedObjects();
}

// Refresh status after installation
statusRequest.refresh();
} catch (error) {
notifications!.toasts.addError(error, {
title: i18n.translate('xpack.aiAssistant.errorSettingUpInferenceEndpoint', {
defaultMessage: 'Could not create inference endpoint',
}),
});
}
}, [ml, service, notifications, statusRequest]);
// Refresh status after installation
statusRequest.refresh();
} catch (error) {
notifications!.toasts.addError(error, {
title: i18n.translate('xpack.aiAssistant.errorSettingUpKnowledgeBase', {
defaultMessage: 'Could not setup knowledge base',
}),
});
}
},
[ml, service, notifications, statusRequest]
);

// poll the status if isPolling (inference endpoint is created but deployment is not ready)
// poll the status if isPolling
useEffect(() => {
if (!isPolling) {
return;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/

import React, { useEffect, useMemo } from 'react';
import { EuiSelect } from '@elastic/eui';

export function SelectKnowledgeBaseModel({
onSelectInferenceId,
inferenceId,
}: {
onSelectInferenceId: (inferenceId: string) => void;
inferenceId: string;
}) {
const inferenceEndpoints: Array<{ id: string; label: string }> = useMemo(
() => [
{
label: 'ELSER v2 (English-only)',
id: '.elser-2-elasticsearch',
},
{
label: 'E5 Small (Multilingual)',
id: '.multilingual-e5-small-elasticsearch',
},
],
[]
);

useEffect(() => {
if (!inferenceId) {
onSelectInferenceId(inferenceEndpoints[0].id);
}
}, [inferenceId, inferenceEndpoints, onSelectInferenceId]);

return (
<EuiSelect
fullWidth
data-test-subj="observabilityAiAssistantKbModelSelect"
options={inferenceEndpoints.map(({ label, id }) => ({ value: id, text: label }))}
onChange={(event) => {
const inferenceEndpoint = inferenceEndpoints.find(({ id }) => id === event.target.value)!;
onSelectInferenceId(inferenceEndpoint.id);
}}
value={inferenceId}
/>
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -10175,7 +10175,6 @@
"xpack.aiAssistant.couldNotFindConversationTitle": "Conversation introuvable",
"xpack.aiAssistant.disclaimer.disclaimerLabel": "Ce chat est alimenté par une intégration avec votre fournisseur LLM. Il arrive que les grands modèles de langage (LLM) présentent comme correctes des informations incorrectes. Elastic prend en charge la configuration ainsi que la connexion au fournisseur LLM et à votre base de connaissances, mais n'est pas responsable des réponses fournies par le LLM.",
"xpack.aiAssistant.emptyConversationTitle": "Nouvelle conversation",
"xpack.aiAssistant.errorSettingUpInferenceEndpoint": "Impossible de créer le point de terminaison d'inférence",
"xpack.aiAssistant.errorUpdatingConversation": "Impossible de mettre à jour la conversation",
"xpack.aiAssistant.executedFunctionFailureEvent": "impossible d'exécuter la fonction {functionName}",
"xpack.aiAssistant.flyout.confirmDeleteButtonText": "Supprimer la conversation",
Expand Down Expand Up @@ -18632,6 +18631,9 @@
"xpack.fleet.agentLogs.logLevelSelectText": "Niveau du log",
"xpack.fleet.agentLogs.oldAgentWarningTitle": "La vue Logs requiert Elastic Agent 7.11 ou une version ultérieure. Pour mettre à niveau un agent, accédez au menu Actions ou {downloadLink} une version plus récente.",
"xpack.fleet.agentLogs.openInDiscoverUiLinkText": "Ouvrir dans Discover",
"xpack.fleet.agentLogs.resetLogLevel.errorTitleText": "Erreur lors de la réinitialisation du niveau de logging de l'agent",
"xpack.fleet.agentLogs.resetLogLevel.successText": "Réinitialiser le niveau de logging de l'agent pour la politique",
"xpack.fleet.agentLogs.resetLogLevelLabelText": "Réinitialiser pour rétablir la politique",
"xpack.fleet.agentLogs.searchPlaceholderText": "Rechercher dans les logs…",
"xpack.fleet.agentLogs.selectLogLevel.errorTitleText": "Erreur lors de la mise à jour du niveau de logging de l'agent",
"xpack.fleet.agentLogs.selectLogLevel.successText": "Modification du niveau de logging de l'agent en \"{logLevel}\"",
Expand Down Expand Up @@ -27807,6 +27809,7 @@
"xpack.ml.dataVisualizer.pageHeader": "Data Visualizer (Visualiseur de données)",
"xpack.ml.datavisualizer.selector.dataVisualizerDescription": "L'outil de Machine Learning Data Visualizer (Visualiseur de données) vous aide à comprendre vos données en analysant les indicateurs et les champs dans un fichier log ou un index Elasticsearch existant.",
"xpack.ml.datavisualizer.selector.dataVisualizerTitle": "Data Visualizer (Visualiseur de données)",
"xpack.ml.datavisualizer.selector.esqlTechnicalPreviewBadge.titleMsg": "Le visualiseur de données ES|QL est en version préliminaire technique.",
"xpack.ml.datavisualizer.selector.importDataTitle": "Visualiser les données à partir d'un fichier",
"xpack.ml.datavisualizer.selector.selectDataViewButtonLabel": "Sélectionner la vue de données",
"xpack.ml.datavisualizer.selector.selectDataViewTitle": "Visualiser les données à partir d'une vue de données",
Expand Down Expand Up @@ -27853,6 +27856,7 @@
"xpack.ml.deepLink.overview": "Aperçu",
"xpack.ml.deepLink.resultExplorer": "Explorateur de résultats",
"xpack.ml.deepLink.singleMetricViewer": "Visionneuse d’indicateur unique",
"xpack.ml.deepLink.suppliedConfigurations": "Configurations fournies",
"xpack.ml.deleteSpaceAwareItemCheckModal.buttonTextCanDelete.job": "Continuer pour supprimer {length, plural, one {# tâche} other {# tâches}}",
"xpack.ml.deleteSpaceAwareItemCheckModal.buttonTextCanDelete.model": "Continuer pour supprimer {length, plural, one {# modèle} other {# modèles}}",
"xpack.ml.deleteSpaceAwareItemCheckModal.buttonTextCanUnTagConfirm": "Retirer de l'espace en cours",
Expand Down Expand Up @@ -32675,6 +32679,20 @@
"xpack.observabilityShared.bottomBarActions.unsavedChanges": "{unsavedChangesCount, plural, =0{0 modification non enregistrée} one {1 modification non enregistrée} other {# modifications non enregistrées}}",
"xpack.observabilityShared.breadcrumbs.observabilityLinkText": "Observabilité",
"xpack.observabilityShared.common.constants.grouping": "Observabilité",
"xpack.observabilityShared.experimentalOnboardingFlow.browseDocumentationFlexItemDescription": "Guides détaillés des fonctionnalités d'Elastic",
"xpack.observabilityShared.experimentalOnboardingFlow.browseDocumentationFlexItemLabel": "Parcourir la documentation",
"xpack.observabilityShared.experimentalOnboardingFlow.browseDocumentationFlexItemLinkARIALabel": "En savoir plus sur toutes les fonctionnalités d'Elastic",
"xpack.observabilityShared.experimentalOnboardingFlow.browseDocumentationFlexItemLinkLabel": "En savoir plus",
"xpack.observabilityShared.experimentalOnboardingFlow.demoEnvironmentFlexItemDescription": "Explorer notre environnement de démonstration en direct",
"xpack.observabilityShared.experimentalOnboardingFlow.demoEnvironmentFlexItemLabel": "Environnement de démonstration",
"xpack.observabilityShared.experimentalOnboardingFlow.demoEnvironmentFlexItemLinkLabel": "Explorer la démonstration",
"xpack.observabilityShared.experimentalOnboardingFlow.exploreForumFlexItemDescription": "Échanger à propos d'Elastic",
"xpack.observabilityShared.experimentalOnboardingFlow.exploreForumFlexItemLabel": "Explorer le forum",
"xpack.observabilityShared.experimentalOnboardingFlow.exploreForumFlexItemLinkARIALabel": "Ouvrir le forum de discussion sur Elastic",
"xpack.observabilityShared.experimentalOnboardingFlow.exploreForumFlexItemLinkLabel": "Forum de discussion",
"xpack.observabilityShared.experimentalOnboardingFlow.supportHubFlexItemDescription": "Obtenez de l'aide dans l’ouverture d’un cas",
"xpack.observabilityShared.experimentalOnboardingFlow.supportHubFlexItemLabel": "Hub de support technique",
"xpack.observabilityShared.experimentalOnboardingFlow.supportHubFlexItemLinkLabel": "Ouvrir le Hub de support technique",
"xpack.observabilityShared.featureFeedbackButton.tellUsWhatYouThinkLink": "Dites-nous ce que vous pensez !",
"xpack.observabilityShared.fieldValueSelection.apply": "Appliquer",
"xpack.observabilityShared.fieldValueSelection.apply.label": "Appliquer les filtres sélectionnés pour {label}",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10166,7 +10166,6 @@
"xpack.aiAssistant.couldNotFindConversationTitle": "会話が見つかりません",
"xpack.aiAssistant.disclaimer.disclaimerLabel": "この会話は、LLMプロバイダーとの統合によって提供されています。LLMは、正しくない情報を正しい情報であるかのように表示する場合があることが知られています。Elasticは、構成やLLMプロバイダーへの接続、お客様のナレッジベースへの接続はサポートしますが、LLMの応答については責任を負いません。",
"xpack.aiAssistant.emptyConversationTitle": "新しい会話",
"xpack.aiAssistant.errorSettingUpInferenceEndpoint": "推論エンドポイントを作成できませんでした",
"xpack.aiAssistant.errorUpdatingConversation": "会話を更新できませんでした",
"xpack.aiAssistant.executedFunctionFailureEvent": "関数{functionName}の実行に失敗しました",
"xpack.aiAssistant.flyout.confirmDeleteButtonText": "会話を削除",
Expand Down Expand Up @@ -18608,6 +18607,9 @@
"xpack.fleet.agentLogs.logLevelSelectText": "ログレベル",
"xpack.fleet.agentLogs.oldAgentWarningTitle": "ログの表示には、Elastic Agent 7.11以降が必要です。エージェントをアップグレードするには、[アクション]メニューに移動するか、新しいバージョンを{downloadLink}。",
"xpack.fleet.agentLogs.openInDiscoverUiLinkText": "Discoverで開く",
"xpack.fleet.agentLogs.resetLogLevel.errorTitleText": "エージェントログレベルのリセットエラー",
"xpack.fleet.agentLogs.resetLogLevel.successText": "エージェントログレベルをポリシーにリセット",
"xpack.fleet.agentLogs.resetLogLevelLabelText": "ポリシーにリセット",
"xpack.fleet.agentLogs.searchPlaceholderText": "ログを検索…",
"xpack.fleet.agentLogs.selectLogLevel.errorTitleText": "エージェントログレベルの更新エラー",
"xpack.fleet.agentLogs.selectLogLevel.successText": "エージェントログレベルを''{logLevel}''に変更しました",
Expand Down Expand Up @@ -27831,6 +27833,7 @@
"xpack.ml.deepLink.overview": "概要",
"xpack.ml.deepLink.resultExplorer": "結果エクスプローラー",
"xpack.ml.deepLink.singleMetricViewer": "シングルメトリックビューアー",
"xpack.ml.deepLink.suppliedConfigurations": "提供された構成",
"xpack.ml.deleteSpaceAwareItemCheckModal.buttonTextCanDelete.job": "続行して、{length, plural, other {# 個のジョブ}}を削除します",
"xpack.ml.deleteSpaceAwareItemCheckModal.buttonTextCanDelete.model": "続行して、{length, plural, other {# 個のモデル}}を削除します",
"xpack.ml.deleteSpaceAwareItemCheckModal.buttonTextCanUnTagConfirm": "現在のスペースから削除",
Expand Down Expand Up @@ -32655,6 +32658,20 @@
"xpack.observabilityShared.bottomBarActions.unsavedChanges": "{unsavedChangesCount, plural, other {# 未保存変更}}",
"xpack.observabilityShared.breadcrumbs.observabilityLinkText": "Observability",
"xpack.observabilityShared.common.constants.grouping": "Observability",
"xpack.observabilityShared.experimentalOnboardingFlow.browseDocumentationFlexItemDescription": "すべてのElastic機能に関する詳細なガイド",
"xpack.observabilityShared.experimentalOnboardingFlow.browseDocumentationFlexItemLabel": "ドキュメントを参照",
"xpack.observabilityShared.experimentalOnboardingFlow.browseDocumentationFlexItemLinkARIALabel": "すべてのElastic機能の詳細",
"xpack.observabilityShared.experimentalOnboardingFlow.browseDocumentationFlexItemLinkLabel": "詳細",
"xpack.observabilityShared.experimentalOnboardingFlow.demoEnvironmentFlexItemDescription": "Elasticのライブデモを見る",
"xpack.observabilityShared.experimentalOnboardingFlow.demoEnvironmentFlexItemLabel": "デモ環境",
"xpack.observabilityShared.experimentalOnboardingFlow.demoEnvironmentFlexItemLinkLabel": "デモの探索",
"xpack.observabilityShared.experimentalOnboardingFlow.exploreForumFlexItemDescription": "Elasticに関する意見を交換",
"xpack.observabilityShared.experimentalOnboardingFlow.exploreForumFlexItemLabel": "フォーラムを探索",
"xpack.observabilityShared.experimentalOnboardingFlow.exploreForumFlexItemLinkARIALabel": "Elasticディスカッションフォーラムを開く",
"xpack.observabilityShared.experimentalOnboardingFlow.exploreForumFlexItemLinkLabel": "ディスカッションフォーラム",
"xpack.observabilityShared.experimentalOnboardingFlow.supportHubFlexItemDescription": "ケースを作成してヘルプを依頼",
"xpack.observabilityShared.experimentalOnboardingFlow.supportHubFlexItemLabel": "サポートハブ",
"xpack.observabilityShared.experimentalOnboardingFlow.supportHubFlexItemLinkLabel": "サポートハブを開く",
"xpack.observabilityShared.featureFeedbackButton.tellUsWhatYouThinkLink": "ご意見をお聞かせください。",
"xpack.observabilityShared.fieldValueSelection.apply": "適用",
"xpack.observabilityShared.fieldValueSelection.apply.label": "{label}に選択したフィルターを適用",
Expand Down
Loading