4ddcd1d2a6
* [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>
72 lines
1.8 KiB
TypeScript
72 lines
1.8 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,
|
|
TRANSACTION_TYPE,
|
|
TRANSACTION_NAME,
|
|
} from '../../common/elasticsearch_fieldnames';
|
|
import { rangeFilter } from '../../common/utils/range_filter';
|
|
import {
|
|
getProcessorEventForAggregatedTransactions,
|
|
getDocumentTypeFilterForAggregatedTransactions,
|
|
} from '../lib/helpers/aggregated_transactions';
|
|
|
|
export function getTransactionsProjection({
|
|
setup,
|
|
serviceName,
|
|
transactionName,
|
|
transactionType,
|
|
searchAggregatedTransactions,
|
|
}: {
|
|
setup: Setup & SetupTimeRange;
|
|
serviceName?: string;
|
|
transactionName?: string;
|
|
transactionType?: string;
|
|
searchAggregatedTransactions: boolean;
|
|
}) {
|
|
const { start, end, esFilter } = setup;
|
|
|
|
const transactionNameFilter = transactionName
|
|
? [{ term: { [TRANSACTION_NAME]: transactionName } }]
|
|
: [];
|
|
const transactionTypeFilter = transactionType
|
|
? [{ term: { [TRANSACTION_TYPE]: transactionType } }]
|
|
: [];
|
|
const serviceNameFilter = serviceName
|
|
? [{ term: { [SERVICE_NAME]: serviceName } }]
|
|
: [];
|
|
|
|
const bool = {
|
|
filter: [
|
|
{ range: rangeFilter(start, end) },
|
|
...transactionNameFilter,
|
|
...transactionTypeFilter,
|
|
...serviceNameFilter,
|
|
...esFilter,
|
|
...getDocumentTypeFilterForAggregatedTransactions(
|
|
searchAggregatedTransactions
|
|
),
|
|
],
|
|
};
|
|
|
|
return {
|
|
apm: {
|
|
events: [
|
|
getProcessorEventForAggregatedTransactions(
|
|
searchAggregatedTransactions
|
|
),
|
|
],
|
|
},
|
|
body: {
|
|
query: {
|
|
bool,
|
|
},
|
|
},
|
|
};
|
|
}
|