6a3aadc9f2
* Initial implementation * More logs UI work * Remove unnecessary code * Add support to build a logs url based on the cluster and/or node uuid * Deep link directly * Update link * Use CCS to access remote filebeat data * Fix existing tests * Add log specific api integration tests * Localization * Adding more localization * Adding unit tests for logs ui * Client side unit tests, configuration for log fetch count, adding visual callout for why we can't detect logs * Remove debug * Fix localization issue * Update tests * PR feedback * Update import * Format the count to avoid a huge string of numbers * Use @timestamp instead * Handle scenario where the time period is not right but the type exists * Update jest tests * Update api tests * Text changes * Add periods * Update tests
82 lines
3.3 KiB
JavaScript
82 lines
3.3 KiB
JavaScript
/*
|
|
* 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 { XPACK_INFO_API_DEFAULT_POLL_FREQUENCY_IN_MILLIS } from '../../server/lib/constants';
|
|
|
|
/**
|
|
* User-configurable settings for xpack.monitoring via configuration schema
|
|
* @param {Object} Joi - HapiJS Joi module that allows for schema validation
|
|
* @return {Object} config schema
|
|
*/
|
|
export const config = (Joi) => {
|
|
const DEFAULT_REQUEST_HEADERS = [ 'authorization' ];
|
|
|
|
return Joi.object({
|
|
ccs: Joi.object({
|
|
enabled: Joi.boolean().default(true)
|
|
}).default(),
|
|
enabled: Joi.boolean().default(true),
|
|
ui: Joi.object({
|
|
enabled: Joi.boolean().default(true),
|
|
container: Joi.object({
|
|
elasticsearch: Joi.object({
|
|
enabled: Joi.boolean().default(false)
|
|
}).default(),
|
|
logstash: Joi.object({
|
|
enabled: Joi.boolean().default(false)
|
|
}).default()
|
|
}).default()
|
|
}).default(),
|
|
kibana: Joi.object({
|
|
collection: Joi.object({
|
|
enabled: Joi.boolean().default(true),
|
|
interval: Joi.number().default(10000) // op status metrics get buffered at `ops.interval` and flushed to the bulk endpoint at this interval
|
|
}).default()
|
|
}).default(),
|
|
cluster_alerts: Joi.object({
|
|
enabled: Joi.boolean().default(true),
|
|
email_notifications: Joi.object({
|
|
enabled: Joi.boolean().default(true),
|
|
email_address: Joi.string().email(),
|
|
}).default()
|
|
}).default(),
|
|
xpack_api_polling_frequency_millis: Joi.number().default(XPACK_INFO_API_DEFAULT_POLL_FREQUENCY_IN_MILLIS),
|
|
max_bucket_size: Joi.number().default(10000),
|
|
min_interval_seconds: Joi.number().default(10),
|
|
show_license_expiration: Joi.boolean().default(true),
|
|
agent: Joi.object({
|
|
interval: Joi.string().regex(/[\d\.]+[yMwdhms]/).default('10s')
|
|
}).default(),
|
|
elasticsearch: Joi.object({
|
|
customHeaders: Joi.object().default({}),
|
|
logQueries: Joi.boolean().default(false),
|
|
requestHeadersWhitelist: Joi.array().items().single().default(DEFAULT_REQUEST_HEADERS),
|
|
sniffOnStart: Joi.boolean().default(false),
|
|
sniffInterval: Joi.number().allow(false).default(false),
|
|
sniffOnConnectionFault: Joi.boolean().default(false),
|
|
hosts: Joi.array().items(Joi.string().uri({ scheme: ['http', 'https'] })).single(), // if empty, use Kibana's connection config
|
|
username: Joi.string(),
|
|
password: Joi.string(),
|
|
requestTimeout: Joi.number().default(30000),
|
|
pingTimeout: Joi.number().default(30000),
|
|
ssl: Joi.object({
|
|
verificationMode: Joi.string().valid('none', 'certificate', 'full').default('full'),
|
|
certificateAuthorities: Joi.array().single().items(Joi.string()),
|
|
certificate: Joi.string(),
|
|
key: Joi.string(),
|
|
keyPassphrase: Joi.string(),
|
|
alwaysPresentCertificate: Joi.boolean().default(false),
|
|
}).default(),
|
|
apiVersion: Joi.string().default('master'),
|
|
logFetchCount: Joi.number().default(10)
|
|
}).default(),
|
|
tests: Joi.object({
|
|
cloud_detector: Joi.object({
|
|
enabled: Joi.boolean().default(true)
|
|
}).default()
|
|
}).default(),
|
|
}).default();
|
|
};
|