From f542cdafcdcb083fdc1fc1afa18a3c2ba46dbe76 Mon Sep 17 00:00:00 2001 From: MICHAEL JACKSON Date: Wed, 16 Aug 2017 10:31:34 -0700 Subject: [PATCH] Consolidate db connection logic --- server/IngestLogsWorker.js | 17 ++++------------- server/IngestStatsWorker.js | 17 ++++------------- server/PackageInfoCache.js | 6 +----- server/RedisClient.js | 7 +++++++ server/StatsServer.js | 12 +----------- 5 files changed, 17 insertions(+), 42 deletions(-) create mode 100644 server/RedisClient.js diff --git a/server/IngestLogsWorker.js b/server/IngestLogsWorker.js index f2f1b09..98a40ba 100644 --- a/server/IngestLogsWorker.js +++ b/server/IngestLogsWorker.js @@ -2,25 +2,16 @@ const parseURL = require('url').parse const invariant = require('invariant') const gunzip = require('gunzip-maybe') const ndjson = require('ndjson') -const redis = require('redis') const startOfDay = require('date-fns/start_of_day') const addDays = require('date-fns/add_days') const PackageURL = require('./PackageURL') -const CloudflareAPI = require('./CloudflareAPI') +const cf = require('./CloudflareAPI') +const db = require('./RedisClient') const { createDayKey, createHourKey } = require('./StatsServer') -const RedisURL = process.env.OPENREDIS_URL - -invariant( - RedisURL, - 'Missing the $OPENREDIS_URL environment variable' -) - -const db = redis.createClient(RedisURL) - /** * Domains we want to analyze. */ @@ -35,11 +26,11 @@ const DomainNames = [ const LogWindowSeconds = 30 function getZones(domain) { - return CloudflareAPI.getJSON(`/zones?name=${domain}`) + return cf.getJSON(`/zones?name=${domain}`) } function getLogs(zoneId, startTime, endTime) { - return CloudflareAPI.get( + return cf.get( `/zones/${zoneId}/logs/requests?start=${startTime}&end=${endTime}`, { 'Accept-Encoding': 'gzip' } ).then(function (res) { diff --git a/server/IngestStatsWorker.js b/server/IngestStatsWorker.js index c63e3c8..b04801c 100644 --- a/server/IngestStatsWorker.js +++ b/server/IngestStatsWorker.js @@ -1,22 +1,13 @@ -const redis = require('redis') const addDays = require('date-fns/add_days') const invariant = require('invariant') -const CloudflareAPI = require('./CloudflareAPI') +const cf = require('./CloudflareAPI') +const db = require('./RedisClient') const { createDayKey, createHourKey, createMinuteKey } = require('./StatsServer') -const RedisURL = process.env.OPENREDIS_URL - -invariant( - RedisURL, - 'Missing the $OPENREDIS_URL environment variable' -) - -const db = redis.createClient(RedisURL) - /** * Domains we want to analyze. */ @@ -26,11 +17,11 @@ const DomainNames = [ ] function getZones(domain) { - return CloudflareAPI.getJSON(`/zones?name=${domain}`) + return cf.getJSON(`/zones?name=${domain}`) } function getZoneAnalyticsDashboard(zoneId, since) { - return CloudflareAPI.getJSON(`/zones/${zoneId}/analytics/dashboard?since=${since}&continuous=true`) + return cf.getJSON(`/zones/${zoneId}/analytics/dashboard?since=${since}&continuous=true`) } const oneSecond = 1000 diff --git a/server/PackageInfoCache.js b/server/PackageInfoCache.js index 8793a86..3254e89 100644 --- a/server/PackageInfoCache.js +++ b/server/PackageInfoCache.js @@ -1,8 +1,4 @@ -const redis = require('redis') - -const RedisURL = process.env.OPENREDIS_URL || 'redis://localhost:6379' - -const db = redis.createClient(RedisURL) +const db = require('./RedisClient') function createKey(packageName) { return 'packageInfo-' + packageName diff --git a/server/RedisClient.js b/server/RedisClient.js new file mode 100644 index 0000000..0030946 --- /dev/null +++ b/server/RedisClient.js @@ -0,0 +1,7 @@ +const redis = require('redis') + +const RedisURL = process.env.OPENREDIS_URL || process.env.REDIS_URL || 'redis://localhost:6379' + +const client = redis.createClient(RedisURL) + +module.exports = client diff --git a/server/StatsServer.js b/server/StatsServer.js index bb2bc91..5a44249 100644 --- a/server/StatsServer.js +++ b/server/StatsServer.js @@ -1,14 +1,4 @@ -const redis = require('redis') -const invariant = require('invariant') - -const RedisURL = process.env.OPENREDIS_URL - -invariant( - RedisURL, - 'Missing the $OPENREDIS_URL environment variable' -) - -const db = redis.createClient(RedisURL) +const db = require('./RedisClient') const sumValues = (array) => array.reduce((memo, n) => memo + (parseInt(n, 10) || 0), 0)