From 56804aa3182c87e9fa7348c46ed06932ad4dfd18 Mon Sep 17 00:00:00 2001 From: Iffern Date: Wed, 18 Jan 2023 18:57:11 +0100 Subject: [PATCH 1/9] add tracing to kubernetes --- functions/k8sCommand.js | 4 ++-- functions/kubernetes/bojK8sCommand.js | 33 +++++++++++++++------------ functions/kubernetes/k8sCommand.js | 7 +++++- functions/kubernetes/k8sJobSubmit.js | 8 +++---- 4 files changed, 31 insertions(+), 21 deletions(-) diff --git a/functions/k8sCommand.js b/functions/k8sCommand.js index d75c5ad6..a3b82e21 100644 --- a/functions/k8sCommand.js +++ b/functions/k8sCommand.js @@ -4,7 +4,7 @@ const k8s = require('@kubernetes/client-node'); const yaml = require('js-yaml'); var fs = require('fs'); -async function k8sCommand(ins, outs, context, cb) { +async function k8sCommand(ins, outs, context, cb, parentId, traceId) { let handlerStart = Date.now(); console.log("[DEBUG] K8sInvoke called."); @@ -29,7 +29,7 @@ async function k8sCommand(ins, outs, context, cb) { const k8sApi = kc.makeApiClient(k8s.BatchV1Api); try { - var command = 'hflow-job-execute ' + context.taskId + ' ' + context.redis_url; + var command = 'hflow-job-execute ' + context.taskId + ' ' + context.redis_url + ' ' + parentId + ' ' + traceId; var containerName = process.env.HF_VAR_WORKER_CONTAINER; var volumePath = '/work_dir'; var jobName = Math.random().toString(36).substring(7) + '-' + context.name.replace(/_/g, '-') + "-" + context.procId; diff --git a/functions/kubernetes/bojK8sCommand.js b/functions/kubernetes/bojK8sCommand.js index 82dec64c..28802944 100644 --- a/functions/kubernetes/bojK8sCommand.js +++ b/functions/kubernetes/bojK8sCommand.js @@ -1,6 +1,7 @@ // bojK8sCommand.js // Runs bags-of-jobs on a Kubernetes cluster +const tracer = require("../../tracing.js")("hyperflow-kubernetes"); const k8s = require('@kubernetes/client-node'); var submitK8sJob = require('./k8sJobSubmit.js').submitK8sJob; var fs = require('fs'); @@ -31,20 +32,24 @@ async function bojK8sCommand(ins, outs, context, cb) { let jobs = JSON.parse(fs.readFileSync(jobsFileName)); // run job sets in parallel with concurrency limit - const PromisePool = require('@supercharge/promise-pool'); - const { results, errors } = await PromisePool - .for(jobs) - .withConcurrency(5) - .process(async jobs => { - jobPromises = jobs.map(job => { - //let taskId = job.name + "-" + jsetIdx + "-" + jIdx; - let taskId = job.name; - let customParams = {}; - return submitK8sJob(kubeconfig, job, taskId, context, customParams); - }); - jobExitCodes = await Promise.all(jobPromises); - return jobExitCodes; - }); + tracer.startActiveSpan('bojK8s', async span => { + const PromisePool = require('@supercharge/promise-pool'); + const {results, errors} = await PromisePool + .for(jobs) + .withConcurrency(5) + .process(async jobs => { + jobPromises = jobs.map(job => { + //let taskId = job.name + "-" + jsetIdx + "-" + jIdx; + let taskId = job.name; + let customParams = {}; + var traceId = span.spanContext().traceId + var parentId = span.spanContext().spanId + return submitK8sJob(kubeconfig, job, taskId, context, customParams, parentId, traceId); + }); + jobExitCodes = await Promise.all(jobPromises); + return jobExitCodes; + }); + }); console.log(results, errors); diff --git a/functions/kubernetes/k8sCommand.js b/functions/kubernetes/k8sCommand.js index 8f4d6c79..119b47e8 100644 --- a/functions/kubernetes/k8sCommand.js +++ b/functions/kubernetes/k8sCommand.js @@ -1,5 +1,6 @@ // Runs a job as a Pod (Kubernetes Job) in a Kubernetes cluster +const tracer = require("../../tracing.js")("hyperflow-kubernetes"); const k8s = require('@kubernetes/client-node'); var BufferManager = require('./buffer_manager.js').BufferManager; var RestartCounter = require('./restart_counter.js').RestartCounter; @@ -129,7 +130,11 @@ async function k8sCommandGroup(bufferItems) { if (getExecutorType(context) === "WORKER_POOL") { await amqpEnqueueJobs(jobArr, taskIdArr, contextArr, customParams) } else { - await submitK8sJob(kubeconfig, jobArr, taskIdArr, contextArr, customParams) + tracer.startActiveSpan('k8sCommands', async span => { + var traceId = span.spanContext().traceId + var parentId = span.spanContext().spanId + await submitK8sJob(kubeconfig, jobArr, taskIdArr, contextArr, customParams, parentId, traceId) + }); } jobExitCodes = await synchronizeJobs(jobArr, taskIdArr, contextArr, customParams, restartFn); } catch (err) { diff --git a/functions/kubernetes/k8sJobSubmit.js b/functions/kubernetes/k8sJobSubmit.js index 1a15aebf..175d017b 100644 --- a/functions/kubernetes/k8sJobSubmit.js +++ b/functions/kubernetes/k8sJobSubmit.js @@ -51,9 +51,9 @@ function createK8sJobMessage(job, taskId, context) { // // Returns: // - jobYaml: string with job YAML to create the k8s job -var createK8sJobYaml = (job, taskIds, context, jobYamlTemplate, customParams) => { +var createK8sJobYaml = (job, taskIds, context, jobYamlTemplate, customParams, parentId, traceId) => { let quotedTaskIds = taskIds.map(x => '"' + x + '"'); - var command = 'hflow-job-execute ' + context.redis_url + ' -a -- ' + quotedTaskIds.join(' '); + var command = 'hflow-job-execute ' + parentId + ' ' + traceId + ' ' + context.redis_url + ' -a -- ' + quotedTaskIds.join(' '); var containerName = job.image || process.env.HF_VAR_WORKER_CONTAINER; var volumePath = '/work_dir'; var jobName = Math.random().toString(36).substring(7) + '-' + @@ -105,7 +105,7 @@ var createK8sJobYaml = (job, taskIds, context, jobYamlTemplate, customParams) => // // // Returns: job exit code -var submitK8sJob = async(kubeconfig, jobArr, taskIdArr, contextArr, customParams) => { +var submitK8sJob = async(kubeconfig, jobArr, taskIdArr, contextArr, customParams, parentId, traceId) => { // Load definition of the the worker job pod // File 'job-template.yaml' should be provided externally during deployment @@ -116,7 +116,7 @@ var submitK8sJob = async(kubeconfig, jobArr, taskIdArr, contextArr, customParams let context = contextArr[0]; // CAUTION: When creating job YAML first job details (requests, container) are used. - var jobYaml = createK8sJobYaml(jobArr[0], taskIdArr, contextArr[0], jobYamlTemplate, customParams); + var jobYaml = createK8sJobYaml(jobArr[0], taskIdArr, contextArr[0], jobYamlTemplate, customParams, parentId, traceId); let jobMessages = []; for (var i=0; i Date: Wed, 18 Jan 2023 20:56:12 +0100 Subject: [PATCH 2/9] update method call --- functions/kubernetes/k8sJobSubmit.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions/kubernetes/k8sJobSubmit.js b/functions/kubernetes/k8sJobSubmit.js index 175d017b..689f046c 100644 --- a/functions/kubernetes/k8sJobSubmit.js +++ b/functions/kubernetes/k8sJobSubmit.js @@ -53,7 +53,7 @@ function createK8sJobMessage(job, taskId, context) { // - jobYaml: string with job YAML to create the k8s job var createK8sJobYaml = (job, taskIds, context, jobYamlTemplate, customParams, parentId, traceId) => { let quotedTaskIds = taskIds.map(x => '"' + x + '"'); - var command = 'hflow-job-execute ' + parentId + ' ' + traceId + ' ' + context.redis_url + ' -a -- ' + quotedTaskIds.join(' '); + var command = 'hflow-job-execute ' + context.redis_url + ' ' + parentId + ' ' + traceId + ' -a -- ' + quotedTaskIds.join(' '); var containerName = job.image || process.env.HF_VAR_WORKER_CONTAINER; var volumePath = '/work_dir'; var jobName = Math.random().toString(36).substring(7) + '-' + From 36b17667e6f795edee7c5b5b6f54ed020025550b Mon Sep 17 00:00:00 2001 From: Iffern Date: Sun, 22 Jan 2023 20:49:45 +0100 Subject: [PATCH 3/9] add tracing to .dockerignore --- .dockerignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.dockerignore b/.dockerignore index 2e236d3e..6af32a6a 100644 --- a/.dockerignore +++ b/.dockerignore @@ -17,3 +17,4 @@ !tests !utils !wflib +!tracing.js From 31297131e95832bb0f911da358b4dd279a92761b Mon Sep 17 00:00:00 2001 From: Iffern Date: Sun, 22 Jan 2023 21:36:09 +0100 Subject: [PATCH 4/9] cleanup package.json --- package-lock.json | 534 +++------------------------------------------- package.json | 8 - 2 files changed, 29 insertions(+), 513 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8086b31d..d6e5ebe7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,41 +12,6 @@ "lodash": "^4.11.1" } }, - "@grpc/grpc-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", - "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", - "requires": { - "@grpc/proto-loader": "^0.7.0", - "@types/node": ">=12.12.47" - }, - "dependencies": { - "@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" - } - } - }, - "@grpc/proto-loader": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.3.tgz", - "integrity": "sha512-5dAvoZwna2Py3Ef96Ux9jIkp3iZ62TUsV00p3wVBPNX5K178UbNi8Q7gQVqwXT1Yq9RejIGG9G2IPEo93T6RcA==", - "requires": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^7.0.0", - "yargs": "^16.2.0" - }, - "dependencies": { - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - } - } - }, "@hapi/b64": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", @@ -231,91 +196,6 @@ "@opentelemetry/semantic-conventions": "1.8.0" } }, - "@opentelemetry/exporter-collector": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-collector/-/exporter-collector-0.25.0.tgz", - "integrity": "sha512-xZYstLt4hz1aTloJaepWdjMMf9305MqwqbUWjcU/X9pOxvgFWRlchO6x/HQTw7ow0i/S+ShzC+greKnb+1WvLA==", - "requires": { - "@opentelemetry/api-metrics": "0.25.0", - "@opentelemetry/core": "0.25.0", - "@opentelemetry/resources": "0.25.0", - "@opentelemetry/sdk-metrics-base": "0.25.0", - "@opentelemetry/sdk-trace-base": "0.25.0" - }, - "dependencies": { - "@opentelemetry/api-metrics": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.25.0.tgz", - "integrity": "sha512-9T0c9NQAEGRujUC7HzPa2/qZ5px/UvB2sfSU5CAKFRrAlDl2gn25B0oUbDqSRHW/IG1X2rnQ3z2bBQkJyJvE4g==" - }, - "@opentelemetry/core": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-0.25.0.tgz", - "integrity": "sha512-8OTWF4vfCENU112XB5ElLqf0eq/FhsY0SBvvY65vB3+fbZ2Oi+CPsRASrUZWGtC9MJ5rK2lBlY+/jI4a/NPPBg==", - "requires": { - "@opentelemetry/semantic-conventions": "0.25.0", - "semver": "^7.3.5" - } - }, - "@opentelemetry/resources": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.25.0.tgz", - "integrity": "sha512-O46u53vDBlxCML8O9dIjsRcCC2VT5ri1upwhp02ITobgJ16aVD/iScCo1lPl/x2E7yq9uwzMINENiiYZRFb6XA==", - "requires": { - "@opentelemetry/core": "0.25.0", - "@opentelemetry/semantic-conventions": "0.25.0" - } - }, - "@opentelemetry/sdk-trace-base": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-0.25.0.tgz", - "integrity": "sha512-TInkLSF/ThM3GNVM+9tgnCVjyNLnRxvAkG585Fhu0HNwaEtCTUwI0r7AvMRIREOreeRWttBG6kvT0LOKdo8yjw==", - "requires": { - "@opentelemetry/core": "0.25.0", - "@opentelemetry/resources": "0.25.0", - "@opentelemetry/semantic-conventions": "0.25.0", - "lodash.merge": "^4.6.2" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.25.0.tgz", - "integrity": "sha512-V3N+MDBiv0TUlorbgiSqk6CvcP876CYUk/41Tg6s8OIyvniTwprE6vPvFQayuABiVkGlHOxv1Mlvp0w4qNdnVg==" - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@opentelemetry/exporter-jaeger": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.8.0.tgz", - "integrity": "sha512-3h16Sb1T/G33S+RM3yjt1t2xRuu/mi9iB172faS6qFQEclTTJru1pTK4wuWG+9GyI7uyBLfbQoXVA5/BA6gvHw==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0", - "jaeger-client": "^3.15.0" - } - }, - "@opentelemetry/exporter-trace-otlp-grpc": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.34.0.tgz", - "integrity": "sha512-x1V0daRLS6k0dhBPNNLMOP+OSrh8M60Xs9/YkuZS0+/zdbcIjNvPzo/8+dK3zOJx+j1KF0oBX9zxK0SX3PSnZw==", - "requires": { - "@grpc/grpc-js": "^1.7.1", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/otlp-grpc-exporter-base": "0.34.0", - "@opentelemetry/otlp-transformer": "0.34.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0" - } - }, "@opentelemetry/exporter-trace-otlp-http": { "version": "0.34.0", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.34.0.tgz", @@ -328,30 +208,6 @@ "@opentelemetry/sdk-trace-base": "1.8.0" } }, - "@opentelemetry/exporter-trace-otlp-proto": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.34.0.tgz", - "integrity": "sha512-Ump/OyKxq1b4I01aBWSHJw8PCquZAHZh6ykplcmFBs9BZ8DIM7Jl3+zqrS8Vb7YcZ7DZTYORl8Xv/JQoQ+cFlw==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/otlp-exporter-base": "0.34.0", - "@opentelemetry/otlp-proto-exporter-base": "0.34.0", - "@opentelemetry/otlp-transformer": "0.34.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0" - } - }, - "@opentelemetry/exporter-zipkin": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.8.0.tgz", - "integrity": "sha512-Y3WqNCZjfWKnHiRzb35sXpDfGL4Gx2qajFAv059s/VFayIPytLHUOrZMiQqrpfzU/TSIKPG4OHJaypFtUtNlQQ==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, "@opentelemetry/instrumentation": { "version": "0.34.0", "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.34.0.tgz", @@ -757,58 +613,6 @@ "@opentelemetry/core": "1.8.0" } }, - "@opentelemetry/otlp-grpc-exporter-base": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.34.0.tgz", - "integrity": "sha512-8k3CIVjf2+/kmnQNKIR8GtPIfRsQ5ZxBVh3uKof54stVXH/nX5ArceuQaoEfFoFQ8S8wayBZ1QsBwdab65UK0g==", - "requires": { - "@grpc/grpc-js": "^1.7.1", - "@grpc/proto-loader": "^0.7.3", - "@opentelemetry/core": "1.8.0", - "@opentelemetry/otlp-exporter-base": "0.34.0" - } - }, - "@opentelemetry/otlp-proto-exporter-base": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.34.0.tgz", - "integrity": "sha512-qHnwcAafW8OKeM2a1YQNoL9/sgWVE+JxvMgxf2CtYBqsccIakGPoQ43hLCFLAL3I2Af4BNb5t4KnW8lrtnyUjg==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/otlp-exporter-base": "0.34.0", - "protobufjs": "7.1.1" - }, - "dependencies": { - "@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" - }, - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - }, - "protobufjs": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.1.tgz", - "integrity": "sha512-d0nMQqS/aT3lfV8bKi9Gbg73vPd2LcDdTDOu6RE/M+h9DY8g1EmDzk3ADPccthEWfTBjkR2oxNdx9Gs8YubT+g==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - } - } - } - }, "@opentelemetry/otlp-transformer": { "version": "0.34.0", "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.34.0.tgz", @@ -849,11 +653,6 @@ "@opentelemetry/core": "1.8.0" } }, - "@opentelemetry/propagator-ot-trace": { - "version": "0.26.2", - "resolved": "https://registry.npmjs.org/@opentelemetry/propagator-ot-trace/-/propagator-ot-trace-0.26.2.tgz", - "integrity": "sha512-yABHr8QIjJBFPuRivzMtwunRrcv+ZVaaosvfTmfEx6ZQQ66d5C8ddZsEDVsr7fdLQO8/FZuwOItxYWjie69dzA==" - }, "@opentelemetry/redis-common": { "version": "0.34.0", "resolved": "https://registry.npmjs.org/@opentelemetry/redis-common/-/redis-common-0.34.0.tgz", @@ -878,74 +677,6 @@ "lodash.merge": "4.6.2" } }, - "@opentelemetry/sdk-metrics-base": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.25.0.tgz", - "integrity": "sha512-7fwPlAFB5Xw8mnVQfq0wqKNw3RXiAMad9T1bk5Sza9LK/L6hz8RTuHWCsFMsj+1OOSAaiPFuUMYrK1J75+2IAg==", - "requires": { - "@opentelemetry/api-metrics": "0.25.0", - "@opentelemetry/core": "0.25.0", - "@opentelemetry/resources": "0.25.0", - "lodash.merge": "^4.6.2" - }, - "dependencies": { - "@opentelemetry/api-metrics": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.25.0.tgz", - "integrity": "sha512-9T0c9NQAEGRujUC7HzPa2/qZ5px/UvB2sfSU5CAKFRrAlDl2gn25B0oUbDqSRHW/IG1X2rnQ3z2bBQkJyJvE4g==" - }, - "@opentelemetry/core": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-0.25.0.tgz", - "integrity": "sha512-8OTWF4vfCENU112XB5ElLqf0eq/FhsY0SBvvY65vB3+fbZ2Oi+CPsRASrUZWGtC9MJ5rK2lBlY+/jI4a/NPPBg==", - "requires": { - "@opentelemetry/semantic-conventions": "0.25.0", - "semver": "^7.3.5" - } - }, - "@opentelemetry/resources": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.25.0.tgz", - "integrity": "sha512-O46u53vDBlxCML8O9dIjsRcCC2VT5ri1upwhp02ITobgJ16aVD/iScCo1lPl/x2E7yq9uwzMINENiiYZRFb6XA==", - "requires": { - "@opentelemetry/core": "0.25.0", - "@opentelemetry/semantic-conventions": "0.25.0" - } - }, - "@opentelemetry/semantic-conventions": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.25.0.tgz", - "integrity": "sha512-V3N+MDBiv0TUlorbgiSqk6CvcP876CYUk/41Tg6s8OIyvniTwprE6vPvFQayuABiVkGlHOxv1Mlvp0w4qNdnVg==" - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@opentelemetry/sdk-node": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-node/-/sdk-node-0.34.0.tgz", - "integrity": "sha512-4OX2qvOPoK3De2e600Gim46I3PahI6UkD8uZ9hEgSg40egHXKw3keIaFnz1CWkYwa5hhVVIBsoobI41cHfulHA==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/exporter-jaeger": "1.8.0", - "@opentelemetry/exporter-trace-otlp-grpc": "0.34.0", - "@opentelemetry/exporter-trace-otlp-http": "0.34.0", - "@opentelemetry/exporter-trace-otlp-proto": "0.34.0", - "@opentelemetry/exporter-zipkin": "1.8.0", - "@opentelemetry/instrumentation": "0.34.0", - "@opentelemetry/resources": "1.8.0", - "@opentelemetry/sdk-metrics": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/sdk-trace-node": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, "@opentelemetry/sdk-trace-base": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz", @@ -979,16 +710,6 @@ } } }, - "@opentelemetry/sdk-trace-web": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-1.8.0.tgz", - "integrity": "sha512-SfotgAOOy6WTDtIxo97DjE+4l+hCiMqI0A3/TbJjixMPpk4ir/32uFqU9urhH/+zRybwwGYkQ6eILeuyZUi0ZQ==", - "requires": { - "@opentelemetry/core": "1.8.0", - "@opentelemetry/sdk-trace-base": "1.8.0", - "@opentelemetry/semantic-conventions": "1.8.0" - } - }, "@opentelemetry/semantic-conventions": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz", @@ -1043,60 +764,6 @@ "resolved": "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz", "integrity": "sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw==" }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, "@sideway/address": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", @@ -1354,11 +1021,6 @@ "@types/koa": "*" } }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, "@types/memcached": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/@types/memcached/-/memcached-2.2.7.tgz", @@ -1578,11 +1240,6 @@ "safe-buffer": "^5.0.1" } }, - "ansi-color": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz", - "integrity": "sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==" - }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1612,7 +1269,7 @@ "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-map": { "version": "0.0.1", @@ -1777,21 +1434,10 @@ "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz", "integrity": "sha512-PDgX2QJgUc5+Jb2xAoBFP5MxhtVUmZHR33ak+m/SDxRdCrbnX1BggRIaxiW7ImwfmO4iJeCQKN18ToSXWGjYkA==" }, - "bufrw": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bufrw/-/bufrw-1.3.0.tgz", - "integrity": "sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ==", - "requires": { - "ansi-color": "^0.2.1", - "error": "^7.0.0", - "hexer": "^1.5.0", - "xtend": "^4.0.0" - } - }, "byline": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", - "integrity": "sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==" + "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=" }, "bytes": { "version": "3.1.2", @@ -1893,7 +1539,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "consolidate": { "version": "0.10.0", @@ -1928,7 +1574,7 @@ "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "core-util-is": { "version": "1.0.2", @@ -2049,7 +1695,7 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "emoji-regex": { "version": "8.0.0", @@ -2059,7 +1705,7 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "end-of-stream": { "version": "1.4.4", @@ -2069,15 +1715,6 @@ "once": "^1.4.0" } }, - "error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==", - "requires": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -2086,7 +1723,7 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "esprima": { "version": "4.0.1", @@ -2096,7 +1733,7 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "eventemitter2": { "version": "5.0.1", @@ -2350,7 +1987,7 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "fs-extra": { "version": "8.1.0", @@ -2383,7 +2020,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "function-bind": { "version": "1.1.1", @@ -2507,24 +2144,6 @@ "has-symbols": "^1.0.2" } }, - "hexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/hexer/-/hexer-1.5.0.tgz", - "integrity": "sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==", - "requires": { - "ansi-color": "^0.2.1", - "minimist": "^1.1.0", - "process": "^0.10.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" - } - } - }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -2572,7 +2191,7 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", "wrappy": "1" @@ -2658,12 +2277,12 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isomorphic-ws": { "version": "4.0.1", @@ -2675,25 +2294,6 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, - "jaeger-client": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.19.0.tgz", - "integrity": "sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==", - "requires": { - "node-int64": "^0.4.0", - "opentracing": "^0.14.4", - "thriftrw": "^3.5.0", - "uuid": "^8.3.2", - "xorshift": "^1.1.1" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - } - } - }, "jmespath": { "version": "0.16.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", @@ -2797,11 +2397,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" - }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -2819,11 +2414,6 @@ "streamroller": "^3.1.3" } }, - "long": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz", - "integrity": "sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==" - }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -2845,17 +2435,17 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "mime": { "version": "1.6.0", @@ -2891,7 +2481,7 @@ "minimist": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==" + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" }, "minipass": { "version": "4.0.0", @@ -2973,11 +2563,6 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, "normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", @@ -3017,7 +2602,7 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" } @@ -3036,11 +2621,6 @@ "oidc-token-hash": "^5.0.1" } }, - "opentracing": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.7.tgz", - "integrity": "sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==" - }, "optimist": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", @@ -3073,7 +2653,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "2.0.1", @@ -3088,7 +2668,7 @@ "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "performance-now": { "version": "2.1.0", @@ -3140,42 +2720,6 @@ "xtend": "^4.0.0" } }, - "process": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/process/-/process-0.10.1.tgz", - "integrity": "sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==" - }, - "protobufjs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" - }, - "long": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" - } - } - }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -3246,7 +2790,7 @@ "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -3257,7 +2801,7 @@ "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { "resolve": "^1.1.6" } @@ -3458,7 +3002,7 @@ "secure-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz", - "integrity": "sha512-nZi59hW3Sl5P3+wOO89eHBAAGwmCPd2aE1+dLZV5MO+ItQctIvAqihzaAXIQhvtH4KJPxM080HsnqltR2y8cWg==" + "integrity": "sha1-8MgtmKOxOah3aogIBQuCRDEIf8o=" }, "semver": { "version": "7.3.8", @@ -3679,11 +3223,6 @@ "fs-extra": "^8.1.0" } }, - "string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==" - }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -3697,7 +3236,7 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, "strip-ansi": { "version": "6.0.1", @@ -3730,16 +3269,6 @@ "yallist": "^4.0.0" } }, - "thriftrw": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/thriftrw/-/thriftrw-3.12.0.tgz", - "integrity": "sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw==", - "requires": { - "bufrw": "^1.3.0", - "error": "7.0.2", - "long": "^2.4.0" - } - }, "tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", @@ -3833,7 +3362,7 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "uri-js": { "version": "4.2.2", @@ -3874,7 +3403,7 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { "version": "3.4.0", @@ -3889,7 +3418,7 @@ "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, "verror": { "version": "1.10.0", @@ -3945,7 +3474,7 @@ "wordwrap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==" + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" }, "wrap-ansi": { "version": "7.0.0", @@ -3960,7 +3489,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { "version": "7.5.9", @@ -3986,11 +3515,6 @@ "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz", "integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==" }, - "xorshift": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xorshift/-/xorshift-1.2.0.tgz", - "integrity": "sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==" - }, "xpath": { "version": "0.0.27", "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz", diff --git a/package.json b/package.json index ae18c63d..39f18fb8 100644 --- a/package.json +++ b/package.json @@ -14,22 +14,14 @@ "dependencies": { "@dagrejs/graphlib": "^2.1.4", "@kubernetes/client-node": "^0.12.2", - "@opentelemetry/api": "^1.2.0", "@opentelemetry/auto-instrumentations-node": "^0.36.0", "@opentelemetry/exporter-trace-otlp-http": "^0.34.0", "@opentelemetry/instrumentation": "^0.34.0", "@opentelemetry/resources": "^1.8.0", - "@opentelemetry/sdk-node": "^0.34.0", "@opentelemetry/sdk-trace-base": "^1.8.0", - "@opentelemetry/sdk-trace-web": "^1.8.0", "@opentelemetry/semantic-conventions": "^1.8.0", "@opentelemetry/tracing": "^0.24.0", - "@opentelemetry/exporter-collector": "^0.25.0", - "@opentelemetry/instrumentation-express": "^0.32.0", - "@opentelemetry/instrumentation-http": "^0.34.0", - "@opentelemetry/exporter-jaeger": "^1.8.0", "@opentelemetry/sdk-trace-node": "^1.8.0", - "@opentelemetry/propagator-ot-trace": "^0.26.2", "@supercharge/promise-pool": "^2.3.2", "adm-zip": "0.4.11", "amqplib": "0.5.2", From f188ad8624dd0fdade3a9a5116aa7dbb81416dfa Mon Sep 17 00:00:00 2001 From: Iffern Date: Mon, 23 Jan 2023 21:09:27 +0100 Subject: [PATCH 5/9] cleanup --- examples/RemoteJobs/functions.js | 7 +++++++ package-lock.json | 10 +++++----- tracing.js | 2 +- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/examples/RemoteJobs/functions.js b/examples/RemoteJobs/functions.js index 34f19c26..44a4421f 100644 --- a/examples/RemoteJobs/functions.js +++ b/examples/RemoteJobs/functions.js @@ -54,6 +54,13 @@ async function submitRemoteJob(ins, outs, context, cb) { // "submit" job (start the handler process) var proc = spawn(cmd, ['../../../hyperflow-job-executor/jobexec.js', context.taskId, context.redis_url, parent_id, trace_id], {shell: true}); + if (span.isRecording()) { + span.setAttributes({ + 'hfId': context.hfId, 'appId': context.appId, 'input_dir': input_dir, + 'work_dir': work_dir, 'output_dir': output_dir + }) + } + proc.stderr.on('data', function (data) { logger.debug(data.toString()); console.log(data.toString()); diff --git a/package-lock.json b/package-lock.json index d6e5ebe7..3293b512 100644 --- a/package-lock.json +++ b/package-lock.json @@ -183,11 +183,6 @@ "@opentelemetry/instrumentation-winston": "^0.31.0" } }, - "@opentelemetry/context-async-hooks": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", - "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==" - }, "@opentelemetry/core": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.8.0.tgz", @@ -700,6 +695,11 @@ "semver": "^7.3.5" }, "dependencies": { + "@opentelemetry/context-async-hooks": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz", + "integrity": "sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw==" + }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", diff --git a/tracing.js b/tracing.js index ebdbda6d..c142220c 100644 --- a/tracing.js +++ b/tracing.js @@ -10,7 +10,7 @@ const { BatchSpanProcessor } = require("@opentelemetry/sdk-trace-base"); module.exports = (serviceName) => { const exporter = new OTLPTraceExporter({ - url: "http://collector-gateway:4318/v1/traces" + url: process.env.OPENTELEMETRY_URL+':4318/v1/traces' }); const provider = new NodeTracerProvider({ From 6407fd5b68c7e6ce7fb37095b89a1a70bd48c997 Mon Sep 17 00:00:00 2001 From: Iffern Date: Mon, 23 Jan 2023 21:12:42 +0100 Subject: [PATCH 6/9] delete docker-compose.yaml --- docker-compose.yaml | 61 --------------------------------------------- 1 file changed, 61 deletions(-) delete mode 100644 docker-compose.yaml diff --git a/docker-compose.yaml b/docker-compose.yaml deleted file mode 100644 index 31414f14..00000000 --- a/docker-compose.yaml +++ /dev/null @@ -1,61 +0,0 @@ -# PLACE THIS FILE IN FOLDER WHERE YOU KEEP hyperflow AND hyperflow-job-executor REPOS - -version: "3" - -services: - redis: - image: redis - ports: - - "6379:6379" - networks: - - my-network - - hyperflow: - image: hyperflowwms/hyperflow:v1.4-dev - tty: true - environment: - - REDIS_URL=redis://redis/ - - HF_VAR_function=redisCommand - volumes: - - ./wfdir:/home/wfdir - - ./hyperflow/:/home/hyperflow/ - - ./hyperflow-job-executor/:/home/hyperflow-job-executor/ - networks: - - my-network - - jaeger: - image: jaegertracing/all-in-one:latest - ports: - - "5775:5775/udp" - - "6831:6831/udp" - - "6832:6832/udp" - - "5778:5778" - - "16686:16686" - - "14250:14250" - - "14268:14268" - - "14269:14269" - - "9411:9411" - environment: - - COLLECTOR_ZIPKIN_HOST_PORT=:9411 - networks: - - my-network - - collector-gateway: - image: otel/opentelemetry-collector:0.68.0 - volumes: - - ./collector-gateway.yaml:/etc/collector-gateway.yaml - command: [ "--config=/etc/collector-gateway.yaml" ] - ports: - - "1888:1888" # pprof extension - - "13133:13133" # health_check extension - - "4317:4317" # OTLP gRPC receiver - - "4318:4318" # OTLP HTTP receiver - - "55670:55679" # zpages extension - depends_on: - - jaeger - networks: - - my-network - -networks: - my-network: - driver: bridge \ No newline at end of file From d81c756b368ad976e1923387362455d3744bd8ac Mon Sep 17 00:00:00 2001 From: Iffern Date: Mon, 23 Jan 2023 21:14:34 +0100 Subject: [PATCH 7/9] add span.end() --- functions/kubernetes/k8sCommand.js | 1 + 1 file changed, 1 insertion(+) diff --git a/functions/kubernetes/k8sCommand.js b/functions/kubernetes/k8sCommand.js index 119b47e8..da737ddf 100644 --- a/functions/kubernetes/k8sCommand.js +++ b/functions/kubernetes/k8sCommand.js @@ -134,6 +134,7 @@ async function k8sCommandGroup(bufferItems) { var traceId = span.spanContext().traceId var parentId = span.spanContext().spanId await submitK8sJob(kubeconfig, jobArr, taskIdArr, contextArr, customParams, parentId, traceId) + span.end(); }); } jobExitCodes = await synchronizeJobs(jobArr, taskIdArr, contextArr, customParams, restartFn); From e6789a343efe32328e02efdcbb52ce6d6401280c Mon Sep 17 00:00:00 2001 From: Iffern Date: Mon, 23 Jan 2023 21:15:38 +0100 Subject: [PATCH 8/9] add span.end() --- functions/kubernetes/bojK8sCommand.js | 1 + 1 file changed, 1 insertion(+) diff --git a/functions/kubernetes/bojK8sCommand.js b/functions/kubernetes/bojK8sCommand.js index 28802944..afabc4d4 100644 --- a/functions/kubernetes/bojK8sCommand.js +++ b/functions/kubernetes/bojK8sCommand.js @@ -49,6 +49,7 @@ async function bojK8sCommand(ins, outs, context, cb) { jobExitCodes = await Promise.all(jobPromises); return jobExitCodes; }); + span.end(); }); console.log(results, errors); From 0f364255ecf9c1fc0f781c1b27d4cc95207aab4a Mon Sep 17 00:00:00 2001 From: Iffern Date: Mon, 23 Jan 2023 21:17:31 +0100 Subject: [PATCH 9/9] update async spans --- functions/kubernetes/bojK8sCommand.js | 2 ++ functions/kubernetes/k8sCommand.js | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/functions/kubernetes/bojK8sCommand.js b/functions/kubernetes/bojK8sCommand.js index afabc4d4..26ef68aa 100644 --- a/functions/kubernetes/bojK8sCommand.js +++ b/functions/kubernetes/bojK8sCommand.js @@ -31,6 +31,8 @@ async function bojK8sCommand(ins, outs, context, cb) { let jobsFileName = ins["jobSetsFile"].data[0]; let jobs = JSON.parse(fs.readFileSync(jobsFileName)); + let results, errors; + // run job sets in parallel with concurrency limit tracer.startActiveSpan('bojK8s', async span => { const PromisePool = require('@supercharge/promise-pool'); diff --git a/functions/kubernetes/k8sCommand.js b/functions/kubernetes/k8sCommand.js index da737ddf..8573915b 100644 --- a/functions/kubernetes/k8sCommand.js +++ b/functions/kubernetes/k8sCommand.js @@ -126,22 +126,23 @@ async function k8sCommandGroup(bufferItems) { kubeconfig.loadFromDefault(); // loadFromString(JSON.stringify(kconfig)) let jobExitCodes = []; + tracer.startActiveSpan('k8sCommands', async span => { try { if (getExecutorType(context) === "WORKER_POOL") { await amqpEnqueueJobs(jobArr, taskIdArr, contextArr, customParams) } else { - tracer.startActiveSpan('k8sCommands', async span => { var traceId = span.spanContext().traceId var parentId = span.spanContext().spanId await submitK8sJob(kubeconfig, jobArr, taskIdArr, contextArr, customParams, parentId, traceId) - span.end(); - }); + } jobExitCodes = await synchronizeJobs(jobArr, taskIdArr, contextArr, customParams, restartFn); } catch (err) { console.log("Error when submitting job:", err); throw err; } + span.end(); + }); let endTime = Date.now(); console.log("Ending k8sCommandGroup function, time:", endTime, "exit codes:", jobExitCodes);