* [APM] Fix anomalies not showing up on transaction charts * Added API tests to check transaction groups charts for anomaly data * Improve test names and assertions from PR feedback * Updated the transaction groups chart API to make `environment` a required param while making `uiFilters` optional * updates the basic API tests for transaction_groups/charts with the required `environment` param * makes uiFIltersES default to [] on core setup and removes SetupUIFilters type * fixes vertical shade * - replaces uiFiltersES with esFilter & uiFilters and cleans up related code around these - deduplicates the required environment in the transaction_groups/charts API * updates basic apm_api_integration tests * pr feedback * updates api test snapshots with correct anomaly data * removed environment query param from useTransactionCharts and ensures it's included in uiFilters returned from useUrlParams Co-authored-by: Oliver Gupte <olivergupte@gmail.com>
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
/*
|
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
* or more contributor license agreements. Licensed under the Elastic License;
|
|
* you may not use this file except in compliance with the Elastic License.
|
|
*/
|
|
|
|
import { Setup, SetupTimeRange } from '../../server/lib/helpers/setup_request';
|
|
import { SERVICE_NAME } from '../../common/elasticsearch_fieldnames';
|
|
import { rangeFilter } from '../../common/utils/range_filter';
|
|
import { ProcessorEvent } from '../../common/processor_event';
|
|
import { getProcessorEventForAggregatedTransactions } from '../lib/helpers/aggregated_transactions';
|
|
|
|
export function getServicesProjection({
|
|
setup,
|
|
searchAggregatedTransactions,
|
|
}: {
|
|
setup: Setup & SetupTimeRange;
|
|
searchAggregatedTransactions: boolean;
|
|
}) {
|
|
const { start, end, esFilter } = setup;
|
|
|
|
return {
|
|
apm: {
|
|
events: [
|
|
getProcessorEventForAggregatedTransactions(
|
|
searchAggregatedTransactions
|
|
),
|
|
ProcessorEvent.metric as const,
|
|
ProcessorEvent.error as const,
|
|
],
|
|
},
|
|
body: {
|
|
size: 0,
|
|
query: {
|
|
bool: {
|
|
filter: [{ range: rangeFilter(start, end) }, ...esFilter],
|
|
},
|
|
},
|
|
aggs: {
|
|
services: {
|
|
terms: {
|
|
field: SERVICE_NAME,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
}
|