diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 9194d4df1..2307b9b18 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -70,10 +70,6 @@ jobs: run: bin/sitespeed.js http://127.0.0.1:3001/simple/ -n 1 --graphite.host 127.0.0.1 --xvfb - name: Run test without a CLI run: xvfb-run node test/runWithoutCli.js - - name: Run test with Influx 1.8 - run: bin/sitespeed.js http://127.0.0.1:3001/simple/ -n 1 --influxdb.host 127.0.0.1 --xvfb --logToFile --resultBaseUrl https://result.sitespeed.io --influxdb.annotationScreenshot=true - - name: Run test with Influx 2.6.1 - run: bin/sitespeed.js http://127.0.0.1:3001/simple/ -n 1 --influxdb.host 127.0.0.1 --influxdb.port 8087 --influxdb.version 2 --influxdb.organisation sitespeed --influxdb.token sitespeed --xvfb --resultBaseUrl https://result.sitespeed.io --influxdb.annotationScreenshot=true - name: Run Chrome test with config run: node bin/sitespeed.js --config test/exampleConfig.json http://127.0.0.1:3001/simple/ --xvfb - name: Run Chrome test using compare plugin diff --git a/lib/cli/cli.js b/lib/cli/cli.js index 08d585990..2987dd22d 100644 --- a/lib/cli/cli.js +++ b/lib/cli/cli.js @@ -421,7 +421,7 @@ export async function parseCommandLine() { }) .option('browsertime.script', { describe: - 'Add custom Javascript that collect metrics and run after the page has finished loading. Note that --script can be passed multiple times if you want to collect multiple metrics. The metrics will automatically be pushed to the summary/detailed summary and each individual page + sent to Graphite/InfluxDB.', + 'Add custom Javascript that collect metrics and run after the page has finished loading. Note that --script can be passed multiple times if you want to collect multiple metrics. The metrics will automatically be pushed to the summary/detailed summary and each individual page + sent to Graphite', alias: ['script'], group: 'Browser' }) @@ -1346,78 +1346,6 @@ export async function parseCommandLine() { describe: 'Define which messages to send to Graphite. By default we do not send data per run, but you can change that by adding run as one of the options', group: 'Graphite' - }) - - .option('influxdb.protocol', { - describe: 'The protocol used to store connect to the InfluxDB host.', - default: 'http', - group: 'InfluxDB' - }) - .option('influxdb.host', { - describe: 'The InfluxDB host used to store captured metrics.', - group: 'InfluxDB' - }) - .option('influxdb.port', { - default: 8086, - describe: 'The InfluxDB port used to store captured metrics.', - group: 'InfluxDB' - }) - .option('influxdb.username', { - describe: - 'The InfluxDB username for your InfluxDB instance (only for InfluxDB v1)', - group: 'InfluxDB' - }) - .option('influxdb.password', { - describe: - 'The InfluxDB password for your InfluxDB instance (only for InfluxDB v1).', - group: 'InfluxDB' - }) - .option('influxdb.organisation', { - describe: - 'The InfluxDB organisation for your InfluxDB instance (only for InfluxDB v2)', - group: 'InfluxDB' - }) - .option('influxdb.token', { - describe: - 'The InfluxDB token for your InfluxDB instance (only for InfluxDB v2)', - group: 'InfluxDB' - }) - .option('influxdb.version', { - default: 1, - describe: 'The InfluxDB version of your InfluxDB instance.', - type: 'integer', - group: 'InfluxDB' - }) - .option('influxdb.database', { - default: 'sitespeed', - describe: 'The database name used to store captured metrics.', - group: 'InfluxDB' - }) - .option('influxdb.tags', { - default: 'category=default', - describe: - 'A comma separated list of tags and values added to each metric', - group: 'InfluxDB' - }) - .option('influxdb.includeQueryParams', { - default: false, - describe: - 'Whether to include query parameters from the URL in the InfluxDB keys or not', - type: 'boolean', - group: 'InfluxDB' - }) - .option('influxdb.groupSeparator', { - default: '_', - describe: - 'Choose which character that will separate a group/domain. Default is underscore, set it to a dot if you wanna keep the original domain name.', - group: 'InfluxDB' - }) - .option('influxdb.annotationScreenshot', { - default: false, - type: 'boolean', - describe: - 'Include screenshot (from Browsertime) in the annotation. You need to specify a --resultBaseURL for this to work.', - group: 'InfluxDB' }); parsed @@ -1527,10 +1455,6 @@ export async function parseCommandLine() { default: browsertimeConfig.screenshotParams.maxSize, group: 'Screenshot' }); - /** - InfluxDB cli option - */ - parsed // Metrics .option('metrics.list', { @@ -2028,12 +1952,12 @@ export async function parseCommandLine() { }) .option('urlAlias', { describe: - 'Use an alias for the URL (if you feed URLs from a file you can instead have the alias in the file). You need to pass on the same amount of alias as URLs. The alias is used as the name of the URL on the HTML report and in Graphite/InfluxDB. Pass on multiple --urlAlias for multiple alias/URLs. This will override alias in a file.', + 'Use an alias for the URL (if you feed URLs from a file you can instead have the alias in the file). You need to pass on the same amount of alias as URLs. The alias is used as the name of the URL on the HTML report and in Graphite. Pass on multiple --urlAlias for multiple alias/URLs. This will override alias in a file.', type: 'string' }) .option('groupAlias', { describe: - 'Use an alias for the group/domain. You need to pass on the same amount of alias as URLs. The alias is used as the name of the group in Graphite/InfluxDB. Pass on multiple --groupAlias for multiple alias/groups. This do not work for scripting at the moment.', + 'Use an alias for the group/domain. You need to pass on the same amount of alias as URLs. The alias is used as the name of the group in Graphite. Pass on multiple --groupAlias for multiple alias/groups. This do not work for scripting at the moment.', type: 'string' }) .option('utc', { diff --git a/lib/plugins/grafana/send-annotation.js b/lib/plugins/grafana/send-annotation.js index 71278407d..1e6856a7a 100644 --- a/lib/plugins/grafana/send-annotation.js +++ b/lib/plugins/grafana/send-annotation.js @@ -41,9 +41,7 @@ export function send( options, group, url, - tsdbType === 'graphite' - ? options.graphite.includeQueryParams - : options.influxdb.includeQueryParams, + options.graphite.includeQueryParams, alias ).split('.'); diff --git a/lib/plugins/influxdb/data-generator.js b/lib/plugins/influxdb/data-generator.js deleted file mode 100644 index 9dc830644..000000000 --- a/lib/plugins/influxdb/data-generator.js +++ /dev/null @@ -1,262 +0,0 @@ -import merge from 'lodash.merge'; - -import { flattenMessageData } from '../../support/flattenMessage.js'; -import { - getConnectivity, - getURLAndGroup, - toSafeKey -} from '../../support/tsdbUtil.js'; - -function getAdditionalTags(key, type) { - let tags = {}; - const keyArray = key.split('.'); - if (/(^contentTypes)/.test(key)) { - // contentTypes.favicon.requests.mean - // contentTypes.favicon.requests - // contentTypes.css.transferSize - tags.contentType = keyArray[1]; - } else if (/(^pageTimings|^visualMetrics)/.test(key)) { - // pageTimings.serverResponseTime.max - // visualMetrics.SpeedIndex.median - tags.timings = keyArray[0]; - } else - switch (type) { - case 'browsertime.pageSummary': { - // statistics.timings.pageTimings.backEndTime.median - // statistics.timings.userTimings.marks.logoTime.median - // statistics.visualMetrics.SpeedIndex.median - tags[keyArray[0]] = keyArray[1]; - if (keyArray.length >= 5) { - tags[keyArray[2]] = keyArray[3]; - } - if (key.includes('cpu.categories')) { - tags.cpu = 'category'; - } else if (key.includes('cpu.events')) { - tags.cpu = 'event'; - } else if (key.includes('cpu.longTasks')) { - tags.cpu = 'longTask'; - } - - break; - } - case 'browsertime.summary': { - // firstPaint.median - // userTimings.marks.logoTime.median - if (key.includes('userTimings')) { - tags[keyArray[0]] = keyArray[1]; - } - - break; - } - case 'axe.pageSummary': { - tags.axeType = keyArray[0]; - break; - } - case 'coach.pageSummary': { - // advice.score - // advice.performance.score - if (keyArray.length > 2) { - tags.advice = keyArray[1]; - } - - // set the actual advice name - // advice.performance.adviceList.cacheHeaders.score - if (keyArray.length > 4) { - tags.adviceName = keyArray[3]; - } - - break; - } - case 'coach.summary': { - // score.max - // performance.score.median - if (keyArray.length === 3) { - tags.advice = keyArray[0]; - } - - break; - } - case 'pagexray.summary': { - // firstParty.requests.min pagexray.summary - // requests.median - // responseCodes.307.max pagexray.summary - // requests.min pagexray.summary - if (key.includes('responseCodes')) { - tags.responseCodes = 'response'; - } - - if (key.includes('firstParty') || key.includes('thirdParty')) { - tags.party = keyArray[0]; - } - - break; - } - case 'pagexray.pageSummary': { - // thirdParty.contentTypes.json.requests pagexray.pageSummary - // thirdParty.requests pagexray.pageSummary - // firstParty.cookieStats.max pagexray.pageSummary - // responseCodes.200 pagexray.pageSummary - // expireStats.max pagexray.pageSummary - // totalDomains pagexray.pageSummary - if (key.includes('firstParty') || key.includes('thirdParty')) { - tags.party = keyArray[0]; - } - if (key.includes('responseCodes')) { - tags.responseCodes = 'response'; - } - if (key.includes('contentTypes')) { - tags.contentType = keyArray[2]; - } - - break; - } - case 'thirdparty.pageSummary': { - tags.thirdPartyCategory = keyArray[1]; - tags.thirdPartyType = keyArray[2]; - - break; - } - case 'lighthouse.pageSummary': { - // categories.seo.score - // categories.performance.score - if (key.includes('score')) { - tags.audit = keyArray[1]; - } - if (key.includes('audits')) { - tags.audit = keyArray[1]; - } - - break; - } - case 'crux.pageSummary': { - tags.experience = keyArray[0]; - tags.formFactor = keyArray[1]; - tags.metric = keyArray[2]; - - break; - } - case 'gpsi.pageSummary': { - if (key.includes('googleWebVitals')) { - tags.testType = 'googleWebVitals'; - } else if (key.includes('score')) { - tags.testType = 'score'; - } else if (key.includes('loadingExperience')) { - tags.experience = keyArray[0]; - tags.metric = keyArray[1]; - tags.testType = 'crux'; - } - - break; - } - default: - // console.log('Missed added tags to ' + key + ' ' + type); - } - return tags; -} - -function getFieldAndSeriesName(key) { - const functions = [ - 'min', - 'p10', - 'median', - 'mean', - 'avg', - 'max', - 'p90', - 'p99', - 'mdev', - 'stddev', - 'rsd' - ]; - const keyArray = key.split('.'); - const end = keyArray.pop(); - if (functions.includes(end)) { - return { field: end, seriesName: keyArray.pop() }; - } - return { field: 'value', seriesName: end }; -} -export class InfluxDBDataGenerator { - constructor(includeQueryParameters, options) { - this.includeQueryParams = !!includeQueryParameters; - this.options = options; - this.defaultTags = {}; - for (let row of options.influxdb.tags.split(',')) { - const keyAndValue = row.split('='); - this.defaultTags[keyAndValue[0]] = keyAndValue[1]; - } - } - - dataFromMessage(message, time, alias) { - function getTagsFromMessage( - message, - includeQueryParameters, - options, - defaultTags - ) { - const tags = merge({}, defaultTags); - let typeParts = message.type.split('.'); - tags.origin = typeParts[0]; - typeParts.push(typeParts.shift()); - tags.summaryType = typeParts[0]; - - // always have browser and connectivity in Browsertime and related tools - if ( - /(^pagexray|^coach|^browsertime|^thirdparty|^axe|^sustainable)/.test( - message.type - ) - ) { - // if we have a friendly name for your connectivity, use that! - let connectivity = getConnectivity(options); - tags.connectivity = connectivity; - tags.browser = options.browser; - } else if (/(^gpsi)/.test(message.type)) { - tags.strategy = options.mobile ? 'mobile' : 'desktop'; - } - - // if we get a URL type, add the URL - if (message.url) { - const urlAndGroup = getURLAndGroup( - options, - message.group, - message.url, - includeQueryParameters, - alias - ).split('.'); - tags.page = urlAndGroup[1]; - tags.group = urlAndGroup[0]; - } else if (message.group) { - // add the group of the summary message - tags.group = toSafeKey(message.group, options.influxdb.groupSeparator); - } - - if (options.slug) { - tags.testName = options.slug; - } - - return tags; - } - return Object.entries(flattenMessageData(message)).reduce( - (entries, [key, value]) => { - const fieldAndSeriesName = getFieldAndSeriesName(key); - let tags = getTagsFromMessage( - message, - this.includeQueryParams, - this.options, - this.defaultTags - ); - tags = { ...getAdditionalTags(key, message.type), ...tags }; - const point = { - time: time.valueOf(), - [fieldAndSeriesName.field]: value - }; - entries.push({ - tags, - seriesName: fieldAndSeriesName.seriesName, - point - }); - return entries; - }, - [] - ); - } -} diff --git a/lib/plugins/influxdb/index.js b/lib/plugins/influxdb/index.js deleted file mode 100644 index 056626a9b..000000000 --- a/lib/plugins/influxdb/index.js +++ /dev/null @@ -1,176 +0,0 @@ -import { getLogger } from '@sitespeed.io/log'; -import dayjs from 'dayjs'; - -import { SitespeedioPlugin } from '@sitespeed.io/plugin'; -import { InfluxDBSender as Sender } from './sender.js'; -import { InfluxDB2Sender as SenderV2 } from './senderV2.js'; -import { sendV1 } from './send-annotation.js'; -import { sendV2 } from './send-annotationV2.js'; -import { InfluxDBDataGenerator as DataGenerator } from './data-generator.js'; -import { throwIfMissing, isEmpty } from '../../support/util.js'; - -const log = getLogger('sitespeedio.plugin.influxdb'); -export default class InfluxDBPlugin extends SitespeedioPlugin { - constructor(options, context, queue) { - super({ name: 'influxdb', options, context, queue }); - } - - open(context, options) { - throwIfMissing(options.influxdb, ['host', 'database'], 'influxdb'); - this.filterRegistry = context.filterRegistry; - log.debug( - 'Setup InfluxDB host %s and database %s', - options.influxdb.host, - options.influxdb.database - ); - - const options_ = options.influxdb; - this.options = options; - this.sender = - options_.version == 1 ? new Sender(options_) : new SenderV2(options_); - this.timestamp = context.timestamp; - this.resultUrls = context.resultUrls; - this.dataGenerator = new DataGenerator( - options_.includeQueryParams, - options - ); - this.messageTypesToFireAnnotations = []; - this.receivedTypesThatFireAnnotations = {}; - this.make = context.messageMaker('influxdb').make; - this.sendAnnotation = true; - this.alias = {}; - } - - processMessage(message, queue) { - const filterRegistry = this.filterRegistry; - - // First catch if we are running Browsertime and/or WebPageTest - switch (message.type) { - case 'browsertime.setup': { - this.messageTypesToFireAnnotations.push('browsertime.pageSummary'); - this.usingBrowsertime = true; - - break; - } - case 'browsertime.config': { - if (message.data.screenshot) { - this.useScreenshots = message.data.screenshot; - this.screenshotType = message.data.screenshotType; - } - - break; - } - case 'sitespeedio.setup': { - // Let other plugins know that the InfluxDB plugin is alive - queue.postMessage(this.make('influxdb.setup')); - - break; - } - case 'grafana.setup': { - this.sendAnnotation = false; - - break; - } - // No default - } - - if (message.type === 'browsertime.alias') { - this.alias[message.url] = message.data; - } - - if ( - !( - message.type.endsWith('.summary') || - message.type.endsWith('.pageSummary') - ) - ) { - return; - } - - if (this.messageTypesToFireAnnotations.includes(message.type)) { - this.receivedTypesThatFireAnnotations[message.url] - ? this.receivedTypesThatFireAnnotations[message.url]++ - : (this.receivedTypesThatFireAnnotations[message.url] = 1); - } - - // Let us skip this for a while and concentrate on the real deal - if ( - /(^largestassets|^slowestassets|^aggregateassets|^domains)/.test( - message.type - ) - ) - return; - - // we only sends individual groups to Influx, not the - // total of all groups (you can calculate that yourself) - if (message.group === 'total') { - return; - } - - message = filterRegistry.filterMessage(message); - if (isEmpty(message.data)) return; - - let data = this.dataGenerator.dataFromMessage( - message, - message.type === 'browsertime.pageSummary' - ? dayjs(message.runTime) - : this.timestamp, - this.alias - ); - - if (data.length > 0) { - log.debug('Send the following data to InfluxDB: %:2j', data); - return this.sender.send(data).then(() => { - // Make sure we only send the annotation once per URL: - // If we run browsertime, always send on browsertime.pageSummary - // If we run WebPageTest standalone, send on webPageTestSummary - // when we configured a base url - if ( - this.receivedTypesThatFireAnnotations[message.url] === - this.messageTypesToFireAnnotations.length && - this.resultUrls.hasBaseUrl() && - this.sendAnnotation - ) { - const absolutePagePath = this.resultUrls.absoluteSummaryPagePath( - message.url, - this.alias[message.url] - ); - this.receivedTypesThatFireAnnotations[message.url] = 0; - - return this.options.influxdb.version == 2 - ? sendV2( - message.url, - message.group, - absolutePagePath, - this.useScreenshots, - this.screenshotType, - // Browsertime pass on when the first run was done for that URL - message.runTime, - this.alias, - this.usingBrowsertime, - this.options - ) - : sendV1( - message.url, - message.group, - absolutePagePath, - this.useScreenshots, - this.screenshotType, - // Browsertime pass on when the first run was done for that URL - message.runTime, - this.alias, - this.usingBrowsertime, - this.options - ); - } - }); - } else { - return Promise.reject( - new Error( - 'No data to send to influxdb for message:\n' + - JSON.stringify(message, undefined, 2) - ) - ); - } - } -} diff --git a/lib/plugins/influxdb/send-annotation.js b/lib/plugins/influxdb/send-annotation.js deleted file mode 100644 index 0bc9c7635..000000000 --- a/lib/plugins/influxdb/send-annotation.js +++ /dev/null @@ -1,111 +0,0 @@ -import http from 'node:http'; -import https from 'node:https'; -import { stringify } from 'node:querystring'; - -import { getLogger } from '@sitespeed.io/log'; -import dayjs from 'dayjs'; - -import { getConnectivity, getURLAndGroup } from '../../support/tsdbUtil.js'; -import { - getAnnotationMessage, - getTagsAsString -} from '../../support/annotationsHelper.js'; - -const log = getLogger('sitespeedio.plugin.influxdb'); - -export function sendV1( - url, - group, - absolutePagePath, - screenShotsEnabledInBrowsertime, - screenshotType, - runTime, - alias, - usingBrowsertime, - options -) { - // The tags make it possible for the dashboard to use the - // templates to choose which annotations that will be showed. - // That's why we need to send tags that matches the template - // variables in Grafana. - const connectivity = getConnectivity(options); - const browser = options.browser; - const urlAndGroup = getURLAndGroup( - options, - group, - url, - options.influxdb.includeQueryParams, - alias - ).split('.'); - let tags = [connectivity, browser, urlAndGroup[0], urlAndGroup[1]]; - - if (options.slug) { - tags.push(options.slug); - } - - const message = getAnnotationMessage( - absolutePagePath, - screenShotsEnabledInBrowsertime, - screenshotType, - undefined, - usingBrowsertime, - options - ); - const timestamp = runTime - ? Math.round(dayjs(runTime) / 1000) - : Math.round(dayjs() / 1000); - // if we have a category, let us send that category too - if (options.influxdb.tags) { - for (let row of options.influxdb.tags.split(',')) { - const keyAndValue = row.split('='); - tags.push(keyAndValue[1]); - } - } - const influxDBTags = getTagsAsString(tags); - const postData = `events title="Sitespeed.io",text="${message}",tags=${influxDBTags} ${timestamp}`; - const postOptions = { - hostname: options.influxdb.host, - port: options.influxdb.port, - path: '/write?db=' + options.influxdb.database + '&precision=s', - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': Buffer.byteLength(postData) - } - }; - - if (options.influxdb.username) { - postOptions.path = - postOptions.path + - '&' + - stringify({ - u: options.influxdb.username, - p: options.influxdb.password - }); - } - - return new Promise((resolve, reject) => { - log.debug('Send annotation to Influx: %j', postData); - // not perfect but maybe work for us - const library = options.influxdb.protocol === 'https' ? https : http; - const request = library.request(postOptions, res => { - if (res.statusCode === 204) { - res.setEncoding('utf8'); - log.debug('Sent annotation to InfluxDB'); - resolve(); - } else { - const e = new Error( - `Got ${res.statusCode} from InfluxDB when sending annotation ${res.statusMessage}` - ); - log.warn(e.message); - reject(e); - } - }); - request.on('error', error => { - log.error('Got error from InfluxDB when sending annotation', error); - reject(error); - }); - request.write(postData); - request.end(); - }); -} diff --git a/lib/plugins/influxdb/send-annotationV2.js b/lib/plugins/influxdb/send-annotationV2.js deleted file mode 100644 index d20c6800a..000000000 --- a/lib/plugins/influxdb/send-annotationV2.js +++ /dev/null @@ -1,106 +0,0 @@ -import http from 'node:http'; -import https from 'node:https'; - -import { getLogger } from '@sitespeed.io/log'; -import dayjs from 'dayjs'; - -import { getConnectivity, getURLAndGroup } from '../../support/tsdbUtil.js'; -import { - getAnnotationMessage, - getTagsAsString -} from '../../support/annotationsHelper.js'; - -const log = getLogger('sitespeedio.plugin.influxdb'); - -export function sendV2( - url, - group, - absolutePagePath, - screenShotsEnabledInBrowsertime, - screenshotType, - runTime, - alias, - usingBrowsertime, - options -) { - // The tags make it possible for the dashboard to use the - // templates to choose which annotations that will be showed. - // That's why we need to send tags that matches the template - // variables in Grafana. - const connectivity = getConnectivity(options); - const browser = options.browser; - const urlAndGroup = getURLAndGroup( - options, - group, - url, - options.influxdb.includeQueryParams, - alias - ).split('.'); - let tags = [ - `connectivity=${connectivity}`, - `browser=${browser}`, - `group=${urlAndGroup[0]}`, - `page=${urlAndGroup[1]}` - ]; - - if (options.slug) { - tags.push(`slug=${options.slug}`); - } - - const message = getAnnotationMessage( - absolutePagePath, - screenShotsEnabledInBrowsertime, - screenshotType, - undefined, - usingBrowsertime, - options - ); - const timestamp = runTime - ? Math.round(dayjs(runTime) / 1000) - : Math.round(dayjs() / 1000); - // if we have a category, let us send that category too - if (options.influxdb.tags) { - for (const tag of options.influxdb.tags.split(',')) { - tags.push(tag); - } - } - const influxDBTags = tags.join(','); - const grafanaTags = getTagsAsString(tags.map(pair => pair.split('=')[1])); - const postData = `annotations,${influxDBTags} title="Sitespeed.io",text="${message}",tags=${grafanaTags} ${timestamp}`; - const postOptions = { - hostname: options.influxdb.host, - port: options.influxdb.port, - path: `/api/v2/write?org=${options.influxdb.organisation}&bucket=${options.influxdb.database}&precision=s`, - method: 'POST', - headers: { - 'Content-Type': 'application/x-www-form-urlencoded', - 'Content-Length': Buffer.byteLength(postData), - Authorization: `Token ${options.influxdb.token}` - } - }; - - return new Promise((resolve, reject) => { - log.debug('Send annotation to Influx: %j', postData); - // not perfect but maybe work for us - const library = options.influxdb.protocol === 'https' ? https : http; - const request = library.request(postOptions, res => { - if (res.statusCode === 204) { - res.setEncoding('utf8'); - log.debug('Sent annotation to InfluxDB'); - resolve(); - } else { - const e = new Error( - `Got ${res.statusCode} from InfluxDB when sending annotation ${res.statusMessage}` - ); - log.warn(e.message); - reject(e); - } - }); - request.on('error', error => { - log.error('Got error from InfluxDB when sending annotation', error); - reject(error); - }); - request.write(postData); - request.end(); - }); -} diff --git a/lib/plugins/influxdb/sender.js b/lib/plugins/influxdb/sender.js deleted file mode 100644 index e76b8dde6..000000000 --- a/lib/plugins/influxdb/sender.js +++ /dev/null @@ -1,26 +0,0 @@ -import { InfluxDB } from 'influx'; - -export class InfluxDBSender { - constructor({ protocol, host, port, database, username, password }) { - this.client = new InfluxDB({ - protocol, - host, - port, - database, - username, - password - }); - } - - send(data) { - const points = []; - for (let point of data) { - points.push({ - tags: point.tags, - measurement: point.seriesName, - fields: point.point - }); - } - return this.client.writePoints(points); - } -} diff --git a/lib/plugins/influxdb/senderV2.js b/lib/plugins/influxdb/senderV2.js deleted file mode 100644 index f05bfa74e..000000000 --- a/lib/plugins/influxdb/senderV2.js +++ /dev/null @@ -1,38 +0,0 @@ -import { InfluxDB, Point, HttpError } from '@influxdata/influxdb-client'; - -export class InfluxDB2Sender { - constructor({ protocol, host, port, database, organisation, token }) { - this.client = new InfluxDB({ - url: `${protocol}://${host}:${port}`, - token - }).getWriteApi(organisation, database); - this.database = database; - } - - send(data) { - const points = []; - for (let point of data) { - const influxPoint = new Point(point.seriesName); - for (const key of Object.keys(point.tags)) { - influxPoint.tag(key, point.tags[key]); - } - for (const key of Object.keys(point.point)) { - if (key === 'time') { - influxPoint.timestamp(new Date(point.point[key])); - } else { - influxPoint.floatField(key, point.point[key]); - } - } - points.push(influxPoint); - } - this.client.writePoints(points); - return this.client.flush().catch(error => { - if (error instanceof HttpError && error.statusCode === 401) { - throw new Error( - `The InfluxDB database: ${this.database} doesn't exist.` - ); - } - throw new Error('Writing to influx failed'); - }); - } -} diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index a6332513d..a5b523e1c 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -12,7 +12,6 @@ "dependencies": { "@aws-sdk/client-s3": "3.717.0", "@google-cloud/storage": "7.14.0", - "@influxdata/influxdb-client": "1.33.2", "@sitespeed.io/log": "0.2.6", "@sitespeed.io/plugin": "1.0.0", "@slack/webhook": "7.0.4", @@ -24,7 +23,6 @@ "fast-crc32c": "2.0.0", "fast-stats": "0.0.7", "import-global": "1.1.1", - "influx": "5.9.3", "lodash.get": "4.4.2", "lodash.merge": "4.6.2", "lodash.set": "4.3.2", @@ -1312,11 +1310,6 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@influxdata/influxdb-client": { - "version": "1.33.2", - "resolved": "https://registry.npmjs.org/@influxdata/influxdb-client/-/influxdb-client-1.33.2.tgz", - "integrity": "sha512-RT5SxH+grHAazo/YK3UTuWK/frPWRM0N7vkrCUyqVprDgQzlLP+bSK4ak2Jv3QVF/pazTnsxWjvtKZdwskV5Xw==" - }, "node_modules/@jimp/core": { "version": "0.22.12", "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.22.12.tgz", @@ -1428,29 +1421,6 @@ "node": ">=v12.0.0" } }, - "node_modules/@ljharb/resumer": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.1.3.tgz", - "integrity": "sha512-d+tsDgfkj9X5QTriqM4lKesCkMMJC3IrbPKHvayP00ELx2axdXvDfWkqjxrLXIzGcQzmj7VAUT1wopqARTvafw==", - "dependencies": { - "@ljharb/through": "^2.3.13", - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/@ljharb/through": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz", - "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/@mapbox/node-pre-gyp": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", @@ -2848,21 +2818,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -2872,45 +2827,6 @@ "node": ">=0.10.0" } }, - "node_modules/array.prototype.every": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.6.tgz", - "integrity": "sha512-gNEqZD97w6bfQRNmHkFv7rNnGM+VWyHZT+h/rf9C+22owcXuENr66Lfo0phItpU5KoXW6Owb34q2+8MnSIZ57w==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/arrgv": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz", @@ -3126,20 +3042,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/axe-core": { "version": "4.10.2", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", @@ -3216,7 +3118,8 @@ "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "devOptional": true }, "node_modules/base64-js": { "version": "1.3.1", @@ -3277,6 +3180,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "devOptional": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3893,7 +3797,8 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "devOptional": true }, "node_modules/concordance": { "version": "5.0.4", @@ -4041,62 +3946,6 @@ "node": ">=0.10.0" } }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/date-format": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", - "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/date-time": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/date-time/-/date-time-3.1.0.tgz", @@ -4139,37 +3988,6 @@ "node": "*" } }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -4192,30 +4010,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defined": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -4254,17 +4048,6 @@ "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==" }, - "node_modules/dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "dependencies": { - "minimatch": "^3.0.4" - }, - "bin": { - "ignored": "bin/ignored" - } - }, "node_modules/duplexify": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", @@ -4337,65 +4120,6 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -4415,65 +4139,6 @@ "node": ">= 0.4" } }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -5328,14 +4993,6 @@ } } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, "node_modules/form-data": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.2.tgz", @@ -5394,7 +5051,8 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, "node_modules/fsevents": { "version": "2.3.2", @@ -5418,31 +5076,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/gauge": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", @@ -5580,34 +5213,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -5661,20 +5271,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/globby": { "version": "14.0.1", "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", @@ -5752,29 +5348,6 @@ "node": ">=14.0.0" } }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-dynamic-import": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-dynamic-import/-/has-dynamic-import-2.1.0.tgz", - "integrity": "sha512-su0anMkNEnJKZ/rB99jn3y6lV/J8Ro96hBJ28YAeVzj5rWxH+YL/AdCyiYYA1HDLV9YhmvqpWSJJj2KLo1MX6g==", - "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6016,16 +5589,12 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "node_modules/influx": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/influx/-/influx-5.9.3.tgz", - "integrity": "sha512-QQU9CgwnaEV6zMrK8+vhVItsdoKFqDioXJrjJhRQaff9utvT3N0jcrQJT9qnxFLktqgJ5ngbDY68Zh4eo4uD/w==" - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -6039,19 +5608,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/irregular-plurals": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.3.0.tgz", @@ -6061,53 +5617,12 @@ "node": ">=8" } }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -6120,21 +5635,6 @@ "node": ">=8" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-builtin-module": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", @@ -6150,17 +5650,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -6172,34 +5661,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", - "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-directory": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.2.3.tgz", @@ -6270,28 +5731,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -6301,20 +5740,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -6364,31 +5789,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -6400,48 +5800,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", - "dependencies": { - "which-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-unicode-supported": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", @@ -6453,48 +5811,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -6791,28 +6107,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/junit-report-builder": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/junit-report-builder/-/junit-report-builder-3.2.1.tgz", - "integrity": "sha512-IMCp5XyDQ4YESDE4Za7im3buM0/7cMnRfe17k2X8B05FnUl9vqnaliX6cgOEmPIeWKfJrEe/gANRq/XgqttCqQ==", - "dependencies": { - "date-format": "4.0.3", - "lodash": "^4.17.21", - "make-dir": "^3.1.0", - "xmlbuilder": "^15.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/junit-report-builder/node_modules/xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", - "engines": { - "node": ">=8.0" - } - }, "node_modules/jwa": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", @@ -7086,6 +6380,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, "dependencies": { "semver": "^6.0.0" }, @@ -7100,6 +6395,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, "bin": { "semver": "bin/semver.js" } @@ -7313,6 +6609,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "devOptional": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -7368,25 +6665,6 @@ "mkdirp": "bin/cmd.js" } }, - "node_modules/mock-property": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mock-property/-/mock-property-1.0.3.tgz", - "integrity": "sha512-2emPTb1reeLLYwHxyVx993iYyCHEiRRO+y8NFXFPL5kl5q14sgTK76cXyEKkeKCHeRw35SfdkUJ10Q1KfHuiIQ==", - "dependencies": { - "define-data-property": "^1.1.1", - "functions-have-names": "^1.2.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "hasown": "^2.0.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -7573,54 +6851,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -7888,6 +7118,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -8037,14 +7268,6 @@ "node": ">=12.13.0" } }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -8628,23 +7851,6 @@ "regexp-tree": "bin/regexp-tree" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/regjsparser": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", @@ -8825,44 +8031,11 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", - "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -9055,20 +8228,6 @@ "node": ">= 0.4" } }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -9093,23 +8252,6 @@ "node": ">=8" } }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -9364,17 +8506,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/stream-events": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", @@ -9433,52 +8564,6 @@ "node": ">=8" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", @@ -9583,17 +8668,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/synckit": { "version": "0.9.2", "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", @@ -9610,65 +8684,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/tape": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/tape/-/tape-5.8.1.tgz", - "integrity": "sha512-pUzADXBVYm5Jkneh9hfXnirADrzQrDA3vddKbPOc/ZLORj4dFQ6GR1KdGWX0/NvOLDcYkVgeMdw78Uf6BzO3KA==", - "dependencies": { - "@ljharb/resumer": "^0.1.3", - "@ljharb/through": "^2.3.13", - "array.prototype.every": "^1.1.6", - "call-bind": "^1.0.7", - "deep-equal": "^2.2.3", - "defined": "^1.0.1", - "dotignore": "^0.1.2", - "for-each": "^0.3.3", - "get-package-type": "^0.1.0", - "glob": "^7.2.3", - "has-dynamic-import": "^2.1.0", - "hasown": "^2.0.2", - "inherits": "^2.0.4", - "is-regex": "^1.1.4", - "minimist": "^1.2.8", - "mock-property": "^1.0.3", - "object-inspect": "^1.13.1", - "object-is": "^1.1.6", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "resolve": "^2.0.0-next.5", - "string.prototype.trim": "^1.2.9" - }, - "bin": { - "tape": "bin/tape" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tape/node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tape/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/tar": { "version": "6.1.13", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", @@ -9875,75 +8890,6 @@ "node": ">= 0.8.0" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/uc.micro": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz", @@ -9951,20 +8897,6 @@ "dev": true, "peer": true }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/underscore": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", @@ -10165,56 +9097,6 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", diff --git a/package.json b/package.json index aa02a5b47..8d48628bc 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,6 @@ "dependencies": { "@aws-sdk/client-s3": "3.717.0", "@google-cloud/storage": "7.14.0", - "@influxdata/influxdb-client": "1.33.2", "@sitespeed.io/log": "0.2.6", "@sitespeed.io/plugin": "1.0.0", "@tgwf/co2": "0.16.4", @@ -95,7 +94,6 @@ "fast-crc32c": "2.0.0", "fast-stats": "0.0.7", "import-global": "1.1.1", - "influx": "5.9.3", "lodash.get": "4.4.2", "lodash.merge": "4.6.2", "lodash.set": "4.3.2", diff --git a/test/docker/docker-compose.yml b/test/docker/docker-compose.yml index 6607bbbc0..f1d0ac5d6 100644 --- a/test/docker/docker-compose.yml +++ b/test/docker/docker-compose.yml @@ -4,21 +4,4 @@ services: image: sitespeedio/graphite:1.1.5-12 ports: - "2003:2003" - - "8080:80" - influxdb_v1.8: - image: influxdb:1.8 - ports: - - '8086:8086' - environment: - - INFLUXDB_DB=sitespeed - influxdb_v2.6: - image: influxdb:2.6.1 - ports: - - '8087:8086' - environment: - - DOCKER_INFLUXDB_INIT_MODE=setup - - DOCKER_INFLUXDB_INIT_USERNAME=sitespeed - - DOCKER_INFLUXDB_INIT_PASSWORD=sitespeed - - DOCKER_INFLUXDB_INIT_ORG=sitespeed - - DOCKER_INFLUXDB_INIT_BUCKET=sitespeed - - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=sitespeed \ No newline at end of file + - "8080:80" \ No newline at end of file diff --git a/test/influxdbTests.js b/test/influxdbTests.js deleted file mode 100644 index 73a75b518..000000000 --- a/test/influxdbTests.js +++ /dev/null @@ -1,359 +0,0 @@ -import dayjs from 'dayjs'; -import test from 'ava'; - -import { InfluxDBDataGenerator as DataGenerator } from '../lib/plugins/influxdb/data-generator.js'; - -test(`Test influxdb dataGenerator`, t => { - const message = { - uuid: '33774328-e781-4152-babe-a367cee27153', - type: 'coach.summary', - timestamp: '2017-04-04T09:55:59+02:00', - source: 'coach', - data: { - score: { - median: '96', - mean: '96', - min: '96', - p90: '96', - max: '96' - }, - accessibility: { - score: { - median: '95', - mean: '95', - min: '95', - p90: '95', - max: '95' - }, - altImages: { - median: '80', - mean: '80', - min: '80', - p90: '80', - max: '80' - }, - headings: { - median: '90', - mean: '90', - min: '90', - p90: '90', - max: '90' - }, - labelOnInput: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - landmarks: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - neverSuppressZoom: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - sections: { - median: '0', - mean: '0', - min: '0', - p90: '0', - max: '0' - }, - table: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - } - }, - bestpractice: { - score: { - median: '85', - mean: '85', - min: '85', - p90: '85', - max: '85' - }, - charset: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - doctype: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - https: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - httpsH2: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - language: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - metaDescription: { - median: '50', - mean: '50', - min: '50', - p90: '50', - max: '50' - }, - optimizely: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - pageTitle: { - median: '50', - mean: '50', - min: '50', - p90: '50', - max: '50' - }, - spdy: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - url: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - } - }, - performance: { - score: { - median: '98', - mean: '98', - min: '98', - p90: '98', - max: '98' - }, - avoidScalingImages: { - median: '50', - mean: '50', - min: '50', - p90: '50', - max: '50' - }, - cssPrint: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - fastRender: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - inlineCss: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - jquery: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - spof: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - thirdPartyAsyncJs: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - assetsRedirects: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - cacheHeaders: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - cacheHeadersLong: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - compressAssets: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - connectionKeepAlive: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - cssSize: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - documentRedirect: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - favicon: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - fewFonts: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - fewRequestsPerDomain: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - headerSize: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - imageSize: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - javascriptSize: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - mimeTypes: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - optimalCssSize: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - pageSize: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - privateAssets: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - }, - responseOk: { - median: '100', - mean: '100', - min: '100', - p90: '100', - max: '100' - } - } - }, - group: 'www.sitespeed.io' - }; - - let generator = new DataGenerator(false, { - _: ['filename'], - browser: 'chrome', - connectivity: 'cable', - influxdb: { - tags: 'tool=sitespeed.io' - } - }); - - const data = generator.dataFromMessage(message, dayjs()); - const seriesName = data[0].seriesName; - const numberOfTags = Object.keys(data[0].tags).length; - t.is(seriesName, 'score'); - t.is(numberOfTags, 6); -}); diff --git a/tools/influxdb/docker-compose.yml b/tools/influxdb/docker-compose.yml deleted file mode 100644 index b41032922..000000000 --- a/tools/influxdb/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -version: '2' -services: - grafana: - image: grafana/grafana - depends_on: - - influxdb - links: - - influxdb - ports: - - "3000:3000" - influxdb: - image: tutum/influxdb - environment: - - PRE_CREATE_DB="sitespeed" - - ADMIN_USER="root" - - INFLUXDB_INIT_PWD="root" - ports: - - "8083:8083" - - "8086:8086" - - "8090:8090" - - "8099:8099"