* bump to a pre-8.0 version * export KibanaClient from /lib sub-folder * workaround the problem of the absence of estypes * update es client usage in pacakges * export estypes from another path * import errors from root * import errors from root 2 * update transport import * update import path for /api/types * update import path for /api/types * import errors from top export * use TransportResult instead if ApiResponse * fix errors in client_config * fix src/core/server/saved_objects/migrationsv2/actions/integration_tests/actions.test.ts * use KibanaClient in mock. we dont export the original Client * fix client mocks * fix errors on SO * fix remaining core errors * update estype import path * fix errors in data plugin * fix data_views * fix es_ui_shared * fix errors in interactive_setup * fix errors in ./test folder * add @elastic/transport to the runtime deps * fix errors in packages * fix erros in src/core * fix errors in test/ * fix an error in actions plugin * woraround and fix errors in APM plugin * fix errors in canvas * fix errors in event_log * fix errors in fleet * fix errors in ILM * fix errors in infra * fix errors in ingest_pipeline * fix errors in lens * fix errors in license_management * fix errors in licensing * fix errors in logstash * fix errors in ml * fix errors in monitoring * fix errors in observability * fix errors in rule_registry * fix errors in reporting * fix errors in rule_registry * fix errors in security * fix errors in security_solution * fix errors in snapshot_restore * fix errors in transform * fix errors in UA * fix errors in uptime * fix errors in x-pack/test * fix eslint errors * fix new errors * use default HTTP Connection. Undici does not support agent config options keepAlive and maxSockets * create does not accept require_alias option * update deps * use transport types exported from ES client package * fix ErrorCause | string errors * do not use enum * fix errors in data plugin * update x-pack code * fix transport * fix apm search request * do not crash on reporting * fix kbn-test build * mute reporting error to start * fix ftr build * another attempt * update import path * address or mute new errors * REMOVE me. pin transport version temporarily. * remove deep imports from transport package * fix jest crash * fix product check tests * remove unnecessary ts-expect-error * fix a few failed unit tests * bump to canary 24 * remove unnecessary ts-expect-error * remove dependency on transport * fix types in tests * mute errors in xpack tests * product check doesn;t spam in logs anymore * filterPath --> filter_path * ignoreUnavailable --> ignore_unavailable * ignoreUnavailable --> ignore_unavailable * trackScores --> track_scores * trackTotalHits --> track_total_hits * fix es-arcives * fix data plugin crashes * fix watcher test utils * rollback unnecessary changes * fix another problem in es-archiver * fix scroll. for whatever reason scroll fails when request scroll_id in body * add meta: true in kbn-securitysolution-es-utils * bump client to canary 25 * fix errors in accordance with the es client spec * update securityscolution-es-utils * unify scroll api in reporting and fix tests * fix unit tests in watcher * refactor APM to abort request with AbortController API * fix missing es client calls in tests * fix missing meta in detection engine FTR tests * fix another bunch of errors in js tests * fix wrong coercion * remove test-grep pattern * fix apm unit test * rename terminateAfter to terminate_after in infra plugin * rename terminateAfter to terminate_after in uptime plugin * rename terminateAfter to terminate_after in apm plugin * fix security roles FTR tests * fix reference * fix post_privilidges test * fix post_privilidges * bump client to 26 * add meta for index_management test helpers * remove ts-expect-error caused by bad type in reason * bump client to 27 * REMOVE me. workaround until fixed in the es client * fix incorrect type casting * swtich from camelCase params * use `HttpConnection` for FTR-related clients * bump client to 29 * Revert "REMOVE me. workaround until fixed in the es client" This reverts commitc038850c09
. * fix new util * revert repository changes * do not crash if cannot store event_loop data * fix new estypes imports * fix more types * fix security test types and add ts-ignore for custom ES client * fix more estypes imports * yet more ts violations * line by line fixing is hard * adapt `evaluateAlert` from infra as it's also used from FTR tests * use convertToKibanaClient in FTR test instead of meta:true in plugin code * migrate from deprecated API in fleet * fix intergration tests * fix fleet tests * fix another fleet test * fix more tests * let's call it a day * Removes custom header check on 404 responses, includes es client ProductNotSupportedError in EsUnavailableError conditional (#116029) * Removes custom header check on 404 responses, includes es client ProductNotSupportedError in EsUnavailableError conditional * Updates proxy response integration test * disable APM until compatible with client v8 * skip async_search FTR test * use kbnClient in integration tests * bump version to 29 * bump to 30 * have configureClient return a KibanaClient instead of Client, remove resolved violations. * bump to 31 * bump to 31 * Revert "bump to 31" This reverts commit5ac713e640
. * trigger stop to unusubscribe * update generated docs * remove obsolete test * put "as" back * cleanup * skip test * remove new type errors in apm package * remove ErrorCause casting * update a comment * bump version to 32 * remove unnecessary ts-expect-error in apm code * update comments * update to client v33 * remove outdated type definition * bump to 34 without params mutation * unskip the test that should not fail anymore * remove unnecessary ts-expect-error comments * update to v35. body can be string * move `sort` to body and use body friendly syntax * fix a failing test. maps register the same SO that has been already registered by home Co-authored-by: pgayvallet <pierre.gayvallet@gmail.com> Co-authored-by: Christiane (Tina) Heiligers <christiane.heiligers@elastic.co>
68 lines
2 KiB
TypeScript
68 lines
2 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
|
|
* 2.0; you may not use this file except in compliance with the Elastic License
|
|
* 2.0.
|
|
*/
|
|
|
|
import { CiStatsReporter } from '@kbn/dev-utils';
|
|
import { FtrProviderContext } from './../functional/ftr_provider_context';
|
|
|
|
const IGNORED_FIELDS = [
|
|
// The following fields are returned by the _field_caps API but aren't counted
|
|
// towards the index field limit.
|
|
'_seq_no',
|
|
'_id',
|
|
'_version',
|
|
'_field_names',
|
|
'_ignored',
|
|
'_feature',
|
|
'_index',
|
|
'_routing',
|
|
'_source',
|
|
'_type',
|
|
'_nested_path',
|
|
'_timestamp',
|
|
// migrationVersion is dynamic so will be anywhere between 1..type count
|
|
// depending on which objects are present in the index when querying the
|
|
// field caps API. See https://github.com/elastic/kibana/issues/70815
|
|
'migrationVersion',
|
|
];
|
|
|
|
export async function testRunner({ getService }: FtrProviderContext) {
|
|
const log = getService('log');
|
|
const es = getService('es');
|
|
|
|
const reporter = CiStatsReporter.fromEnv(log);
|
|
|
|
log.debug('Saved Objects field count metrics starting');
|
|
|
|
const { fields } = await es.fieldCaps({
|
|
index: '.kibana',
|
|
fields: '*',
|
|
});
|
|
|
|
const fieldCountPerTypeMap: Map<string, number> = Object.keys(fields)
|
|
.map((f) => f.split('.')[0])
|
|
.filter((f) => !IGNORED_FIELDS.includes(f))
|
|
.reduce((accumulator, f) => {
|
|
accumulator.set(f, accumulator.get(f) + 1 || 1);
|
|
return accumulator;
|
|
}, new Map());
|
|
|
|
const metrics = Array.from(fieldCountPerTypeMap.entries())
|
|
.sort((a, b) => a[0].localeCompare(b[0]))
|
|
.map(([fieldType, count]) => ({
|
|
group: 'Saved Objects .kibana field count',
|
|
id: fieldType,
|
|
value: count,
|
|
}));
|
|
|
|
log.debug(
|
|
'Saved Objects field count metrics:\n',
|
|
metrics.map(({ id, value }) => `${id}:${value}`).join('\n')
|
|
);
|
|
await reporter.metrics(metrics);
|
|
log.debug('Saved Objects field count metrics done');
|
|
}
|