Skip to content

Commit

Permalink
- externalizes getApmPackagePolicies for reusability
Browse files Browse the repository at this point in the history
- parallelizes operations for improved performance
  • Loading branch information
ogupte committed Jun 3, 2021
1 parent 2d522ce commit 6793d62
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 9 deletions.
30 changes: 30 additions & 0 deletions x-pack/plugins/apm/server/lib/fleet/get_apm_package_policies.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
* 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 {
CoreSetup,
CoreStart,
SavedObjectsClientContract,
} from 'kibana/server';
import { APMPluginStartDependencies } from '../../types';
import { getInternalSavedObjectsClient } from '../helpers/get_internal_saved_objects_client';

export async function getApmPackgePolicies({
core,
fleetPluginStart,
}: {
core: { setup: CoreSetup; start: () => Promise<CoreStart> };
fleetPluginStart: NonNullable<APMPluginStartDependencies['fleet']>;
}) {
// @ts-ignore
const savedObjectsClient: SavedObjectsClientContract = await getInternalSavedObjectsClient(
core.setup
);
return await fleetPluginStart.packagePolicyService.list(savedObjectsClient, {
kuery: 'ingest-package-policies.package.name:apm',
});
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { APMPluginStartDependencies } from '../../types';
import { getInternalSavedObjectsClient } from '../helpers/get_internal_saved_objects_client';
import { Setup } from '../helpers/setup_request';
import { listConfigurations } from '../settings/agent_configuration/list_configurations';
import { getApmPackgePolicies } from './get_apm_package_policies';
import { getPackagePolicyWithAgentConfigurations } from './register_fleet_policy_callbacks';

export async function syncAgentConfigsToApmPackagePolicies({
Expand All @@ -27,15 +28,18 @@ export async function syncAgentConfigsToApmPackagePolicies({
}) {
const coreStart = await core.start();
const esClient = coreStart.elasticsearch.client.asInternalUser;
// @ts-ignore
const savedObjectsClient: SavedObjectsClientContract = await getInternalSavedObjectsClient(
core.setup
);
const agentConfigurations = await listConfigurations({ setup });
const packagePolicies = await fleetPluginStart.packagePolicyService.list(
const [
savedObjectsClient,
{ kuery: 'ingest-package-policies.package.name:apm' }
);
agentConfigurations,
packagePolicies,
] = await Promise.all([
getInternalSavedObjectsClient(core.setup),
listConfigurations({ setup }),
getApmPackgePolicies({
core,
fleetPluginStart,
}),
]);

return Promise.all(
packagePolicies.items.map(async (item) => {
Expand All @@ -45,7 +49,7 @@ export async function syncAgentConfigsToApmPackagePolicies({
agentConfigurations
);
return fleetPluginStart.packagePolicyService.update(
savedObjectsClient,
(savedObjectsClient as unknown) as SavedObjectsClientContract,
esClient,
id,
updatedPackagePolicy
Expand Down

0 comments on commit 6793d62

Please sign in to comment.