mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
(cherry picked from commit db7daf6369
)
Co-authored-by: Cauê Marcondes <55978943+cauemarcondes@users.noreply.github.com>
This commit is contained in:
parent
bb2f4eece3
commit
ee82096097
3 changed files with 46 additions and 9 deletions
|
@ -11,6 +11,7 @@ import { FAAS_COLDSTART_DURATION } from '../../../../../common/elasticsearch_fie
|
|||
import { Setup } from '../../../../lib/helpers/setup_request';
|
||||
import { fetchAndTransformMetrics } from '../../fetch_and_transform_metrics';
|
||||
import { ChartBase } from '../../types';
|
||||
import { isFiniteNumber } from '../../../../../common/utils/is_finite_number';
|
||||
|
||||
const chartBase: ChartBase = {
|
||||
title: i18n.translate('xpack.apm.agentMetrics.serverless.coldStartDuration', {
|
||||
|
@ -37,7 +38,7 @@ const chartBase: ChartBase = {
|
|||
),
|
||||
};
|
||||
|
||||
export function getColdStartDuration({
|
||||
export async function getColdStartDuration({
|
||||
environment,
|
||||
kuery,
|
||||
setup,
|
||||
|
@ -52,7 +53,7 @@ export function getColdStartDuration({
|
|||
start: number;
|
||||
end: number;
|
||||
}) {
|
||||
return fetchAndTransformMetrics({
|
||||
const coldStartDurationMetric = await fetchAndTransformMetrics({
|
||||
environment,
|
||||
kuery,
|
||||
setup,
|
||||
|
@ -64,4 +65,24 @@ export function getColdStartDuration({
|
|||
additionalFilters: [{ exists: { field: FAAS_COLDSTART_DURATION } }],
|
||||
operationName: 'get_cold_start_duration',
|
||||
});
|
||||
|
||||
const [series] = coldStartDurationMetric.series;
|
||||
|
||||
const data = series.data.map(({ x, y }) => ({
|
||||
x,
|
||||
// Cold start duration duration is stored in ms, convert it to microseconds so it uses the same unit as the other charts
|
||||
y: isFiniteNumber(y) ? y * 1000 : y,
|
||||
}));
|
||||
|
||||
return {
|
||||
...coldStartDurationMetric,
|
||||
series: [
|
||||
{
|
||||
...series,
|
||||
// Cold start duration duration is stored in ms, convert it to microseconds
|
||||
overallValue: series.overallValue * 1000,
|
||||
data,
|
||||
},
|
||||
],
|
||||
};
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import { i18n } from '@kbn/i18n';
|
|||
import { euiLightVars as theme } from '@kbn/ui-theme';
|
||||
import { FAAS_BILLED_DURATION } from '../../../../../common/elasticsearch_fieldnames';
|
||||
import { LatencyAggregationType } from '../../../../../common/latency_aggregation_types';
|
||||
import { isFiniteNumber } from '../../../../../common/utils/is_finite_number';
|
||||
import { getVizColorForIndex } from '../../../../../common/viz_colors';
|
||||
import { Setup } from '../../../../lib/helpers/setup_request';
|
||||
import { getLatencyTimeseries } from '../../../transactions/get_latency_charts';
|
||||
|
@ -123,8 +124,23 @@ export async function getServerlessFunctionLatency({
|
|||
getServerlessLantecySeries({ ...options, searchAggregatedTransactions }),
|
||||
]);
|
||||
|
||||
const [series] = billedDurationMetrics.series;
|
||||
const data = series.data.map(({ x, y }) => ({
|
||||
x,
|
||||
// Billed duration is stored in ms, convert it to microseconds so it uses the same unit as the other chart
|
||||
y: isFiniteNumber(y) ? y * 1000 : y,
|
||||
}));
|
||||
|
||||
return {
|
||||
...billedDurationMetrics,
|
||||
series: [...billedDurationMetrics.series, ...serverlessDurationSeries],
|
||||
series: [
|
||||
{
|
||||
...series,
|
||||
// Billed duration is stored in ms, convert it to microseconds
|
||||
overallValue: series.overallValue * 1000,
|
||||
data,
|
||||
},
|
||||
...serverlessDurationSeries,
|
||||
],
|
||||
};
|
||||
}
|
||||
|
|
|
@ -159,7 +159,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
|||
describe('Avg. Duration', () => {
|
||||
const transactionDurationInMicroSeconds = TRANSACTION_DURATION * 1000;
|
||||
[
|
||||
{ title: 'Billed Duration', expectedValue: BILLED_DURATION_MS },
|
||||
{ title: 'Billed Duration', expectedValue: BILLED_DURATION_MS * 1000 },
|
||||
{ title: 'Transaction Duration', expectedValue: transactionDurationInMicroSeconds },
|
||||
].map(({ title, expectedValue }) =>
|
||||
it(`returns correct ${title} value`, () => {
|
||||
|
@ -186,7 +186,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
|||
});
|
||||
it('returns correct overall value', () => {
|
||||
expect(coldStartDurationMetric?.series[0].overallValue).to.equal(
|
||||
COLD_START_DURATION_PYTHON
|
||||
COLD_START_DURATION_PYTHON * 1000
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -195,7 +195,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
|||
coldStartDurationMetric?.series[0]?.data.filter((item) => item.y !== null),
|
||||
'y'
|
||||
);
|
||||
expect(meanValue).to.equal(COLD_START_DURATION_PYTHON);
|
||||
expect(meanValue).to.equal(COLD_START_DURATION_PYTHON * 1000);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -308,7 +308,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
|||
describe('Avg. Duration', () => {
|
||||
const transactionDurationInMicroSeconds = TRANSACTION_DURATION * 1000;
|
||||
[
|
||||
{ title: 'Billed Duration', expectedValue: BILLED_DURATION_MS },
|
||||
{ title: 'Billed Duration', expectedValue: BILLED_DURATION_MS * 1000 },
|
||||
{ title: 'Transaction Duration', expectedValue: transactionDurationInMicroSeconds },
|
||||
].map(({ title, expectedValue }) =>
|
||||
it(`returns correct ${title} value`, () => {
|
||||
|
@ -336,7 +336,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
|||
|
||||
it('returns 0 overall value', () => {
|
||||
expect(coldStartDurationMetric?.series[0].overallValue).to.equal(
|
||||
COLD_START_DURATION_NODE
|
||||
COLD_START_DURATION_NODE * 1000
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -345,7 +345,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
|||
coldStartDurationMetric?.series[0]?.data.filter((item) => item.y !== null),
|
||||
'y'
|
||||
);
|
||||
expect(meanValue).to.equal(COLD_START_DURATION_NODE);
|
||||
expect(meanValue).to.equal(COLD_START_DURATION_NODE * 1000);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue