[APM] Remove enableContinuousRollups setting and enable it by default (#219054)

## Summary

Part of #218501

This PR removes the advanced setting
`observability:enableContinuousRollups` and enables the feature by
default
This commit is contained in:
Sergi Romeu 2025-05-06 15:03:39 +02:00 committed by GitHub
parent 852966c73d
commit 74408094ba
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 5 additions and 120 deletions

View file

@ -309,9 +309,6 @@ $$$apm-aws-price$$$`observability:apmAWSLambdaPriceFactor`
$$$apm-aws-request$$$`observability:apmAWSLambdaRequestCostPerMillion`
: Set the AWS Lambda cost per million requests.
$$$apm-continuous-rollups$$$`observability:apmEnableContinuousRollups`
: [beta] When continuous rollups is enabled, the UI will select metrics with the appropriate resolution. On larger time ranges, lower resolution metrics will be used, which will improve loading times.
$$$observability-apm-labs$$$`observability:apmLabsButton`
: Enable or disable the APM Labs buttona quick way to enable and disable technical preview features in APM.

View file

@ -120,8 +120,6 @@ export const OBSERVABILITY_ENABLE_INSPECT_ES_QUERIES_ID = 'observability:enableI
export const OBSERVABILITY_MAX_SUGGESTIONS_ID = 'observability:maxSuggestions';
export const OBSERVABILITY_PROFILING_ELASTICSEARCH_PLUGIN_ID =
'observability:profilingElasticsearchPlugin';
export const OBSERVABILITY_APM_ENABLE_CONTINUOUS_ROLLUPS_ID =
'observability:apmEnableContinuousRollups';
export const OBSERVABILITY_APM_ENABLE_PROFILING_INTEGRATION_ID =
'observability:apmEnableProfilingIntegration';
export const OBSERVABILITY_APM_ENABLE_TABLE_SEARCH_BAR = 'observability:apmEnableTableSearchBar';

View file

@ -19,7 +19,6 @@ export const OBSERVABILITY_PROJECT_SETTINGS = [
settings.OBSERVABILITY_APM_LABS_BUTTON_ID,
settings.OBSERVABILITY_APM_AWS_LAMBDA_PRICE_FACTOR_ID,
settings.OBSERVABILITY_APM_AWS_LAMBDA_REQUEST_COST_PER_MILLION_ID,
settings.OBSERVABILITY_APM_ENABLE_CONTINUOUS_ROLLUPS_ID,
settings.OBSERVABILITY_APM_PROGRESSIVE_LOADING_ID,
settings.OBSERVABILITY_APM_TRACE_EXPLORER_TAB_ID,
settings.OBSERVABILITY_ENABLE_INFRASTRUCTURE_ASSET_CUSTOM_DASHBOARDS_ID,

View file

@ -456,10 +456,6 @@ export const stackManagementSchema: MakeSchemaFrom<UsageStats> = {
type: 'boolean',
_meta: { description: 'Non-default value of setting.' },
},
'observability:apmEnableContinuousRollups': {
type: 'boolean',
_meta: { description: 'Non-default value of setting.' },
},
'observability:apmEnableTableSearchBar': {
type: 'boolean',
_meta: { description: 'Non-default value of setting.' },

View file

@ -40,7 +40,6 @@ export interface UsageStats {
'observability:maxSuggestions': number;
'observability:enableComparisonByDefault': boolean;
'observability:enableServiceGroups': boolean;
'observability:apmEnableContinuousRollups': boolean;
'observability:apmAWSLambdaPriceFactor': string;
'observability:apmAWSLambdaRequestCostPerMillion': number;
'observability:enableInfrastructureProfilingIntegration': boolean;

View file

@ -11244,12 +11244,6 @@
"description": "Non-default value of setting."
}
},
"observability:apmEnableContinuousRollups": {
"type": "boolean",
"_meta": {
"description": "Non-default value of setting."
}
},
"observability:apmEnableTableSearchBar": {
"type": "boolean",
"_meta": {

View file

@ -31872,8 +31872,6 @@
"xpack.observability.apmAWSLambdaPricePerGbSeconds": "Facteur de prix AWS Lambda",
"xpack.observability.apmAWSLambdaPricePerGbSecondsDescription": "Prix par Go-seconde.",
"xpack.observability.apmAWSLambdaRequestCostPerMillion": "Prix AWS Lambda pour 1M de requêtes",
"xpack.observability.apmEnableContinuousRollups": "Cumuls continus",
"xpack.observability.apmEnableContinuousRollupsDescription": "{betaLabel} Lorsque les cumuls continus sont activés, l'interface utilisateur sélectionne des indicateurs ayant la résolution appropriée. Sur des plages temporelles plus larges, des indicateurs de résolution inférieure sont utilisés, ce qui améliore les temps de chargement.",
"xpack.observability.apmEnableProfilingIntegration": "Activer l'intégration Universal Profiling dans APM",
"xpack.observability.apmEnableServiceInventoryTableSearchBar": "Recherche instantanée dans le tableau de l'inventaire des services",
"xpack.observability.apmEnableServiceInventoryTableSearchBarDescription": "{technicalPreviewLabel} permet une recherche plus rapide dans le tableau d'inventaire des services APM grâce à l'ajout d'une barre de recherche avec filtrage en temps réel.",

View file

@ -31850,8 +31850,6 @@
"xpack.observability.apmAWSLambdaPricePerGbSeconds": "AWS Lambda価格要因",
"xpack.observability.apmAWSLambdaPricePerGbSecondsDescription": "Gb秒ごとの料金。",
"xpack.observability.apmAWSLambdaRequestCostPerMillion": "1MリクエストごとのAWS Lambdaの料金",
"xpack.observability.apmEnableContinuousRollups": "連続ロールアップ",
"xpack.observability.apmEnableContinuousRollupsDescription": "{betaLabel}連続ロールアップが有効な場合、UIは適切な解像度でメトリックを選択します。より大きな時間範囲では、より低い解像度の測定基準が使用され、読み込み時間が改善されます。",
"xpack.observability.apmEnableProfilingIntegration": "APMでユニバーサルプロファイリング統合を有効化",
"xpack.observability.apmEnableServiceInventoryTableSearchBar": "サービスインベントリインスタントテーブル検索",
"xpack.observability.apmEnableServiceInventoryTableSearchBarDescription": "{technicalPreviewLabel}簡単な検索バーとライブフィルタリングを追加して、APMサービスインベントリテーブルでの検索を高速化できます。",

View file

@ -31904,8 +31904,6 @@
"xpack.observability.apmAWSLambdaPricePerGbSeconds": "AWS lambda 价格因素",
"xpack.observability.apmAWSLambdaPricePerGbSecondsDescription": "每 Gb-秒的价格。",
"xpack.observability.apmAWSLambdaRequestCostPerMillion": "AWS lambda 每 1M 请求的价格",
"xpack.observability.apmEnableContinuousRollups": "连续汇总/打包",
"xpack.observability.apmEnableContinuousRollupsDescription": "{betaLabel} 启用连续汇总/打包时UI 将以适当分辨率选择指标。在更大时间范围内,将使用分辨率较低的指标,这会缩短加载时间。",
"xpack.observability.apmEnableProfilingIntegration": "在 APM 中启用 Universal Profiling 集成",
"xpack.observability.apmEnableServiceInventoryTableSearchBar": "服务库存即时表搜索",
"xpack.observability.apmEnableServiceInventoryTableSearchBarDescription": "{technicalPreviewLabel} 通过添加一个具有实时筛选功能的便捷搜索栏,在 APM 服务库存表中实现更快的搜索。",

View file

@ -16,7 +16,6 @@ import {
enableInspectEsQueries,
apmAWSLambdaPriceFactor,
apmAWSLambdaRequestCostPerMillion,
apmEnableContinuousRollups,
apmEnableProfilingIntegration,
apmEnableTableSearchBar,
apmEnableTransactionProfiling,
@ -50,7 +49,6 @@ function getApmSettingsKeys(isProfilingIntegrationEnabled: boolean) {
apmLabsButton,
apmAWSLambdaPriceFactor,
apmAWSLambdaRequestCostPerMillion,
apmEnableContinuousRollups,
apmEnableTableSearchBar,
apmEnableServiceInventoryTableSearchBar,
apmEnableServiceMapApiV2,

View file

@ -5,7 +5,6 @@
* 2.0.
*/
import React, { createContext } from 'react';
import { apmEnableContinuousRollups } from '@kbn/observability-plugin/common';
import type { IUiSettingsClient } from '@kbn/core/public';
import type { TimeRangeMetadata } from '../../../common/time_range_metadata';
import { useApmParams } from '../../hooks/use_apm_params';
@ -73,8 +72,6 @@ export function TimeRangeMetadataContextProvider({
end: string;
kuery: string;
}) {
const enableContinuousRollups = uiSettings.get<boolean>(apmEnableContinuousRollups, true);
const fetcherResult = useFetcher(
(callApmApi) => {
return callApmApi('GET /internal/apm/time_range_metadata', {
@ -84,12 +81,11 @@ export function TimeRangeMetadataContextProvider({
end,
kuery,
useSpanName,
enableContinuousRollups,
},
},
});
},
[start, end, kuery, useSpanName, enableContinuousRollups]
[start, end, kuery, useSpanName]
);
return (

View file

@ -19,7 +19,6 @@ export const timeRangeMetadataRoute = createApmServerRoute({
query: t.intersection([
t.type({
useSpanName: toBooleanRt,
enableContinuousRollups: toBooleanRt,
}),
kueryRt,
rangeRt,
@ -31,7 +30,7 @@ export const timeRangeMetadataRoute = createApmServerRoute({
const apmDataAccessServices = await getApmDataAccessServices({ apmEventClient, ...resources });
const {
query: { useSpanName, start, end, kuery, enableContinuousRollups },
query: { useSpanName, start, end, kuery },
} = resources.params;
const [isUsingServiceDestinationMetrics, sources] = await Promise.all([
@ -46,7 +45,6 @@ export const timeRangeMetadataRoute = createApmServerRoute({
start,
end,
kuery,
enableContinuousRollups,
}),
]);

View file

@ -23,7 +23,6 @@ export interface DocumentSourcesRequest {
start: number;
end: number;
kuery: string;
enableContinuousRollups: boolean;
}
const getRequest = ({
@ -60,13 +59,11 @@ export async function getDocumentSources({
start,
end,
kuery,
enableContinuousRollups,
}: {
apmEventClient: APMEventClient;
start: number;
end: number;
kuery: string;
enableContinuousRollups: boolean;
}): Promise<TimeRangeMetadata['sources']> {
const documentTypesToCheck = [
ApmDocumentType.ServiceTransactionMetric as const,
@ -78,7 +75,6 @@ export async function getDocumentSources({
start,
end,
kuery,
enableContinuousRollups,
documentTypesToCheck,
});
@ -98,18 +94,15 @@ const getDocumentTypesInfo = async ({
start,
end,
kuery,
enableContinuousRollups,
documentTypesToCheck,
}: {
apmEventClient: APMEventClient;
start: number;
end: number;
kuery: string;
enableContinuousRollups: boolean;
documentTypesToCheck: ApmDocumentType[];
}): Promise<TimeRangeMetadata['sources']> => {
const getRequests = getDocumentTypeRequestsFn({
enableContinuousRollups,
start,
end,
kuery,
@ -153,24 +146,12 @@ const getDocumentTypesInfo = async ({
};
const getDocumentTypeRequestsFn =
({
enableContinuousRollups,
start,
end,
kuery,
}: {
enableContinuousRollups: boolean;
start: number;
end: number;
kuery: string;
}) =>
({ start, end, kuery }: { start: number; end: number; kuery: string }) =>
(documentType: ApmDocumentType) => {
const currentRange = rangeQuery(start, end);
const kql = kqlQuery(kuery);
const rollupIntervals = enableContinuousRollups
? getConfigForDocumentType(documentType).rollupIntervals
: [RollupInterval.OneMinute];
const rollupIntervals = getConfigForDocumentType(documentType).rollupIntervals;
return rollupIntervals.map((rollupInterval) => ({
documentType,

View file

@ -8,15 +8,9 @@ import type { ApmDataAccessServicesParams } from '../get_services';
import { getDocumentSources, type DocumentSourcesRequest } from './get_document_sources';
export function createGetDocumentSources({ apmEventClient }: ApmDataAccessServicesParams) {
return async ({
enableContinuousRollups,
end,
kuery,
start,
}: Omit<DocumentSourcesRequest, 'apmEventClient'>) => {
return async ({ end, kuery, start }: Omit<DocumentSourcesRequest, 'apmEventClient'>) => {
return getDocumentSources({
apmEventClient,
enableContinuousRollups,
end,
kuery,
start,

View file

@ -7,7 +7,6 @@
import { APMEventClient } from '@kbn/apm-data-access-plugin/server';
import type { KibanaRequest } from '@kbn/core/server';
import { apmEnableContinuousRollups } from '@kbn/observability-plugin/common';
import { UI_SETTINGS } from '@kbn/data-plugin/server';
import type { InfraPluginRequestHandlerContext } from '../../types';
import type { InfraBackendLibs } from '../infra_types';
@ -67,15 +66,10 @@ export const getApmDataAccessClient = ({
end: number;
kuery?: string;
}) => {
const enableContinuousRollups = await uiSettingsClient.get<boolean>(
apmEnableContinuousRollups
);
return services.getDocumentSources({
start,
end,
kuery,
enableContinuousRollups,
});
},
};

View file

@ -35,7 +35,6 @@ export {
entityCentricExperience,
apmAWSLambdaPriceFactor,
apmAWSLambdaRequestCostPerMillion,
apmEnableContinuousRollups,
syntheticsThrottlingEnabled,
apmEnableProfilingIntegration,
profilingShowErrorFrames,

View file

@ -24,7 +24,6 @@ export const apmEnableServiceInventoryTableSearchBar =
'observability:apmEnableServiceInventoryTableSearchBar';
export const apmAWSLambdaPriceFactor = 'observability:apmAWSLambdaPriceFactor';
export const apmAWSLambdaRequestCostPerMillion = 'observability:apmAWSLambdaRequestCostPerMillion';
export const apmEnableContinuousRollups = 'observability:apmEnableContinuousRollups';
export const syntheticsThrottlingEnabled = 'observability:syntheticsThrottlingEnabled';
export const enableLegacyUptimeApp = 'observability:enableLegacyUptimeApp';
export const apmEnableProfilingIntegration = 'observability:apmEnableProfilingIntegration';

View file

@ -22,7 +22,6 @@ import {
entityCentricExperience,
apmAWSLambdaPriceFactor,
apmAWSLambdaRequestCostPerMillion,
apmEnableContinuousRollups,
syntheticsThrottlingEnabled,
enableLegacyUptimeApp,
apmEnableProfilingIntegration,
@ -343,21 +342,6 @@ export const uiSettings: Record<string, UiSettings> = {
schema: schema.number({ min: 0 }),
solution: 'oblt',
},
[apmEnableContinuousRollups]: {
category: [observabilityFeatureId],
name: i18n.translate('xpack.observability.apmEnableContinuousRollups', {
defaultMessage: 'Continuous rollups',
}),
value: true,
description: i18n.translate('xpack.observability.apmEnableContinuousRollupsDescription', {
defaultMessage:
'{betaLabel} When continuous rollups is enabled, the UI will select metrics with the appropriate resolution. On larger time ranges, lower resolution metrics will be used, which will improve loading times.',
values: { betaLabel: `<em>[${betaLabel}]</em>` },
}),
schema: schema.boolean(),
requiresPageReload: true,
solution: 'oblt',
},
[syntheticsThrottlingEnabled]: {
category: [observabilityFeatureId],
name: i18n.translate('xpack.observability.syntheticsThrottlingEnabledExperimentName', {

View file

@ -96,7 +96,6 @@ export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderCon
query: {
start: endLegacy.toISOString(),
end: end.toISOString(),
enableContinuousRollups: true,
useSpanName: false,
kuery: '',
},
@ -123,7 +122,6 @@ export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderCon
query: {
start: startLegacy.toISOString(),
end: endLegacy.toISOString(),
enableContinuousRollups: true,
useSpanName: false,
kuery: '',
},
@ -144,7 +142,6 @@ export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderCon
query: {
start: startLegacy.toISOString(),
end: end.toISOString(),
enableContinuousRollups: true,
useSpanName: false,
kuery: '',
},

View file

@ -39,7 +39,6 @@ export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderCon
query: {
start: overrides.start.toISOString(),
end: overrides.end.toISOString(),
enableContinuousRollups: true,
useSpanName: false,
kuery: '',
...omit(overrides, 'start', 'end'),
@ -332,37 +331,6 @@ export default function ApiTest({ getService }: DeploymentAgnosticFtrProviderCon
});
});
describe('with continuous rollups disabled', () => {
it('returns only 1m intervals', async () => {
const response = await getTimeRangeMetadata({
start,
end,
enableContinuousRollups: false,
});
expect(response.sources).to.eql([
{
documentType: ApmDocumentType.ServiceTransactionMetric,
rollupInterval: RollupInterval.OneMinute,
hasDocs: true,
hasDurationSummaryField: true,
},
{
documentType: ApmDocumentType.TransactionEvent,
rollupInterval: RollupInterval.None,
hasDocs: true,
hasDurationSummaryField: false,
},
{
documentType: ApmDocumentType.TransactionMetric,
rollupInterval: RollupInterval.OneMinute,
hasDocs: true,
hasDurationSummaryField: true,
},
]);
});
});
describe('when data is available before the time range', () => {
it('marks all those sources as available', async () => {
const response = await getTimeRangeMetadata({