Skip to content

Commit

Permalink
rotor: mongodb tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
absorbb committed Dec 16, 2023
1 parent c2cb1b1 commit 40598bd
Show file tree
Hide file tree
Showing 8 changed files with 112 additions and 18 deletions.
1 change: 1 addition & 0 deletions libs/core-functions/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
"juava": "workspace:*",
"lodash": "^4.17.21",
"mongodb": "^5.9.2",
"@mongodb-js/zstd": "^1.2.0",
"ioredis": "^5.3.2",
"posthog-node": "^2.4.0",
"tslib": "^2.4.0",
Expand Down
2 changes: 1 addition & 1 deletion libs/core-functions/src/functions/lib/mongodb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ async function createClient() {
log.atInfo().log(`Connecting to MongoDB server...`);

// Create a new MongoClient
const client = new MongoClient(mongodbURL);
const client = new MongoClient(mongodbURL, { compressors: ["zstd"] });
// Connect the client to the server (optional starting in v4.7)
await client.connect();
// Establish and verify connection
Expand Down
93 changes: 83 additions & 10 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion services/rotor/dist_package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"version": "0.0.0",
"dependencies": {
"isolated-vm": "4.6.0",
"@sensejs/kafkajs-zstd-support": "^0.11.0"
"@sensejs/kafkajs-zstd-support": "^0.11.0",
"@mongodb-js/zstd": "^1.2.0"
}
}
16 changes: 13 additions & 3 deletions services/rotor/src/http/udf.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
import { UDFTestRun, UDFTestRequest, mongodb, defaultTTL, createMongoStore } from "@jitsu/core-functions";
import {
UDFTestRun,
UDFTestRequest,
mongodb,
defaultTTL,
createMongoStore,
createTtlStore,
} from "@jitsu/core-functions";
import { getLog } from "juava";
import { redis } from "@jitsu-internal/console/lib/server/redis";

const log = getLog("udf_run");

export const UDFRunHandler = async (req, res) => {
const body = req.body as UDFTestRequest;
log.atInfo().log(`Running function: ${body?.functionId} workspace: ${body?.workspaceId}`, JSON.stringify(body));
body.store = createMongoStore(body?.workspaceId, await mongodb.waitInit(), defaultTTL);
//log.atInfo().log(`Running function: ${body?.functionId} workspace: ${body?.workspaceId}`, JSON.stringify(body));
body.store = process.env.MONGODB_URL
? createMongoStore(body?.workspaceId, mongodb(), defaultTTL)
: createTtlStore(body?.workspaceId, redis(), defaultTTL);
const result = await UDFTestRun(body);
if (result.error) {
log
Expand Down
5 changes: 4 additions & 1 deletion services/rotor/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
rotorConsumerGroupId,
} from "./lib/kafka-config";
import { kafkaRotor } from "./lib/rotor";

import { mongodb } from "@jitsu/core-functions";
import minimist from "minimist";
import { glob } from "glob";
import fs from "fs";
Expand All @@ -16,6 +16,7 @@ import Prometheus from "prom-client";
import { FunctionsHandler, FunctionsHandlerMulti } from "./http/functions";
import { initMaxMindClient } from "./lib/maxmind";
import { rotorMessageHandler } from "./lib/message-handler";
import { redis } from "@jitsu-internal/console/lib/server/redis";

export const log = getLog("rotor");

Expand Down Expand Up @@ -54,6 +55,8 @@ async function main() {
});
log.atInfo().log("Starting kafka processing");
Prometheus.collectDefaultMetrics();
await mongodb.waitInit();
await redis.waitInit();
rotor
.start()
.then(chMetrics => {
Expand Down
8 changes: 6 additions & 2 deletions services/rotor/src/lib/message-handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,12 @@ export async function rotorMessageHandler(
},
};
const oldStore = createTtlStore(connection.workspaceId, redis(), defaultTTL);
const newStore = createMongoStore(connection.workspaceId, await mongodb.waitInit(), defaultTTL);
const store = newStoreWorskpaceId.includes(connection.workspaceId) ? newStore : createMultiStore(newStore, oldStore);
const newStore = process.env.MONGODB_URL ? createMongoStore(connection.workspaceId, mongodb(), defaultTTL) : oldStore;
const store = newStoreWorskpaceId.includes(connection.workspaceId)
? newStore
: newStore != oldStore
? createMultiStore(newStore, oldStore)
: oldStore;

const rl = await redisLogger.waitInit();

Expand Down
2 changes: 2 additions & 0 deletions services/rotor/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ const config = {
target: "node",
externals: {
"isolated-vm": "require('isolated-vm')",
"@sensejs/kafkajs-zstd-support": "require('@sensejs/kafkajs-zstd-support')",
"@mongodb-js/zstd": "require('@mongodb-js/zstd')",
},
node: {
__dirname: false,
Expand Down

1 comment on commit 40598bd

@vercel
Copy link

@vercel vercel bot commented on 40598bd Dec 16, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

new-jitsu – ./webapps/console

logu.au
ozon.ru
sse.ere
app.bluetick.ai
caddy.jitsu.com
data.askloan.tw
enterticket.com
events.mitzu.io
jitsu.efeer.com
jitsu.ivve.tech
krestomatio.com
sevenbillion.co
xrt.webxr.tools
app.jotverse.com
caddy2.jitsu.com
cname2.jitsu.com
data.mysitee.com
data.toptere.com
dev-t.democo.dev
events.quenti.io
utils.doogma.com
worthsystems.com
data.music2me.com
data.timeplus.com
event-gateway.com
https.bluetick.ai
ji.degulesider.dk
jitsu.ivve.health
metabase.erxes.io
t.clickncruise.hu
cloud.yupaopao.com
data.investing.com
data.mycompany.com
data.usepolygon.io
demosite.jitsu.com
dev.driverdeck.app
n8n.paziresh24.com
new.enterticket.es
t-dev.papermark.io
uniquecafes.com.br
www.sidetrekai.com
colectha.voolu.shop
crm.myguestcare.com
data.sidetrekai.com
data.timeplus.cloud
localhost.jitsu.com
report.improvado.io
trk.myguestcare.com
www.sevenbillion.co
analytics.mtrsvc.com
data.embeddables.com
dataqa.investing.com
dev.blazingboost.com
j.israeladvocate.org
mercury.stagehub.com
store.sidetrekai.com
teslahenry.github.io
data.hogarlylabs.tech
data.your-company.com
event.clickncruise.hu
event.clickncruise.ro
test-domain.jitsu.com
test.bigfootproof.com
teste.fazcomex.com.br
analytics.dev.knekt.io
loraboutiquedental.com
notion.twelftree.co.uk
dev-portal.zoopsign.com
event.tradejobsnz.co.nz
investing-poc.jitsu.dev
savvy-replay.jitsu.tech
data.analytics-smart.com
data.handelsregister.app
event.clickncruise.co.uk
jt.fairhopeweb.github.io
savvy-replay2.jitsu.tech
savvy-replay3.jitsu.tech
savvy-replay4.jitsu.tech
track.alquimiaweb.com.br
track.pressance-group.jp
track.uniquecafes.com.br
colectha.agenciavoolu.com
kolectha.agenciavoolu.com
lp.loraboutiquedental.com
stage-portal.zoopsign.com
new-jitsu-jitsu.vercel.app
lodercom-colectha.voolu.shop
warehouse1.trendstyle.com.au
d0.livingdesignsfurniture.com
ingest-load-testing.jitsu.dev
jitsu.precisaosistemas.com.br
analytics.inspiresolutions.app
betteruptime-monitoring.jitsu.dev
canvas.livingdesignsfurniture.com
analytics.dev.inspiresolutions.app
cl9vt45z50001znkunc6v8fmm.d.jitsu.com
clm2jikrm00002v6r5l6niws3.d.jitsu.com
new-jitsu-git-newjitsu-jitsu.vercel.app
3000-rajaraodv-customerdemo-nmpsqwflswt.ws-us102.gitpod.io
new.jitsu.dev

Please sign in to comment.