From c940ee16aa954355c8975cca6e8fa514f5a9ce72 Mon Sep 17 00:00:00 2001 From: Timothy Sullivan Date: Wed, 15 Aug 2018 17:22:53 -0700 Subject: [PATCH] override default format for bulk upload for usage type collectors --- src/server/usage/classes/usage_collector.js | 31 ++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/server/usage/classes/usage_collector.js b/src/server/usage/classes/usage_collector.js index d8ddd8a2552521..559deaef2ce15c 100644 --- a/src/server/usage/classes/usage_collector.js +++ b/src/server/usage/classes/usage_collector.js @@ -17,6 +17,35 @@ * under the License. */ +import { KIBANA_STATS_TYPE } from '../../status/constants'; import { Collector } from './collector'; -export class UsageCollector extends Collector {} +export class UsageCollector extends Collector { + /* + * @param {Object} server - server object + * @param {String} options.type - property name as the key for the data + * @param {Function} options.init (optional) - initialization function + * @param {Function} options.fetch - function to query data + * @param {Function} options.formatForBulkUpload - optional + * @param {Function} options.rest - optional other properties + */ + constructor(server, { type, init, fetch, formatForBulkUpload = null, ...options } = {}) { + super(server, { type, init, fetch, formatForBulkUpload, ...options }); + + /* + * Currently, for internal bulk uploading, usage stats are part of + * `kibana_stats` type, under the `usage` namespace in the document. + */ + const defaultUsageFormatterForBulkUpload = result => { + return { + type: KIBANA_STATS_TYPE, + payload: { + usage: { + [type]: result + } + } + }; + }; + this._formatForBulkUpload = formatForBulkUpload || defaultUsageFormatterForBulkUpload; + } +}