diff --git a/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/__snapshots__/index.test.ts.snap b/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/__snapshots__/index.test.ts.snap index 44352219f7436..3c8b95ad4615c 100644 --- a/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/__snapshots__/index.test.ts.snap +++ b/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/__snapshots__/index.test.ts.snap @@ -241,6 +241,17 @@ Array [ "type": "boolean", "validationName": "(\\"true\\" | \\"false\\")", }, + Object { + "key": "opamp_polling_interval", + "min": "1s", + "type": "duration", + "units": Array [ + "ms", + "s", + "m", + ], + "validationName": "durationRt", + }, Object { "key": "profiling_inferred_spans_enabled", "type": "boolean", @@ -284,6 +295,11 @@ Array [ "type": "boolean", "validationName": "(\\"true\\" | \\"false\\")", }, + Object { + "key": "sampling_rate", + "type": "float", + "validationName": "floatFourDecimalPlacesRt", + }, Object { "key": "sanitize_field_names", "type": "text", diff --git a/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/edot_sdk_settings.ts b/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/edot_sdk_settings.ts index 09deb667e3dec..0c9f55565db4b 100644 --- a/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/edot_sdk_settings.ts +++ b/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/edot_sdk_settings.ts @@ -72,6 +72,36 @@ export const edotSDKSettings: RawSettingDefinition[] = [ 'opentelemetry/dotnet/elastic', ], }, + { + key: 'opamp_polling_interval', + type: 'duration', + defaultValue: '30s', + min: '1s', + label: i18n.translate('xpack.apm.agentConfig.pollingInterval.label', { + defaultMessage: 'OpAMP HTTP polling interval', + }), + description: i18n.translate('xpack.apm.agentConfig.pollingInterval.description', { + defaultMessage: + 'The default interval between checking the collector for new changes to config.\n' + + 'Note the interval is automatically exponentially extended on failures then reset to the value specified here, on recovery.', + }), + includeAgents: ['opentelemetry/java/elastic'], + }, + { + key: 'sampling_rate', + type: 'float', + defaultValue: '1.0', + label: i18n.translate('xpack.apm.agentConfig.samplingRate.label', { + defaultMessage: 'Sampling rate', + }), + description: i18n.translate('xpack.apm.agentConfig.samplingRate.description', { + defaultMessage: + 'By default, the agent will sample every span in every trace (e.g. request to your service). ' + + 'To reduce overhead and storage requirements, you can set the sampling rate to a value between 0.0 and 1.0. ' + + 'Further details can be found in the [OpenTelemetry Sampling Concepts](https://opentelemetry.io/docs/concepts/sampling/) page.', + }), + includeAgents: ['opentelemetry/java/elastic', 'opentelemetry/python/elastic'], + }, { key: 'send_traces', type: 'boolean', diff --git a/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/index.test.ts b/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/index.test.ts index 3b5bce6deb197..ba2e5944ad7d0 100644 --- a/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/index.test.ts +++ b/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/index.test.ts @@ -195,6 +195,8 @@ describe('filterByAgent', () => { 'deactivate_all_instrumentations', 'deactivate_instrumentations', 'logging_level', + 'opamp_polling_interval', + 'sampling_rate', 'send_logs', 'send_metrics', 'send_traces', @@ -210,7 +212,7 @@ describe('filterByAgent', () => { it('opentelemetry/python/elastic', () => { expect(getSettingKeysForAgent('opentelemetry/python/elastic')).toEqual( - expect.arrayContaining(['logging_level']) + expect.arrayContaining(['logging_level', 'sampling_rate']) ); }); diff --git a/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/index.ts b/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/index.ts index 343b513c600e5..1b27b28396e05 100644 --- a/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/index.ts +++ b/x-pack/solutions/observability/plugins/apm/common/agent_configuration/setting_definitions/index.ts @@ -47,7 +47,7 @@ function getSettingDefaults(setting: RawSettingDefinition): SettingDefinition { } case 'float': { - if (setting.key === 'transaction_sample_rate') { + if (setting.key === 'transaction_sample_rate' || setting.key === 'sampling_rate') { return { validation: floatFourDecimalPlacesRt, ...setting,