mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
# Backport This will backport the following commits from `main` to `8.11`: - [profiling: fix binary instructions (#169215)](https://github.com/elastic/kibana/pull/169215) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Francesco Gualazzi","email":"inge4pres@users.noreply.github.com"},"sourceCommit":{"committedDate":"2023-10-24T09:47:49Z","message":"profiling: fix binary instructions (#169215)\n\n## Summary\r\n\r\nFix a bug in the Universal Profiling instructions \"Binary\" tab, due to\r\nhow packages are created.\r\n\r\nSigned-off-by: inge4pres <francesco.gualazzi@elastic.co>","sha":"90da0214604dc8f497d997def664dab5b26543f2","branchLabelMapping":{"^v8.12.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["bug","backport","release_note:skip","ci:cloud-deploy","ci:cloud-redeploy","v8.11.0","v8.12.0","v8.11.1","v8.10.5"],"number":169215,"url":"https://github.com/elastic/kibana/pull/169215","mergeCommit":{"message":"profiling: fix binary instructions (#169215)\n\n## Summary\r\n\r\nFix a bug in the Universal Profiling instructions \"Binary\" tab, due to\r\nhow packages are created.\r\n\r\nSigned-off-by: inge4pres <francesco.gualazzi@elastic.co>","sha":"90da0214604dc8f497d997def664dab5b26543f2"}},"sourceBranch":"main","suggestedTargetBranches":["8.11","8.10"],"targetPullRequestStates":[{"branch":"8.11","label":"v8.11.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.12.0","labelRegex":"^v8.12.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/169215","number":169215,"mergeCommit":{"message":"profiling: fix binary instructions (#169215)\n\n## Summary\r\n\r\nFix a bug in the Universal Profiling instructions \"Binary\" tab, due to\r\nhow packages are created.\r\n\r\nSigned-off-by: inge4pres <francesco.gualazzi@elastic.co>","sha":"90da0214604dc8f497d997def664dab5b26543f2"}},{"branch":"8.10","label":"v8.10.5","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT-->
This commit is contained in:
parent
cc59e06bff
commit
43ad7c634d
5 changed files with 460 additions and 437 deletions
|
@ -10,7 +10,7 @@ import {
|
|||
profilingPerCoreWatt,
|
||||
} from '@kbn/observability-plugin/common';
|
||||
|
||||
describe('Functions page', () => {
|
||||
describe.skip('Functions page', () => {
|
||||
const rangeFrom = '2023-04-18T00:00:00.000Z';
|
||||
const rangeTo = '2023-04-18T00:00:30.000Z';
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* 2.0.
|
||||
*/
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import React from 'react';
|
||||
import React, { useEffect, useMemo, useState } from 'react';
|
||||
import {
|
||||
EuiButton,
|
||||
EuiCallOut,
|
||||
|
@ -43,11 +43,26 @@ export enum AddDataTabs {
|
|||
Symbols = 'symbols',
|
||||
}
|
||||
|
||||
interface Step {
|
||||
title: string;
|
||||
content: string | React.ReactNode;
|
||||
}
|
||||
|
||||
interface Tab {
|
||||
key: string;
|
||||
title: string;
|
||||
steps?: Step[];
|
||||
subTabs?: Tab[];
|
||||
}
|
||||
|
||||
const supportedCPUArchitectures = ['x86_64', 'arm64'];
|
||||
|
||||
export function AddDataView() {
|
||||
const { query } = useProfilingParams('/add-data-instructions');
|
||||
const { selectedTab } = query;
|
||||
const profilingRouter = useProfilingRouter();
|
||||
const routePath = useProfilingRoutePath();
|
||||
const [selectedSubTabKey, setSelectedSubTabKey] = useState<string | undefined>();
|
||||
|
||||
const {
|
||||
services: { setupDataCollectionInstructions },
|
||||
|
@ -67,393 +82,429 @@ export function AddDataView() {
|
|||
const stackVersion = data?.stackVersion!;
|
||||
const majorVersion = stackVersion ? major(stackVersion).toString() : undefined;
|
||||
|
||||
const tabs = [
|
||||
{
|
||||
key: AddDataTabs.Kubernetes,
|
||||
title: i18n.translate('xpack.profiling.tabs.kubernetesTitle', {
|
||||
defaultMessage: 'Kubernetes',
|
||||
}),
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.kubernetesRepositoryStep', {
|
||||
defaultMessage: 'Configure the Universal Profiling host-agent Helm repository:',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
helm repo add elastic https://helm.elastic.co
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.kubernetesInstallStep', {
|
||||
defaultMessage: 'Install host-agent via Helm:',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`helm install --create-namespace -n=universal-profiling universal-profiling-agent \\
|
||||
const tabs: Tab[] = useMemo(
|
||||
() => [
|
||||
{
|
||||
key: AddDataTabs.Kubernetes,
|
||||
title: i18n.translate('xpack.profiling.tabs.kubernetesTitle', {
|
||||
defaultMessage: 'Kubernetes',
|
||||
}),
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.kubernetesRepositoryStep', {
|
||||
defaultMessage: 'Configure the Universal Profiling Agent Helm repository:',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{i18n.translate('xpack.profiling.tabs.helmRepoAddElasticCodeBlockLabel', {
|
||||
defaultMessage: 'helm repo add elastic https://helm.elastic.co',
|
||||
})}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.kubernetesInstallStep', {
|
||||
defaultMessage: 'Install host-agent via Helm:',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`helm install --create-namespace -n=universal-profiling universal-profiling-agent \\
|
||||
--set "projectID=1,secretToken=${secretToken}" \\
|
||||
--set "collectionAgentHostPort=${collectionAgentHost}" \\
|
||||
--set "version=${stackVersion}" \\
|
||||
--version=${stackVersion} \\
|
||||
elastic/pf-host-agent`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.kubernetesValidationStep', {
|
||||
defaultMessage: 'Validate the host-agent pods are running:',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
kubectl -n universal-profiling get pods
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.postValidationStep', {
|
||||
defaultMessage:
|
||||
'Use the Helm install output to get host-agent logs and spot potential errors',
|
||||
}),
|
||||
content: <></>,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: AddDataTabs.Docker,
|
||||
title: i18n.translate('xpack.profiling.tabs.dockerTitle', {
|
||||
defaultMessage: 'Docker',
|
||||
}),
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.dockerRunContainerStep', {
|
||||
defaultMessage: 'Run the Universal Profiling container:',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`docker run --name pf-host-agent --privileged --pid=host -v /etc/machine-id:/etc/machine-id:ro \\
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.kubernetesValidationStep', {
|
||||
defaultMessage: 'Validate the host-agent pods are running:',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{i18n.translate('xpack.profiling.tabs.kubectlGetPods', {
|
||||
defaultMessage: 'kubectl -n universal-profiling get pods',
|
||||
})}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.postValidationStep', {
|
||||
defaultMessage:
|
||||
'Use the Helm install output to get host-agent logs and spot potential errors',
|
||||
}),
|
||||
content: <></>,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: AddDataTabs.Docker,
|
||||
title: i18n.translate('xpack.profiling.tabs.dockerTitle', {
|
||||
defaultMessage: 'Docker',
|
||||
}),
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.dockerRunContainerStep', {
|
||||
defaultMessage: 'Run the Universal Profiling container:',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`docker run --name pf-host-agent --privileged --pid=host -v /etc/machine-id:/etc/machine-id:ro \\
|
||||
-v /var/run/docker.sock:/var/run/docker.sock -v /sys/kernel/debug:/sys/kernel/debug:ro \\
|
||||
docker.elastic.co/observability/profiling-agent:${stackVersion} /root/pf-host-agent \\
|
||||
-project-id=1 -secret-token=${secretToken} \\
|
||||
-collection-agent=${collectionAgentHost}`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: AddDataTabs.Binary,
|
||||
title: i18n.translate('xpack.profiling.tabs.binaryTitle', {
|
||||
defaultMessage: 'Binary',
|
||||
}),
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.binaryDownloadStep', {
|
||||
defaultMessage: 'Download the binary for the right architecture:',
|
||||
}),
|
||||
content: (
|
||||
<EuiText>
|
||||
<b>For x86_64:</b>
|
||||
<EuiSpacer size="s" />
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`wget -O pf-host-agent.tgz "https://artifacts.elastic.co/downloads/prodfiler/pf-host-agent-${stackVersion}-linux-x86_64.tar.gz" && tar xzf pf-host-agent.tgz`}
|
||||
</EuiCodeBlock>
|
||||
<EuiSpacer size="m" />
|
||||
<b>For ARM64:</b>
|
||||
<EuiSpacer size="s" />
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`wget -O pf-host-agent.tgz "https://artifacts.elastic.co/downloads/prodfiler/pf-host-agent-${stackVersion}-linux-arm64.tar.gz" && tar xzf pf-host-agent.tgz`}
|
||||
</EuiCodeBlock>
|
||||
</EuiText>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.binaryGrantPermissionStep', {
|
||||
defaultMessage: 'Grant executable permissions:',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
chmod +x pf-host-agent/pf-host-agent
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.binaryRunHostAgentStep', {
|
||||
defaultMessage: 'Run the Universal Profiling host-agent (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`sudo pf-host-agent/pf-host-agent -project-id=1 -secret-token=${secretToken} -collection-agent=${collectionAgentHost}`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: AddDataTabs.Deb,
|
||||
title: i18n.translate('xpack.profiling.tabs.debTitle', {
|
||||
defaultMessage: 'DEB Package',
|
||||
}),
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.debConfigureRepoStep', {
|
||||
defaultMessage: 'Configure the apt repository (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
|
||||
sudo apt-get install apt-transport-https
|
||||
echo "deb https://artifacts.elastic.co/packages/${majorVersion}.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-${majorVersion}.x.list
|
||||
`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.debInstallPackageStep', {
|
||||
defaultMessage: 'Install the DEB package (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`sudo apt-get update && sudo apt-get install pf-host-agent`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.debEditConfigStep', {
|
||||
defaultMessage: 'Edit the configuration (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`echo -e "project-id 1\nsecret-token ${secretToken}\ncollection-agent ${collectionAgentHost}" | sudo tee -a /etc/Elastic/universal-profiling/pf-host-agent.conf`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.debStartSystemdServiceStep', {
|
||||
defaultMessage:
|
||||
'Start the Universal Profiling systemd service (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`sudo systemctl enable pf-host-agent && sudo systemctl restart pf-host-agent`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: AddDataTabs.RPM,
|
||||
title: i18n.translate('xpack.profiling.tabs.rpmTitle', {
|
||||
defaultMessage: 'RPM Package',
|
||||
}),
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.rpmConfigureRepoStep', {
|
||||
defaultMessage: 'Configure the yum repository (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
|
||||
cat <<EOF > /etc/yum.repos.d/elastic.repo
|
||||
[elastic-${majorVersion}.x]
|
||||
name=Elastic repository for ${majorVersion}.x packages
|
||||
baseurl=https://artifacts.elastic.co/packages/${majorVersion}.x/yum
|
||||
gpgcheck=1
|
||||
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
|
||||
enabled=1
|
||||
autorefresh=1
|
||||
type=rpm-md
|
||||
EOF`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.rpmInstallPackageStep', {
|
||||
defaultMessage: 'Install the RPM package (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`sudo yum install pf-host-agent`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.rpmEditConfigStep', {
|
||||
defaultMessage: 'Edit the configuration (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`echo -e "project-id 1\nsecret-token ${secretToken}\ncollection-agent ${collectionAgentHost}" | sudo tee -a /etc/Elastic/universal-profiling/pf-host-agent.conf`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.rpmStartSystemdServiceStep', {
|
||||
defaultMessage:
|
||||
'Start the Universal Profiling systemd service (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`sudo systemctl enable pf-host-agent && sudo systemctl restart pf-host-agent`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: AddDataTabs.ElasticAgentIntegration,
|
||||
title: i18n.translate('xpack.profiling.tabs.elasticAgentIntegration.title', {
|
||||
defaultMessage: 'Elastic Agent Integration',
|
||||
}),
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.elasticAgentIntegration.step1', {
|
||||
defaultMessage: 'Copy credentials',
|
||||
}),
|
||||
content: (
|
||||
<>
|
||||
<EuiText>
|
||||
{i18n.translate('xpack.profiling.tabs.elasticAgentIntegration.step1.hint', {
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: AddDataTabs.Binary,
|
||||
title: i18n.translate('xpack.profiling.tabs.binaryTitle', {
|
||||
defaultMessage: 'Binary',
|
||||
}),
|
||||
// Create a dedicated sub tab for each architecture that we support
|
||||
subTabs: supportedCPUArchitectures.map((arch) => {
|
||||
return {
|
||||
key: arch,
|
||||
title: `Linux ${arch}`,
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.binaryDownloadStep', {
|
||||
defaultMessage: 'Download the binary:',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`wget -O pf-host-agent.tgz "https://artifacts.elastic.co/downloads/prodfiler/pf-host-agent-${stackVersion}-linux-${arch}.tar.gz" && tar xzf pf-host-agent.tgz`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.binaryGrantPermissionStep', {
|
||||
defaultMessage: 'Grant executable permissions:',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`chmod +x pf-host-agent-${stackVersion}-linux-${arch}/pf-host-agent`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.binaryRunHostAgentStep', {
|
||||
defaultMessage:
|
||||
"You'll need these credentials to set up Universal Profiling. Please save them in a secure location, as they will be required in the subsequent step.",
|
||||
})}
|
||||
</EuiText>
|
||||
<EuiSpacer />
|
||||
<EuiText style={{ fontWeight: 'bold' }} size="s">
|
||||
{i18n.translate('xpack.profiling.tabs.elasticAgentIntegration.step1.secretToken', {
|
||||
defaultMessage: 'Secret token:',
|
||||
})}
|
||||
</EuiText>
|
||||
'Run the Universal Profiling host-agent (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`sudo pf-host-agent-${stackVersion}-linux-${arch}/pf-host-agent -project-id=1 -secret-token=${secretToken} -collection-agent=${collectionAgentHost}`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
],
|
||||
};
|
||||
}),
|
||||
},
|
||||
{
|
||||
key: AddDataTabs.Deb,
|
||||
title: i18n.translate('xpack.profiling.tabs.debTitle', {
|
||||
defaultMessage: 'DEB Package',
|
||||
}),
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.debConfigureRepoStep', {
|
||||
defaultMessage: 'Configure the apt repository (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{secretToken}
|
||||
{`wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
|
||||
sudo apt-get install apt-transport-https
|
||||
echo "deb https://artifacts.elastic.co/packages/${majorVersion}.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-${majorVersion}.x.list
|
||||
`}
|
||||
</EuiCodeBlock>
|
||||
<EuiSpacer size="s" />
|
||||
<EuiText style={{ fontWeight: 'bold' }} size="s">
|
||||
{i18n.translate(
|
||||
'xpack.profiling.tabs.elasticAgentIntegration.step1.collectionAgentUrl',
|
||||
{ defaultMessage: 'Universal Profiling Collector URL:' }
|
||||
)}
|
||||
</EuiText>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.debInstallPackageStep', {
|
||||
defaultMessage: 'Install the DEB package (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{collectionAgentHost}
|
||||
{`sudo apt-get update && sudo apt-get install pf-host-agent`}
|
||||
</EuiCodeBlock>
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.elasticAgentIntegration.step2', {
|
||||
defaultMessage: 'Fleet',
|
||||
}),
|
||||
content: (
|
||||
<EuiButton
|
||||
data-test-subj="profilingAddDataViewManageUniversalProfilingAgentInFleetButton"
|
||||
iconType="gear"
|
||||
fill
|
||||
href={`${core.http.basePath.prepend(
|
||||
`/app/integrations/detail/profiler_agent-${data?.profilerAgent.version}/overview`
|
||||
)}`}
|
||||
>
|
||||
{i18n.translate('xpack.profiling.tabs.elasticAgentIntegration.step2.button', {
|
||||
defaultMessage: 'Manage Universal Profiling agent in Fleet',
|
||||
})}
|
||||
</EuiButton>
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: AddDataTabs.Symbols,
|
||||
title: i18n.translate('xpack.profiling.tabs.symbols.title', {
|
||||
defaultMessage: 'Upload Symbols',
|
||||
}),
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.symbols.step1', {
|
||||
defaultMessage: 'Download and extract symbtool',
|
||||
}),
|
||||
content: (
|
||||
<EuiText>
|
||||
<b>For x86_64:</b>
|
||||
<EuiSpacer size="s" />
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.debEditConfigStep', {
|
||||
defaultMessage: 'Edit the configuration (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`wget -O symbtool-amd64.tgz "https://artifacts.elastic.co/downloads/prodfiler/symbtool-${stackVersion}-linux-x86_64.tar.gz" && tar xzf symbtool-amd64.tgz && cd symbtool-*-linux-x86_64`}
|
||||
{`echo -e "project-id 1\nsecret-token ${secretToken}\ncollection-agent ${collectionAgentHost}" | sudo tee -a /etc/Elastic/universal-profiling/pf-host-agent.conf`}
|
||||
</EuiCodeBlock>
|
||||
<EuiSpacer size="m" />
|
||||
<b>For ARM64:</b>
|
||||
<EuiSpacer size="s" />
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.debStartSystemdServiceStep', {
|
||||
defaultMessage:
|
||||
'Start the Universal Profiling systemd service (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`wget -O symbtool-arm64.tgz "https://artifacts.elastic.co/downloads/prodfiler/pf-host-agent-${stackVersion}-linux-arm64.tar.gz" && tar xzf symbtool-arm64.tgz && cd symbtool-*-linux-arm64`}
|
||||
{`sudo systemctl enable pf-host-agent && sudo systemctl restart pf-host-agent`}
|
||||
</EuiCodeBlock>
|
||||
</EuiText>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.symbols.step2', {
|
||||
defaultMessage: 'Generate an Elasticsearch token',
|
||||
}),
|
||||
content: (
|
||||
<EuiText>
|
||||
<EuiLink
|
||||
data-test-subj="profilingAddDataViewInstructionsHereLink"
|
||||
target="_blank"
|
||||
href={`https://www.elastic.co/guide/en/kibana/master/api-keys.html`}
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: AddDataTabs.RPM,
|
||||
title: i18n.translate('xpack.profiling.tabs.rpmTitle', {
|
||||
defaultMessage: 'RPM Package',
|
||||
}),
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.rpmConfigureRepoStep', {
|
||||
defaultMessage: 'Configure the yum repository (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
|
||||
cat <<EOF > /etc/yum.repos.d/elastic.repo
|
||||
[elastic-${majorVersion}.x]
|
||||
name=Elastic repository for ${majorVersion}.x packages
|
||||
baseurl=https://artifacts.elastic.co/packages/${majorVersion}.x/yum
|
||||
gpgcheck=1
|
||||
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
|
||||
enabled=1
|
||||
autorefresh=1
|
||||
type=rpm-md
|
||||
EOF`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.rpmInstallPackageStep', {
|
||||
defaultMessage: 'Install the RPM package (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`sudo yum install pf-host-agent`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.rpmEditConfigStep', {
|
||||
defaultMessage: 'Edit the configuration (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`echo -e "project-id 1\nsecret-token ${secretToken}\ncollection-agent ${collectionAgentHost}" | sudo tee -a /etc/Elastic/universal-profiling/pf-host-agent.conf`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.rpmStartSystemdServiceStep', {
|
||||
defaultMessage:
|
||||
'Start the Universal Profiling systemd service (requires root privileges):',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`sudo systemctl enable pf-host-agent && sudo systemctl restart pf-host-agent`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: AddDataTabs.ElasticAgentIntegration,
|
||||
title: i18n.translate('xpack.profiling.tabs.elasticAgentIntegration.title', {
|
||||
defaultMessage: 'Elastic Agent Integration',
|
||||
}),
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.elasticAgentIntegration.step1', {
|
||||
defaultMessage: 'Copy credentials',
|
||||
}),
|
||||
content: (
|
||||
<>
|
||||
<EuiText>
|
||||
{i18n.translate('xpack.profiling.tabs.elasticAgentIntegration.step1.hint', {
|
||||
defaultMessage:
|
||||
"You'll need these credentials to set up Universal Profiling. Please save them in a secure location, as they will be required in the subsequent step.",
|
||||
})}
|
||||
</EuiText>
|
||||
<EuiSpacer />
|
||||
<EuiText style={{ fontWeight: 'bold' }} size="s">
|
||||
{i18n.translate(
|
||||
'xpack.profiling.tabs.elasticAgentIntegration.step1.secretToken',
|
||||
{
|
||||
defaultMessage: 'Secret token:',
|
||||
}
|
||||
)}
|
||||
</EuiText>
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{secretToken}
|
||||
</EuiCodeBlock>
|
||||
<EuiSpacer size="s" />
|
||||
<EuiText style={{ fontWeight: 'bold' }} size="s">
|
||||
{i18n.translate(
|
||||
'xpack.profiling.tabs.elasticAgentIntegration.step1.collectionAgentUrl',
|
||||
{ defaultMessage: 'Universal Profiling Collector URL:' }
|
||||
)}
|
||||
</EuiText>
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{collectionAgentHost}
|
||||
</EuiCodeBlock>
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.elasticAgentIntegration.step2', {
|
||||
defaultMessage: 'Fleet',
|
||||
}),
|
||||
content: (
|
||||
<EuiButton
|
||||
data-test-subj="profilingAddDataViewManageUniversalProfilingAgentInFleetButton"
|
||||
iconType="gear"
|
||||
fill
|
||||
href={`${core.http.basePath.prepend(
|
||||
`/app/integrations/detail/profiler_agent-${data?.profilerAgent.version}/overview`
|
||||
)}`}
|
||||
>
|
||||
{i18n.translate('xpack.profiling.tabs.symbols.step2.instructions', {
|
||||
defaultMessage: 'Instructions here',
|
||||
{i18n.translate('xpack.profiling.tabs.elasticAgentIntegration.step2.button', {
|
||||
defaultMessage: 'Manage Universal Profiling agent in Fleet',
|
||||
})}
|
||||
</EuiLink>
|
||||
</EuiText>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.symbols.step3', {
|
||||
defaultMessage: 'Upload symbols',
|
||||
}),
|
||||
content: (
|
||||
<div>
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`./symbtool push-symbols executable -u "${symbolUrl}" -t <ES token> -e <my executable>`}
|
||||
</EuiCodeBlock>
|
||||
<EuiSpacer size="m" />
|
||||
<EuiText>
|
||||
<FormattedMessage
|
||||
id="xpack.profiling.tabs.symbols.step3.replace"
|
||||
defaultMessage="Replace {es_token} etc. with the actual values. You can pass {help} to obtain a list of other arguments."
|
||||
values={{
|
||||
es_token: <EuiCode>{`<ES token>`}</EuiCode>,
|
||||
help: <EuiCode>--help</EuiCode>,
|
||||
}}
|
||||
/>
|
||||
</EuiText>
|
||||
<EuiSpacer size="s" />
|
||||
<EuiText>
|
||||
<FormattedMessage
|
||||
id="xpack.profiling.tabs.symbols.step3.doc-ref"
|
||||
defaultMessage="Documentation for more advanced uses cases is available in {link}."
|
||||
values={{
|
||||
link: (
|
||||
<EuiLink
|
||||
data-test-subj="profilingAddDataViewTheCorrespondingDocumentationPageLink"
|
||||
target="_blank"
|
||||
href={`${core.docLinks.ELASTIC_WEBSITE_URL}/guide/en/observability/${core.docLinks.DOC_LINK_VERSION}/profiling-add-symbols.html`}
|
||||
>
|
||||
{i18n.translate('xpack.profiling.tabs.symbols.step3.doc-ref.link', {
|
||||
defaultMessage: 'the corresponding documentation page',
|
||||
})}
|
||||
</EuiLink>
|
||||
),
|
||||
}}
|
||||
/>
|
||||
</EuiText>
|
||||
</div>
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
</EuiButton>
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
key: AddDataTabs.Symbols,
|
||||
title: i18n.translate('xpack.profiling.tabs.symbols.title', {
|
||||
defaultMessage: 'Upload Symbols',
|
||||
}),
|
||||
subTabs: supportedCPUArchitectures.map((arch) => {
|
||||
return {
|
||||
key: arch,
|
||||
title: `Linux ${arch}`,
|
||||
// inside each sub tab you define the steps as usual
|
||||
steps: [
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.symbols.step1', {
|
||||
defaultMessage: 'Download and extract symbtool',
|
||||
}),
|
||||
content: (
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`wget -O symbtool-${arch}.tgz "https://artifacts.elastic.co/downloads/prodfiler/symbtool-${stackVersion}-linux-${arch}.tar.gz" && tar xzf symbtool-${arch}.tgz && cd symbtool-${stackVersion}-linux-${arch}`}
|
||||
</EuiCodeBlock>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.symbols.step2', {
|
||||
defaultMessage: 'Generate an Elasticsearch token',
|
||||
}),
|
||||
content: (
|
||||
<EuiText>
|
||||
<EuiLink
|
||||
data-test-subj="profilingAddDataViewInstructionsHereLink"
|
||||
target="_blank"
|
||||
href={`https://www.elastic.co/guide/en/kibana/master/api-keys.html`}
|
||||
>
|
||||
{i18n.translate('xpack.profiling.tabs.symbols.step2.instructions', {
|
||||
defaultMessage: 'Instructions here',
|
||||
})}
|
||||
</EuiLink>
|
||||
</EuiText>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.profiling.tabs.symbols.step3', {
|
||||
defaultMessage: 'Upload symbols',
|
||||
}),
|
||||
content: (
|
||||
<div>
|
||||
<EuiCodeBlock paddingSize="s" isCopyable>
|
||||
{`./symbtool push-symbols executable -u "${symbolUrl}" -t <ES token> -e <my executable>`}
|
||||
</EuiCodeBlock>
|
||||
<EuiSpacer size="m" />
|
||||
<EuiText>
|
||||
<FormattedMessage
|
||||
id="xpack.profiling.tabs.symbols.step3.replace"
|
||||
defaultMessage="Replace {es_token} etc. with the actual values. You can pass {help} to obtain a list of other arguments."
|
||||
values={{
|
||||
es_token: <EuiCode>{`<ES token>`}</EuiCode>,
|
||||
help: (
|
||||
<EuiCode>
|
||||
{i18n.translate('xpack.profiling.tabs.symbols.helpFlag', {
|
||||
defaultMessage: '--help',
|
||||
})}
|
||||
</EuiCode>
|
||||
),
|
||||
}}
|
||||
/>
|
||||
</EuiText>
|
||||
<EuiSpacer size="s" />
|
||||
<EuiText>
|
||||
<FormattedMessage
|
||||
id="xpack.profiling.tabs.symbols.step3.doc-ref"
|
||||
defaultMessage="Documentation for more advanced uses cases is available in {link}."
|
||||
values={{
|
||||
link: (
|
||||
<EuiLink
|
||||
data-test-subj="profilingAddDataViewTheCorrespondingDocumentationPageLink"
|
||||
target="_blank"
|
||||
href={`${core.docLinks.ELASTIC_WEBSITE_URL}/guide/en/observability/${core.docLinks.DOC_LINK_VERSION}/profiling-add-symbols.html`}
|
||||
>
|
||||
{i18n.translate('xpack.profiling.tabs.symbols.step3.doc-ref.link', {
|
||||
defaultMessage: 'the corresponding documentation page',
|
||||
})}
|
||||
</EuiLink>
|
||||
),
|
||||
}}
|
||||
/>
|
||||
</EuiText>
|
||||
</div>
|
||||
),
|
||||
},
|
||||
],
|
||||
};
|
||||
}),
|
||||
},
|
||||
],
|
||||
[
|
||||
collectionAgentHost,
|
||||
core.docLinks.DOC_LINK_VERSION,
|
||||
core.docLinks.ELASTIC_WEBSITE_URL,
|
||||
core.http.basePath,
|
||||
data?.profilerAgent.version,
|
||||
majorVersion,
|
||||
secretToken,
|
||||
stackVersion,
|
||||
symbolUrl,
|
||||
]
|
||||
);
|
||||
|
||||
const displayedTab = tabs.find((tab) => tab.key === selectedTab)!;
|
||||
const displayedTab = useMemo(
|
||||
() => tabs.find((tab) => tab.key === selectedTab)!,
|
||||
[selectedTab, tabs]
|
||||
);
|
||||
|
||||
const displayedSteps = displayedTab.steps ?? [];
|
||||
useEffect(() => {
|
||||
if (displayedTab.subTabs) {
|
||||
const firstTabKey = displayedTab.subTabs[0].key;
|
||||
setSelectedSubTabKey(firstTabKey);
|
||||
}
|
||||
}, [displayedTab]);
|
||||
|
||||
const selectedSubTab = selectedSubTabKey
|
||||
? displayedTab.subTabs?.find((tab) => tab.key === selectedSubTabKey)
|
||||
: undefined;
|
||||
|
||||
const displayedSteps = displayedTab.steps || selectedSubTab?.steps || [];
|
||||
const subTabs = displayedTab.subTabs ?? [];
|
||||
|
||||
const isLoading = status === AsyncStatus.Loading;
|
||||
|
||||
|
@ -492,8 +543,20 @@ EOF`}
|
|||
id="xpack.profiling.tabs.debWarning"
|
||||
defaultMessage="Due to a {linuxLink} which impacts stability, the profiling agent will refuse to run on kernel versions {versionFrom} to {versionTo}. Refer to {debianLink} and {fedoraLink} to learn more. If you are running such a kernel with a backported fix, please refer to {advancedLink} for instructions to override the precautionary measure."
|
||||
values={{
|
||||
versionFrom: <strong>5.19</strong>,
|
||||
versionTo: <strong>6.4</strong>,
|
||||
versionFrom: (
|
||||
<strong>
|
||||
{i18n.translate('xpack.profiling.tabs.strong.5.19Label', {
|
||||
defaultMessage: '5.19',
|
||||
})}
|
||||
</strong>
|
||||
),
|
||||
versionTo: (
|
||||
<strong>
|
||||
{i18n.translate('xpack.profiling.tabs.strong.6.4Label', {
|
||||
defaultMessage: '6.4',
|
||||
})}
|
||||
</strong>
|
||||
),
|
||||
linuxLink: (
|
||||
<EuiLink
|
||||
data-test-subj="profilingAddDataViewLinuxKernelBugLink"
|
||||
|
@ -572,16 +635,36 @@ EOF`}
|
|||
</EuiTabs>
|
||||
</EuiSplitPanel.Inner>
|
||||
<EuiSplitPanel.Inner style={{ padding: '0 24px' }}>
|
||||
<EuiSpacer size="s" />
|
||||
{subTabs.length > 0 && (
|
||||
<EuiTabs style={{ padding: '0 24px' }}>
|
||||
{subTabs.map((tab) => {
|
||||
return (
|
||||
<EuiTab
|
||||
key={tab.key}
|
||||
onClick={() => {
|
||||
setSelectedSubTabKey(tab.key);
|
||||
}}
|
||||
isSelected={tab.key === selectedSubTabKey}
|
||||
>
|
||||
{tab.title}
|
||||
</EuiTab>
|
||||
);
|
||||
})}
|
||||
</EuiTabs>
|
||||
)}
|
||||
<EuiSpacer size="xxl" />
|
||||
<EuiSteps
|
||||
steps={displayedSteps.map((step) => {
|
||||
return {
|
||||
title: step.title,
|
||||
children: step.content,
|
||||
status: 'incomplete',
|
||||
};
|
||||
})}
|
||||
/>
|
||||
{displayedSteps.length > 0 && (
|
||||
<EuiSteps
|
||||
steps={displayedSteps.map((step) => {
|
||||
return {
|
||||
title: step.title,
|
||||
children: step.content,
|
||||
status: 'incomplete',
|
||||
};
|
||||
})}
|
||||
/>
|
||||
)}
|
||||
</EuiSplitPanel.Inner>
|
||||
</EuiPanel>
|
||||
</EuiSplitPanel.Outer>
|
||||
|
|
|
@ -27793,8 +27793,6 @@
|
|||
"xpack.profiling.maxValue": "Max : {max}",
|
||||
"xpack.profiling.noDataConfig.action.dataRetention": "Les coûts normaux de stockage des données s'appliquent aux données de profilage stockées dans Elasticsearch. En savoir plus sur {dataRetentionLink}.",
|
||||
"xpack.profiling.stackFrames.subChart.avg": "{percentage} moy.",
|
||||
"xpack.profiling.tabs.symbols.step3.doc-ref": "Une documentation pour des cas d’utilisation plus avancés est disponible dans {link}.",
|
||||
"xpack.profiling.tabs.symbols.step3.replace": "Remplacez {es_token} etc. avec les valeurs réelles. Vous pouvez transmettre {help} pour obtenir une liste d’autres arguments.",
|
||||
"xpack.profiling.appPageTemplate.pageTitle": "Universal Profiling",
|
||||
"xpack.profiling.asyncComponent.errorLoadingData": "Impossible de charger les données",
|
||||
"xpack.profiling.breadcrumb.differentialFlamegraph": "Flame-graph différentiel",
|
||||
|
@ -27907,14 +27905,6 @@
|
|||
"xpack.profiling.stackTracesView.stackTracesCountButton": "Traces de la pile",
|
||||
"xpack.profiling.stackTracesView.threadsTabLabel": "Threads",
|
||||
"xpack.profiling.stackTracesView.tracesTabLabel": "Traces",
|
||||
"xpack.profiling.tabs.binaryDownloadStep": "Télécharger le dernier binaire :",
|
||||
"xpack.profiling.tabs.binaryGrantPermissionStep": "Accorder des autorisations d'exécution :",
|
||||
"xpack.profiling.tabs.binaryRunHostAgentStep": "Exécuter l'agent hôte Universal Profiling (requiert des privilèges racine) :",
|
||||
"xpack.profiling.tabs.binaryTitle": "Binaire",
|
||||
"xpack.profiling.tabs.debEditConfigStep": "Modifier la configuration (requiert des privilèges racine) :",
|
||||
"xpack.profiling.tabs.debInstallPackageStep": "Installer le pack DEB (requiert des privilèges racine) :",
|
||||
"xpack.profiling.tabs.debStartSystemdServiceStep": "Démarrer le service systemd Universal Profiling (requiert des privilèges racine) :",
|
||||
"xpack.profiling.tabs.debTitle": "Pack DEB",
|
||||
"xpack.profiling.tabs.dockerRunContainerStep": "Exécuter le conteneur Universal Profiling :",
|
||||
"xpack.profiling.tabs.dockerTitle": "Docker",
|
||||
"xpack.profiling.tabs.kubernetesInstallStep": "Installer l'agent hôte via Helm :",
|
||||
|
@ -27922,16 +27912,6 @@
|
|||
"xpack.profiling.tabs.kubernetesTitle": "Kubernetes",
|
||||
"xpack.profiling.tabs.kubernetesValidationStep": "Confirmer que les pods de l'agent hôte sont en cours d'exécution :",
|
||||
"xpack.profiling.tabs.postValidationStep": "Utiliser la sortie d'installation Helm pour obtenir les logs de l'agent hôte et repérer les erreurs potentielles",
|
||||
"xpack.profiling.tabs.rpmEditConfigStep": "Modifier la configuration (requiert des privilèges racine) :",
|
||||
"xpack.profiling.tabs.rpmInstallPackageStep": "Installer le pack RPM (requiert des privilèges racine) :",
|
||||
"xpack.profiling.tabs.rpmStartSystemdServiceStep": "Démarrer le service systemd Universal Profiling (requiert des privilèges racine) :",
|
||||
"xpack.profiling.tabs.rpmTitle": "Pack RPM",
|
||||
"xpack.profiling.tabs.symbols.step1": "Télécharger et extraire un symbtool",
|
||||
"xpack.profiling.tabs.symbols.step2": "Générer un token Elasticsearch",
|
||||
"xpack.profiling.tabs.symbols.step2.instructions": "Instructions disponibles ici",
|
||||
"xpack.profiling.tabs.symbols.step3": "Charger les symboles",
|
||||
"xpack.profiling.tabs.symbols.step3.doc-ref.link": "la page de documentation correspondante",
|
||||
"xpack.profiling.tabs.symbols.title": "Charger les symboles",
|
||||
"xpack.profiling.topn.otherBucketLabel": "Autre",
|
||||
"xpack.profiling.universalProfiling": "Universal Profiling",
|
||||
"xpack.profiling.zeroSeconds": "0 seconde",
|
||||
|
|
|
@ -27793,8 +27793,6 @@
|
|||
"xpack.profiling.maxValue": "最大:{max}",
|
||||
"xpack.profiling.noDataConfig.action.dataRetention": "Elasticsearchに格納されたプロファイリングデータには、標準データ保存コストが適用されます。{dataRetentionLink}の詳細をご覧ください。",
|
||||
"xpack.profiling.stackFrames.subChart.avg": "平均:{percentage}",
|
||||
"xpack.profiling.tabs.symbols.step3.doc-ref": "高度なユースケースのドキュメントは{link}で提供されています。",
|
||||
"xpack.profiling.tabs.symbols.step3.replace": "{es_token}などを実際の値で置換します。{help}を渡すと、他の引数のリストを取得できます。",
|
||||
"xpack.profiling.appPageTemplate.pageTitle": "ユニバーサルプロファイリング",
|
||||
"xpack.profiling.asyncComponent.errorLoadingData": "データを読み込めませんでした",
|
||||
"xpack.profiling.breadcrumb.differentialFlamegraph": "差分flamegraph",
|
||||
|
@ -27907,14 +27905,6 @@
|
|||
"xpack.profiling.stackTracesView.stackTracesCountButton": "スタックトレース",
|
||||
"xpack.profiling.stackTracesView.threadsTabLabel": "スレッド",
|
||||
"xpack.profiling.stackTracesView.tracesTabLabel": "トレース",
|
||||
"xpack.profiling.tabs.binaryDownloadStep": "最新のバイナリをダウンロード:",
|
||||
"xpack.profiling.tabs.binaryGrantPermissionStep": "実行可能権限を付与:",
|
||||
"xpack.profiling.tabs.binaryRunHostAgentStep": "ユニバーサルプロファイリングホストエージェントを実行(ルート権限が必要):",
|
||||
"xpack.profiling.tabs.binaryTitle": "バイナリー",
|
||||
"xpack.profiling.tabs.debEditConfigStep": "構成を編集(ルート権限が必要):",
|
||||
"xpack.profiling.tabs.debInstallPackageStep": "DEBパッケージをインストール(ルート権限が必要):",
|
||||
"xpack.profiling.tabs.debStartSystemdServiceStep": "ユニバーサルプロファイリングシステムサービスを開始(ルート権限が必要):",
|
||||
"xpack.profiling.tabs.debTitle": "DEBパッケージ",
|
||||
"xpack.profiling.tabs.dockerRunContainerStep": "ユニバーサルプロファイリングコンテナーを実行:",
|
||||
"xpack.profiling.tabs.dockerTitle": "Docker",
|
||||
"xpack.profiling.tabs.kubernetesInstallStep": "Helm経由でホストエージェントをインストール:",
|
||||
|
@ -27922,16 +27912,6 @@
|
|||
"xpack.profiling.tabs.kubernetesTitle": "Kubernetes",
|
||||
"xpack.profiling.tabs.kubernetesValidationStep": "ホストエージェントポッドが実行中であることを検証:",
|
||||
"xpack.profiling.tabs.postValidationStep": "Helmインストール出力を使用して、ホストエージェントログを取得し、潜在的なエラーを特定",
|
||||
"xpack.profiling.tabs.rpmEditConfigStep": "構成を編集(ルート権限が必要):",
|
||||
"xpack.profiling.tabs.rpmInstallPackageStep": "RPMパッケージをインストール(ルート権限が必要):",
|
||||
"xpack.profiling.tabs.rpmStartSystemdServiceStep": "ユニバーサルプロファイリングシステムサービスを開始(ルート権限が必要):",
|
||||
"xpack.profiling.tabs.rpmTitle": "RPMパッケージ",
|
||||
"xpack.profiling.tabs.symbols.step1": "symbtoolをダウンロードして展開",
|
||||
"xpack.profiling.tabs.symbols.step2": "Elasticsearchトークンを生成",
|
||||
"xpack.profiling.tabs.symbols.step2.instructions": "手順",
|
||||
"xpack.profiling.tabs.symbols.step3": "シンボルをアップロード",
|
||||
"xpack.profiling.tabs.symbols.step3.doc-ref.link": "対応するドキュメントページ",
|
||||
"xpack.profiling.tabs.symbols.title": "シンボルをアップロード",
|
||||
"xpack.profiling.topn.otherBucketLabel": "その他",
|
||||
"xpack.profiling.universalProfiling": "ユニバーサルプロファイリング",
|
||||
"xpack.profiling.zeroSeconds": "0秒",
|
||||
|
|
|
@ -27791,8 +27791,6 @@
|
|||
"xpack.profiling.maxValue": "最大值:{max}",
|
||||
"xpack.profiling.noDataConfig.action.dataRetention": "分析 Elasticsearch 中存储的数据时,正常数据存储成本适用。详细了解 {dataRetentionLink}。",
|
||||
"xpack.profiling.stackFrames.subChart.avg": "平均 {percentage}",
|
||||
"xpack.profiling.tabs.symbols.step3.doc-ref": "{link} 中提供了更高级用例的文档。",
|
||||
"xpack.profiling.tabs.symbols.step3.replace": "用实际值替代 {es_token} 等。您可以传递 {help} 以获取其他参数列表。",
|
||||
"xpack.profiling.appPageTemplate.pageTitle": "Universal Profiling",
|
||||
"xpack.profiling.asyncComponent.errorLoadingData": "无法加载数据",
|
||||
"xpack.profiling.breadcrumb.differentialFlamegraph": "差异火焰图",
|
||||
|
@ -27905,14 +27903,6 @@
|
|||
"xpack.profiling.stackTracesView.stackTracesCountButton": "堆栈跟踪",
|
||||
"xpack.profiling.stackTracesView.threadsTabLabel": "线程",
|
||||
"xpack.profiling.stackTracesView.tracesTabLabel": "追溯",
|
||||
"xpack.profiling.tabs.binaryDownloadStep": "下载最新二进制文件:",
|
||||
"xpack.profiling.tabs.binaryGrantPermissionStep": "授予可执行权限:",
|
||||
"xpack.profiling.tabs.binaryRunHostAgentStep": "运行 Universal Profiling 主机代理(需要根权限):",
|
||||
"xpack.profiling.tabs.binaryTitle": "二进制",
|
||||
"xpack.profiling.tabs.debEditConfigStep": "编辑配置(需要根权限):",
|
||||
"xpack.profiling.tabs.debInstallPackageStep": "安装 DEB 软件包(需要根权限):",
|
||||
"xpack.profiling.tabs.debStartSystemdServiceStep": "启动 Universal Profiling systemd 服务(需要根权限):",
|
||||
"xpack.profiling.tabs.debTitle": "DEB 软件包",
|
||||
"xpack.profiling.tabs.dockerRunContainerStep": "运行 Universal Profiling 容器:",
|
||||
"xpack.profiling.tabs.dockerTitle": "Docker",
|
||||
"xpack.profiling.tabs.kubernetesInstallStep": "通过 Helm 安装主机代理:",
|
||||
|
@ -27920,16 +27910,6 @@
|
|||
"xpack.profiling.tabs.kubernetesTitle": "Kubernetes",
|
||||
"xpack.profiling.tabs.kubernetesValidationStep": "验证主机代理 Pod 是否正在运行:",
|
||||
"xpack.profiling.tabs.postValidationStep": "使用 Helm 安装输出以获取主机代理日志并发现潜在错误",
|
||||
"xpack.profiling.tabs.rpmEditConfigStep": "编辑配置(需要根权限):",
|
||||
"xpack.profiling.tabs.rpmInstallPackageStep": "安装 RPM 软件包(需要根权限):",
|
||||
"xpack.profiling.tabs.rpmStartSystemdServiceStep": "启动 Universal Profiling systemd 服务(需要根权限):",
|
||||
"xpack.profiling.tabs.rpmTitle": "RPM 软件包",
|
||||
"xpack.profiling.tabs.symbols.step1": "下载并提取 symbtool",
|
||||
"xpack.profiling.tabs.symbols.step2": "生成 Elasticsearch 令牌",
|
||||
"xpack.profiling.tabs.symbols.step2.instructions": "此处提供了说明",
|
||||
"xpack.profiling.tabs.symbols.step3": "上传符号",
|
||||
"xpack.profiling.tabs.symbols.step3.doc-ref.link": "对应的文档页面",
|
||||
"xpack.profiling.tabs.symbols.title": "上传符号",
|
||||
"xpack.profiling.topn.otherBucketLabel": "其他",
|
||||
"xpack.profiling.universalProfiling": "Universal Profiling",
|
||||
"xpack.profiling.zeroSeconds": "0 秒",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue