Skip to content

Commit 679ccd7

Browse files
committed
APM observability fetch data
1 parent be59683 commit 679ccd7

File tree

4 files changed

+31
-38
lines changed

4 files changed

+31
-38
lines changed

x-pack/plugins/apm/public/services/rest/observability_dashboard.ts

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,54 +5,56 @@
55
*/
66

77
import { i18n } from '@kbn/i18n';
8-
import { FetchData } from '../../../../observability/public/typings/data_handler';
8+
import { sum } from 'lodash';
9+
import {
10+
ApmFetchDataResponse,
11+
FetchData,
12+
} from '../../../../observability/public/typings/data_handler';
913
import { callApmApi } from './createCallApmApi';
1014

11-
export const fetchData: FetchData = async ({
15+
export const fetchData: FetchData<ApmFetchDataResponse> = async ({
1216
startTime,
1317
endTime,
1418
bucketSize,
1519
}) => {
16-
const serviceCountPromise = callApmApi({
17-
pathname: '/api/apm/observability-dashboard/service-count',
20+
const data = await callApmApi({
21+
pathname: '/api/apm/observability-dashboard',
1822
params: { query: { start: startTime, end: endTime, bucketSize } },
1923
});
2024

21-
const transactionCoordinatesPromise = callApmApi({
22-
pathname: '/api/apm/observability-dashboard/transactions',
23-
params: { query: { start: startTime, end: endTime, bucketSize } },
24-
});
25-
26-
const [serviceCount, transactionCoordinates] = await Promise.all([
27-
serviceCountPromise,
28-
transactionCoordinatesPromise,
29-
]);
25+
const { serviceCount, transactionCoordinates } = data;
3026

3127
return {
3228
title: i18n.translate('xpack.apm.observabilityDashboard.title', {
3329
defaultMessage: 'APM',
3430
}),
3531
appLink: '/app/apm',
36-
stats: [
37-
{
32+
stats: {
33+
services: {
3834
label: i18n.translate(
3935
'xpack.apm.observabilityDashboard.stats.services',
4036
{ defaultMessage: 'Services' }
4137
),
4238
value: serviceCount,
4339
},
44-
],
45-
series: [
46-
{
47-
key: 'transactions',
40+
transactions: {
41+
label: i18n.translate(
42+
'xpack.apm.observabilityDashboard.stats.transactions',
43+
{ defaultMessage: 'Transactions' }
44+
),
45+
value: sum(transactionCoordinates.map((coordinates) => coordinates.y)),
46+
},
47+
},
48+
series: {
49+
transactions: {
4850
label: i18n.translate(
4951
'xpack.apm.observabilityDashboard.chart.transactions',
5052
{ defaultMessage: 'Transactions' }
5153
),
5254
color: 'euiColorVis1',
5355
coordinates: transactionCoordinates,
5456
},
55-
],
57+
},
5658
};
5759
};
5860

x-pack/plugins/apm/server/lib/observability_dashboard/get_service_count.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
* you may not use this file except in compliance with the Elastic License.
55
*/
66

7+
import { rangeFilter } from '../../../common/utils/range_filter';
78
import { SERVICE_NAME } from '../../../common/elasticsearch_fieldnames';
89
import { Setup, SetupTimeRange } from '../helpers/setup_request';
9-
import { rangeFilter } from '../helpers/range_filter';
1010

1111
export async function getServiceCount({
1212
setup,

x-pack/plugins/apm/server/routes/create_apm_api.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,7 @@ import {
7878
} from './rum_client';
7979
import {
8080
observabilityDashboardHasDataRoute,
81-
observabilityDashboardServiceCountRoute,
82-
observabilityDashboardTransactionsRoute,
81+
observabilityDashboardDataRoute,
8382
} from './observability_dashboard';
8483

8584
const createApmApi = () => {
@@ -169,8 +168,7 @@ const createApmApi = () => {
169168

170169
// Observability dashboard
171170
.add(observabilityDashboardHasDataRoute)
172-
.add(observabilityDashboardServiceCountRoute)
173-
.add(observabilityDashboardTransactionsRoute);
171+
.add(observabilityDashboardDataRoute);
174172

175173
return api;
176174
};

x-pack/plugins/apm/server/routes/observability_dashboard.ts

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,27 +19,20 @@ export const observabilityDashboardHasDataRoute = createRoute(() => ({
1919
},
2020
}));
2121

22-
export const observabilityDashboardServiceCountRoute = createRoute(() => ({
23-
path: '/api/apm/observability-dashboard/service-count',
24-
params: {
25-
query: t.intersection([rangeRt, t.type({ bucketSize: t.string })]),
26-
},
27-
handler: async ({ context, request }) => {
28-
const setup = await setupRequest(context, request);
29-
return await getServiceCount({ setup });
30-
},
31-
}));
32-
export const observabilityDashboardTransactionsRoute = createRoute(() => ({
33-
path: '/api/apm/observability-dashboard/transactions',
22+
export const observabilityDashboardDataRoute = createRoute(() => ({
23+
path: '/api/apm/observability-dashboard',
3424
params: {
3525
query: t.intersection([rangeRt, t.type({ bucketSize: t.string })]),
3626
},
3727
handler: async ({ context, request }) => {
3828
const setup = await setupRequest(context, request);
3929
const { bucketSize } = context.params.query;
40-
return await getTransactionCoordinates({
30+
const serviceCount = await getServiceCount({ setup });
31+
const transactionCoordinates = await getTransactionCoordinates({
4132
setup,
4233
bucketSize,
4334
});
35+
36+
return { serviceCount, transactionCoordinates };
4437
},
4538
}));

0 commit comments

Comments
 (0)