From 6242f4909d6473eae77ba23a79178960731beba1 Mon Sep 17 00:00:00 2001 From: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Date: Tue, 31 Aug 2021 20:25:27 -0400 Subject: [PATCH] [APM] Fleet: adding support for legacy fields (#110136) (#110729) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * supporting legacy fields * addressing PR comments Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> Co-authored-by: CauĂȘ Marcondes <55978943+cauemarcondes@users.noreply.github.com> --- .../get_apm_package_policy_definition.ts | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.ts b/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.ts index b339c1f1f0be9..afe3a95d79023 100644 --- a/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.ts +++ b/x-pack/plugins/apm/server/lib/fleet/get_apm_package_policy_definition.ts @@ -16,6 +16,7 @@ interface GetApmPackagePolicyDefinitionOptions { export function getApmPackagePolicyDefinition( options: GetApmPackagePolicyDefinitionOptions ) { + const { apmServerSchema, cloudPluginSetup } = options; return { name: 'Elastic APM', namespace: 'default', @@ -27,7 +28,10 @@ export function getApmPackagePolicyDefinition( type: 'apm', enabled: true, streams: [], - vars: getApmPackageInputVars(options), + vars: getApmPackageInputVars({ + cloudPluginSetup, + apmServerSchema: preprocessLegacyFields({ apmServerSchema }), + }), }, ], package: { @@ -38,6 +42,34 @@ export function getApmPackagePolicyDefinition( }; } +function preprocessLegacyFields({ + apmServerSchema, +}: { + apmServerSchema: Record; +}) { + const copyOfApmServerSchema = { ...apmServerSchema }; + [ + { + key: 'apm-server.auth.anonymous.rate_limit.event_limit', + legacyKey: 'apm-server.rum.event_rate.limit', + }, + { + key: 'apm-server.auth.anonymous.rate_limit.ip_limit', + legacyKey: 'apm-server.rum.event_rate.lru_size', + }, + { + key: 'apm-server.auth.anonymous.allow_service', + legacyKey: 'apm-server.rum.allow_service_names', + }, + ].forEach(({ key, legacyKey }) => { + if (!copyOfApmServerSchema[key]) { + copyOfApmServerSchema[key] = copyOfApmServerSchema[legacyKey]; + delete copyOfApmServerSchema[legacyKey]; + } + }); + return copyOfApmServerSchema; +} + function getApmPackageInputVars(options: GetApmPackagePolicyDefinitionOptions) { const { apmServerSchema } = options; const apmServerConfigs = Object.entries( @@ -90,6 +122,18 @@ export const apmConfigMapping: Record< name: 'rum_allow_headers', type: 'text', }, + 'apm-server.rum.event_rate.limit': { + name: 'rum_event_rate_limit', + type: 'integer', + }, + 'apm-server.rum.allow_service_names': { + name: 'rum_allow_service_names', + type: 'text', + }, + 'apm-server.rum.event_rate.lru_size': { + name: 'rum_event_rate_lru_size', + type: 'integer', + }, 'apm-server.rum.response_headers': { name: 'rum_response_headers', type: 'yaml',