From ba9dc69086e110d41c76ec3c83015742f30ce115 Mon Sep 17 00:00:00 2001 From: TomyJan Date: Wed, 31 Jul 2024 02:31:08 +0800 Subject: [PATCH] feat(telemetry): export traces data in otlp format & matrics data to prometheus (#1400) Reviewed-on: https://git.daoyoucloud.com/daoyoucloud/tachybase/pulls/1400 Reviewed-by: sealday Co-authored-by: TomyJan Co-committed-by: TomyJan --- .env.example | 11 + packages/core/app/src/config/telemetry.ts | 4 +- packages/core/server/src/application.ts | 7 +- packages/core/telemetry/package.json | 6 +- .../telemetry/src/meters/environment.ts} | 6 +- packages/core/telemetry/src/meters/index.ts | 20 + .../telemetry/src}/meters/process.ts | 4 +- packages/core/telemetry/src/metric.ts | 45 + packages/core/telemetry/src/telemetry.ts | 19 + packages/core/telemetry/src/trace.ts | 16 + .../@tachybase/plugin-prometheus/.npmignore | 2 - .../@tachybase/plugin-prometheus/README.md | 25 - .../plugin-prometheus/README.zh-CN.md | 25 - .../@tachybase/plugin-prometheus/client.d.ts | 2 - .../@tachybase/plugin-prometheus/client.js | 1 - .../@tachybase/plugin-prometheus/package.json | 26 - .../@tachybase/plugin-prometheus/server.d.ts | 2 - .../@tachybase/plugin-prometheus/server.js | 1 - .../plugin-prometheus/src/client/index.tsx | 21 - .../@tachybase/plugin-prometheus/src/index.ts | 2 - .../src/server/collections/.gitkeep | 0 .../plugin-prometheus/src/server/index.ts | 1 - .../src/server/meters/index.ts | 16 - .../plugin-prometheus/src/server/plugin.ts | 47 - .../src/server/prometheus-exporters/index.ts | 2 - .../internal-prometheus-exporter.ts | 35 - pnpm-lock.yaml | 1132 ++++++++++++++++- 27 files changed, 1206 insertions(+), 272 deletions(-) rename packages/{plugins/@tachybase/plugin-prometheus/src/server/meters/hardware.ts => core/telemetry/src/meters/environment.ts} (94%) create mode 100644 packages/core/telemetry/src/meters/index.ts rename packages/{plugins/@tachybase/plugin-prometheus/src/server => core/telemetry/src}/meters/process.ts (92%) delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/.npmignore delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/README.md delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/README.zh-CN.md delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/client.d.ts delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/client.js delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/package.json delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/server.d.ts delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/server.js delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/src/client/index.tsx delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/src/index.ts delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/src/server/collections/.gitkeep delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/src/server/index.ts delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/src/server/meters/index.ts delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/src/server/plugin.ts delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/src/server/prometheus-exporters/index.ts delete mode 100644 packages/plugins/@tachybase/plugin-prometheus/src/server/prometheus-exporters/internal-prometheus-exporter.ts diff --git a/.env.example b/.env.example index 44bfcea4c..bc4fb7372 100644 --- a/.env.example +++ b/.env.example @@ -62,3 +62,14 @@ INIT_ROOT_EMAIL=admin@tachybase.com INIT_ROOT_PASSWORD=!Admin123. INIT_ROOT_NICKNAME=Super Admin INIT_ROOT_USERNAME=tachybase + +################# TELEMETRY ################# + +# TELEMETRY_ENABLED=on # 是否启用遥测 +# TELEMETRY_SERVICE_NAME=tachybase-default-demo # 服务名称,默认为 tachybase-main +# OTEL_LOG_LEVEL=debug # OpenTelemetry 日志级别,仅输出到控制台,见 [官方文档](https://open-telemetry.github.io/opentelemetry-js/enums/_opentelemetry_api.DiagLogLevel.html) ,不配置则默认不输出日志 +# OTEL_METRICS_READER=console,prometheus # 指标读取器,两个均为内置,console 为控制台,prometheus 为 prometheus 服务器 +# OTEL_PROMETHEUS_SERVER=on # 是否启用 Prometheus 服务,用于创建服务器以供导出指标数据 +# OTEL_PROMETHEUS_PORT=9464 # Prometheus 服务器端口,默认为 9464,注意此服务器没有鉴权 +# OTEL_TRACES_PROCESSOR=console,otlp # 链路追踪处理器,两个均为内置,console 为控制台,otlp 为 OTLP 规范的追踪服务器 +# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT_GRPC=http://localhost:4317 # [OTLP](https://opentelemetry.io/docs/specs/otlp/) 规范的追踪服务器的 gRPC 端点地址 diff --git a/packages/core/app/src/config/telemetry.ts b/packages/core/app/src/config/telemetry.ts index 6394c9164..9c2f6d193 100644 --- a/packages/core/app/src/config/telemetry.ts +++ b/packages/core/app/src/config/telemetry.ts @@ -3,9 +3,9 @@ import { AppTelemetryOptions } from '@tachybase/server'; export const telemetry: AppTelemetryOptions = { enabled: process.env.TELEMETRY_ENABLED === 'on', metric: { - readerName: process.env.TELEMETRY_METRIC_READER, + readerName: process.env.OTEL_METRICS_READER, }, trace: { - processorName: process.env.TELEMETRY_TRACE_PROCESSOR, + processorName: process.env.OTEL_TRACES_PROCESSOR, }, }; diff --git a/packages/core/server/src/application.ts b/packages/core/server/src/application.ts index 2e8bff026..749047f28 100644 --- a/packages/core/server/src/application.ts +++ b/packages/core/server/src/application.ts @@ -1066,8 +1066,13 @@ export class Application exten plugins: plugins || [], }); + let serviceName = process.env.TELEMETRY_SERVICE_NAME; + if (!serviceName) { + this.log.warn('TELEMETRY_SERVICE_NAME is not set, will use default service name, please set it in .env file!'); + serviceName = `tachybase-${this.name}`; + } this._telemetry = new Telemetry({ - serviceName: `tachybase-${this.name}`, + serviceName, version: this.getVersion(), ...options.telemetry, }); diff --git a/packages/core/telemetry/package.json b/packages/core/telemetry/package.json index 8b51f4325..2c6d552df 100644 --- a/packages/core/telemetry/package.json +++ b/packages/core/telemetry/package.json @@ -7,12 +7,16 @@ "types": "./lib/index.d.ts", "dependencies": { "@opentelemetry/api": "^1.7.0", + "@opentelemetry/auto-instrumentations-node": "^0.48.0", + "@opentelemetry/exporter-prometheus": "^0.52.1", + "@opentelemetry/exporter-trace-otlp-grpc": "^0.52.1", "@opentelemetry/instrumentation": "^0.46.0", "@opentelemetry/resources": "^1.19.0", "@opentelemetry/sdk-metrics": "^1.19.0", "@opentelemetry/sdk-trace-base": "^1.19.0", "@opentelemetry/sdk-trace-node": "^1.19.0", "@opentelemetry/semantic-conventions": "^1.19.0", - "@tachybase/utils": "workspace:*" + "@tachybase/utils": "workspace:*", + "node-os-utils": "^1.3.7" } } diff --git a/packages/plugins/@tachybase/plugin-prometheus/src/server/meters/hardware.ts b/packages/core/telemetry/src/meters/environment.ts similarity index 94% rename from packages/plugins/@tachybase/plugin-prometheus/src/server/meters/hardware.ts rename to packages/core/telemetry/src/meters/environment.ts index 7c50e20b4..511037325 100644 --- a/packages/plugins/@tachybase/plugin-prometheus/src/server/meters/hardware.ts +++ b/packages/core/telemetry/src/meters/environment.ts @@ -2,13 +2,13 @@ import os from 'os'; import osUtils from 'node-os-utils'; -export class hardware { +export class environmentMeters { meter: any; constructor(meter) { this.meter = meter; } async start() { - console.log('hardware meter start'); + console.log('environment meter start'); const uptime = this.meter.createObservableGauge('environment.hardware.uptime', { description: 'Uptime in seconds', @@ -72,6 +72,6 @@ export class hardware { }); } async shutdown() { - console.log('hardware meter shutdown'); + console.log('environment meter shutdown'); } } diff --git a/packages/core/telemetry/src/meters/index.ts b/packages/core/telemetry/src/meters/index.ts new file mode 100644 index 000000000..a978243df --- /dev/null +++ b/packages/core/telemetry/src/meters/index.ts @@ -0,0 +1,20 @@ +import { environmentMeters } from './environment'; +import { processMeters } from './process'; + +export default class initMeters { + meter: any; + constructor(meter) { + this.meter = meter; + } + async start() { + try { + const environmentMeter = new environmentMeters(this.meter); + await environmentMeter.start(); + + const processMeter = new processMeters(this.meter); + await processMeter.start(); + } catch (error) { + console.error('Failed to initialize meters:', error); + } + } +} diff --git a/packages/plugins/@tachybase/plugin-prometheus/src/server/meters/process.ts b/packages/core/telemetry/src/meters/process.ts similarity index 92% rename from packages/plugins/@tachybase/plugin-prometheus/src/server/meters/process.ts rename to packages/core/telemetry/src/meters/process.ts index c48e71611..7947c8d72 100644 --- a/packages/plugins/@tachybase/plugin-prometheus/src/server/meters/process.ts +++ b/packages/core/telemetry/src/meters/process.ts @@ -1,4 +1,4 @@ -export class processSelf { +export class processMeters { meter: any; constructor(meter) { this.meter = meter; @@ -29,6 +29,6 @@ export class processSelf { }); } async shutdown() { - console.log('hardware meter shutdown'); + console.log('process meter shutdown'); } } diff --git a/packages/core/telemetry/src/metric.ts b/packages/core/telemetry/src/metric.ts index 1e41e664f..53a09f160 100644 --- a/packages/core/telemetry/src/metric.ts +++ b/packages/core/telemetry/src/metric.ts @@ -1,6 +1,7 @@ import { Registry } from '@tachybase/utils'; import opentelemetry from '@opentelemetry/api'; +import { PrometheusExporter } from '@opentelemetry/exporter-prometheus'; import { Resource } from '@opentelemetry/resources'; import { ConsoleMetricExporter, @@ -10,6 +11,8 @@ import { View, } from '@opentelemetry/sdk-metrics'; +import initMeters from './meters'; + export type MetricOptions = { meterName?: string; version?: string; @@ -46,6 +49,7 @@ export class Metric { } registerReader(name: string, reader: GetMetricReader) { + console.log('register metric reader:', name); this.readers.register(name, reader); } @@ -62,6 +66,31 @@ export class Metric { } start() { + // 创建 Prometheus 作为指标 Reader + try { + // 启动 Prometheus 服务器 + const startServer = process.env.OTEL_PROMETHEUS_SERVER === 'on'; + if (!startServer) { + console.warn('Prometheus server is disabled'); + } else { + const port = Number(process.env.OTEL_PROMETHEUS_PORT) || 9464; + const reader = () => + new PrometheusExporter( + { + port, // optional - default is 9464 + }, + () => { + console.log(`Prometheus exporter endpoint started on http://localhost:${port}/metrics`); + }, + ); + // 注册 Prometheus 作为指标 Reader + this.registerReader('prometheus', reader); + } + } catch (error) { + console.error('Failed to initialize Prometheus metrics reader:', error); + } + + // 添加指标 Reader let readerName = this.readerName; if (typeof readerName === 'string') { readerName = readerName.split(','); @@ -70,6 +99,22 @@ export class Metric { const reader = this.getReader(name)(); this.provider.addMetricReader(reader); }); + + // 初始化指标 Meters + try { + const meter = this.getMeter(); + const meters = new initMeters(meter); + meters + .start() + .then(() => { + console.log('Meters initialized'); + }) + .catch((error) => { + console.error('Failed to initialize meters:', error); + }); + } catch (error) { + console.error('Failed to initialize meters:', error); + } } shutdown() { diff --git a/packages/core/telemetry/src/telemetry.ts b/packages/core/telemetry/src/telemetry.ts index 7bc910b68..2156d2d52 100644 --- a/packages/core/telemetry/src/telemetry.ts +++ b/packages/core/telemetry/src/telemetry.ts @@ -1,3 +1,5 @@ +import { diag, DiagConsoleLogger, DiagLogLevel } from '@opentelemetry/api'; +import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node'; import { InstrumentationOption, registerInstrumentations } from '@opentelemetry/instrumentation'; import { Resource } from '@opentelemetry/resources'; import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'; @@ -29,6 +31,23 @@ export class Telemetry { } init() { + // 设置 OTel 日志等级 + const diagLogLevel = process.env.OTEL_LOG_LEVEL; + if (diagLogLevel) { + diag.setLogger(new DiagConsoleLogger(), DiagLogLevel[diagLogLevel]); + } + + // 自动插桩 + try { + const instrumentations = getNodeAutoInstrumentations(); + this.addInstrumentation(instrumentations); + console.log( + `auto-instrumentations added, num: ${instrumentations.length}, names: ${instrumentations.map((i) => i.instrumentationName.replace('@opentelemetry/instrumentation-', '') + '@' + i.instrumentationVersion).join(', ')}`, + ); + } catch (error) { + console.error('Failed to add auto-instrumentations:', error); + } + registerInstrumentations({ instrumentations: this.instrumentations, }); diff --git a/packages/core/telemetry/src/trace.ts b/packages/core/telemetry/src/trace.ts index 9410e525d..8d7c8d6c7 100644 --- a/packages/core/telemetry/src/trace.ts +++ b/packages/core/telemetry/src/trace.ts @@ -1,5 +1,6 @@ import { Registry } from '@tachybase/utils'; +import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc'; import { Resource } from '@opentelemetry/resources'; import { BatchSpanProcessor, ConsoleSpanExporter, SpanProcessor } from '@opentelemetry/sdk-trace-base'; import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node'; @@ -25,6 +26,13 @@ export class Trace { this.tracerName = tracerName || 'tachybase-trace'; this.version = version || ''; this.registerProcessor('console', () => new BatchSpanProcessor(new ConsoleSpanExporter())); + // 初始化 OTLP 作为链路追踪 Processor + const newOtlpExporter = new OTLPTraceExporter({ + url: process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT_GRPC || 'http://localhost:4317', + }); + // NOTE: 开发时可替换 BatchSpanProcessor 为 SimpleSpanProcessor 以便监测数据实时上传,区别详见 + // https://opentelemetry.io/docs/languages/js/instrumentation/#picking-the-right-span-processor + this.registerProcessor('otlp', () => new BatchSpanProcessor(newOtlpExporter)); } init(resource: Resource) { @@ -35,6 +43,7 @@ export class Trace { } registerProcessor(name: string, processor: GetSpanProcessor) { + console.log('register trace processor:', name); this.processors.register(name, processor); } @@ -55,6 +64,13 @@ export class Trace { const processor = this.getProcessor(name)(); this.provider.addSpanProcessor(processor); }); + + // 创建链路追踪的 span,自动插桩的 span 才能正常 work,我也不知道为什么,别删就对了 + const tracer = this.getTracer(); + const span = tracer.startSpan('load'); + span.setAttribute('event', 'load'); + span.addEvent('load'); + span.end(); } shutdown() { diff --git a/packages/plugins/@tachybase/plugin-prometheus/.npmignore b/packages/plugins/@tachybase/plugin-prometheus/.npmignore deleted file mode 100644 index 65f5e8779..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -/node_modules -/src diff --git a/packages/plugins/@tachybase/plugin-prometheus/README.md b/packages/plugins/@tachybase/plugin-prometheus/README.md deleted file mode 100644 index 03fec32d6..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/README.md +++ /dev/null @@ -1,25 +0,0 @@ -# prometheus - -English | [中文](./README.zh-CN.md) - -## Install - -First, edit `.env` to enable the system telemetry and add the prometheus collector - -``` -TELEMETRY_ENABLED=on -TELEMETRY_METRIC_READER=console,prometheus -TELEMETRY_PROMETHEUS_SERVER=on # If not on, the prometheus server will be registered to prometheus:metrics, note that the standalone prometheus server has NO permission restriction! -TELEMETRY_PROMETHEUS_PORT=9464 # The port of the prometheus server, default to 9464 -``` - -Then enable the plugin - -```shell -pnpm pm add @tachybase/plugin-prometheus -pnpm pm enable @tachybase/plugin-prometheus -``` - -## Usage - -TODO diff --git a/packages/plugins/@tachybase/plugin-prometheus/README.zh-CN.md b/packages/plugins/@tachybase/plugin-prometheus/README.zh-CN.md deleted file mode 100644 index 612593179..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/README.zh-CN.md +++ /dev/null @@ -1,25 +0,0 @@ -# prometheus - -[English](./README.md) | 中文 - -## 安装激活 - -首先编辑 `.env`,启用系统的遥测功能并添加采集器 prometheus - -``` -TELEMETRY_ENABLED=on -TELEMETRY_METRIC_READER=console,prometheus -TELEMETRY_PROMETHEUS_SERVER=on # 如果不为 on,则 prometheus 服务器将注册到 prometheus:metrics ,注意 prometheus 的独立服务器*没有*权限限制! -TELEMETRY_PROMETHEUS_PORT=9464 # prometheus 服务器的端口,默认为 9464 -``` - -然后启用插件 - -```shell -pnpm pm add @tachybase/plugin-prometheus -pnpm pm enable @tachybase/plugin-prometheus -``` - -## 使用方法 - -TODO diff --git a/packages/plugins/@tachybase/plugin-prometheus/client.d.ts b/packages/plugins/@tachybase/plugin-prometheus/client.d.ts deleted file mode 100644 index 6c459cbac..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/client.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './dist/client'; -export { default } from './dist/client'; diff --git a/packages/plugins/@tachybase/plugin-prometheus/client.js b/packages/plugins/@tachybase/plugin-prometheus/client.js deleted file mode 100644 index b6e3be70e..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/client.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./dist/client/index.js'); diff --git a/packages/plugins/@tachybase/plugin-prometheus/package.json b/packages/plugins/@tachybase/plugin-prometheus/package.json deleted file mode 100644 index 0e283b66c..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@tachybase/plugin-prometheus", - "displayName": "Prometheus Monitoring", - "version": "0.21.80", - "description": "Prometheus collector for system telemetry", - "keywords": [ - "Users & permissions" - ], - "license": "Apache-2.0", - "main": "dist/server/index.js", - "dependencies": { - "@opentelemetry/exporter-prometheus": "^0.52.1", - "node-os-utils": "^1.3.7", - "prom-client": "^15.1.3" - }, - "peerDependencies": { - "@tachybase/actions": "workspace:*", - "@tachybase/auth": "workspace:*", - "@tachybase/client": "workspace:*", - "@tachybase/database": "workspace:*", - "@tachybase/server": "workspace:*", - "@tachybase/test": "workspace:*" - }, - "description.zh-CN": "系统遥测的 Prometheus 采集器", - "displayName.zh-CN": "Prometheus 监控" -} diff --git a/packages/plugins/@tachybase/plugin-prometheus/server.d.ts b/packages/plugins/@tachybase/plugin-prometheus/server.d.ts deleted file mode 100644 index c41081ddc..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/server.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './dist/server'; -export { default } from './dist/server'; diff --git a/packages/plugins/@tachybase/plugin-prometheus/server.js b/packages/plugins/@tachybase/plugin-prometheus/server.js deleted file mode 100644 index 972842039..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/server.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./dist/server/index.js'); diff --git a/packages/plugins/@tachybase/plugin-prometheus/src/client/index.tsx b/packages/plugins/@tachybase/plugin-prometheus/src/client/index.tsx deleted file mode 100644 index 0efefed3d..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/src/client/index.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { Plugin } from '@tachybase/client'; - -export class PluginPrometheusClient extends Plugin { - async afterAdd() { - // await this.app.pm.add() - } - - async beforeLoad() {} - - // You can get and modify the app instance here - async load() { - console.log(this.app); - // this.app.addComponents({}) - // this.app.addScopes({}) - // this.app.addProvider() - // this.app.addProviders() - // this.app.router.add() - } -} - -export default PluginPrometheusClient; diff --git a/packages/plugins/@tachybase/plugin-prometheus/src/index.ts b/packages/plugins/@tachybase/plugin-prometheus/src/index.ts deleted file mode 100644 index 7e74612df..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './server'; -export { default } from './server'; diff --git a/packages/plugins/@tachybase/plugin-prometheus/src/server/collections/.gitkeep b/packages/plugins/@tachybase/plugin-prometheus/src/server/collections/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/plugins/@tachybase/plugin-prometheus/src/server/index.ts b/packages/plugins/@tachybase/plugin-prometheus/src/server/index.ts deleted file mode 100644 index b68aea57f..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/src/server/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './plugin'; diff --git a/packages/plugins/@tachybase/plugin-prometheus/src/server/meters/index.ts b/packages/plugins/@tachybase/plugin-prometheus/src/server/meters/index.ts deleted file mode 100644 index 0c94489fa..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/src/server/meters/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { hardware } from './hardware'; -import { processSelf } from './process'; - -export default class initMeters { - meter: any; - constructor(meter) { - this.meter = meter; - } - async start() { - const hardwareMeter = new hardware(this.meter); - await hardwareMeter.start(); - - const processMeter = new processSelf(this.meter); - await processMeter.start(); - } -} diff --git a/packages/plugins/@tachybase/plugin-prometheus/src/server/plugin.ts b/packages/plugins/@tachybase/plugin-prometheus/src/server/plugin.ts deleted file mode 100644 index 3e9e1ebe4..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/src/server/plugin.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Plugin } from '@tachybase/server'; - -import initMeters from './meters'; -import { InternalPrometheusExporter, PrometheusExporter } from './prometheus-exporters'; - -export class PluginPrometheusServer extends Plugin { - async afterAdd() { - this.app.on('beforeLoad', async (app) => { - const startServer = process.env.TELEMETRY_PROMETHEUS_SERVER === 'on'; - let reader; - if (!startServer) { - reader = () => new InternalPrometheusExporter(app); - this.log.info('internal prometheus endpoint registered on /api/prometheus:metrics'); - } else { - const port: number = Number(process.env.TELEMETRY_PROMETHEUS_PORT) || 9464; - reader = () => - new PrometheusExporter( - { - port, // optional - default is 9464 - }, - () => { - this.log.info(`independent prometheus endpoint started on http://localhost:${port}/metrics`); - }, - ); - } - app.telemetry.metric.registerReader('prometheus', reader); - }); - } - - async beforeLoad() {} - - async load() { - const meter = this.app.telemetry.metric.getMeter(); - const meters = new initMeters(meter); - await meters.start(); - } - - async install() {} - - async afterEnable() {} - - async afterDisable() {} - - async remove() {} -} - -export default PluginPrometheusServer; diff --git a/packages/plugins/@tachybase/plugin-prometheus/src/server/prometheus-exporters/index.ts b/packages/plugins/@tachybase/plugin-prometheus/src/server/prometheus-exporters/index.ts deleted file mode 100644 index 2583e4a86..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/src/server/prometheus-exporters/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './internal-prometheus-exporter'; -export { PrometheusExporter } from '@opentelemetry/exporter-prometheus'; diff --git a/packages/plugins/@tachybase/plugin-prometheus/src/server/prometheus-exporters/internal-prometheus-exporter.ts b/packages/plugins/@tachybase/plugin-prometheus/src/server/prometheus-exporters/internal-prometheus-exporter.ts deleted file mode 100644 index 99d0f17cd..000000000 --- a/packages/plugins/@tachybase/plugin-prometheus/src/server/prometheus-exporters/internal-prometheus-exporter.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { PrometheusExporter, PrometheusSerializer } from '@opentelemetry/exporter-prometheus'; - -export class InternalPrometheusExporter extends PrometheusExporter { - constructor(app) { - super({ - preventServerStart: true, - }); - app.resourcer.define({ - name: 'prometheus', - actions: { - metrics: async (ctx) => { - ctx.withoutDataWrapping = true; - ctx.set('Content-Type', 'text/plain'); - ctx.res.statusCode = 200; - try { - const collectionRes = await this.collect(); - const { resourceMetrics, errors } = collectionRes; - if (errors.length) { - ctx.log.error(`metrics collection errors`, { - method: 'InternalPrometheusExporter', - errors, - }); - } - ctx.body = new PrometheusSerializer().serialize(resourceMetrics); - } catch (err) { - ctx.body = `# failed to export metrics: ${err}`; - } - }, - }, - }); - } - collect() { - return super.collect(); - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eed7aa34c..6233f0d6b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1276,6 +1276,15 @@ importers: '@opentelemetry/api': specifier: ^1.7.0 version: 1.7.0 + '@opentelemetry/auto-instrumentations-node': + specifier: ^0.48.0 + version: 0.48.0(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-prometheus': + specifier: ^0.52.1 + version: 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-grpc': + specifier: ^0.52.1 + version: 0.52.1(@opentelemetry/api@1.7.0) '@opentelemetry/instrumentation': specifier: ^0.46.0 version: 0.46.0(@opentelemetry/api@1.7.0) @@ -1297,6 +1306,9 @@ importers: '@tachybase/utils': specifier: workspace:* version: link:../utils + node-os-utils: + specifier: ^1.3.7 + version: 1.3.7 packages/core/test: dependencies: @@ -3588,36 +3600,6 @@ importers: specifier: ^7.4.8 version: 7.4.8 - packages/plugins/@tachybase/plugin-prometheus: - dependencies: - '@opentelemetry/exporter-prometheus': - specifier: ^0.52.1 - version: 0.52.1(@opentelemetry/api@1.7.0) - '@tachybase/actions': - specifier: workspace:* - version: link:../../../core/actions - '@tachybase/auth': - specifier: workspace:* - version: link:../../../core/auth - '@tachybase/client': - specifier: workspace:* - version: link:../../../core/client - '@tachybase/database': - specifier: workspace:* - version: link:../../../core/database - '@tachybase/server': - specifier: workspace:* - version: link:../../../core/server - '@tachybase/test': - specifier: workspace:* - version: link:../../../core/test - node-os-utils: - specifier: ^1.3.7 - version: 1.3.7 - prom-client: - specifier: ^15.1.3 - version: 15.1.3 - packages/plugins/@tachybase/plugin-saml: dependencies: '@tachybase/actions': @@ -9937,6 +9919,25 @@ packages: fast-deep-equal: 3.1.3 dev: true + /@grpc/grpc-js@1.11.1: + resolution: {integrity: sha512-gyt/WayZrVPH2w/UTLansS7F9Nwld472JxxaETamrM8HNlsa+jSLNyKAZmhxI2Me4c3mQHFiS1wWHDY1g1Kthw==} + engines: {node: '>=12.10.0'} + dependencies: + '@grpc/proto-loader': 0.7.13 + '@js-sdsl/ordered-map': 4.4.2 + dev: false + + /@grpc/proto-loader@0.7.13: + resolution: {integrity: sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==} + engines: {node: '>=6'} + hasBin: true + dependencies: + lodash.camelcase: 4.3.0 + long: 5.2.3 + protobufjs: 7.3.2 + yargs: 17.7.2 + dev: false + /@gwhitney/detect-indent@7.0.1: resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==} engines: {node: '>=12.20'} @@ -10134,6 +10135,10 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /@js-sdsl/ordered-map@4.4.2: + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + dev: false + /@juggle/resize-observer@3.4.0: resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} dev: false @@ -10387,11 +10392,76 @@ packages: uuid: 3.4.0 dev: false + /@opentelemetry/api-logs@0.52.1: + resolution: {integrity: sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==} + engines: {node: '>=14'} + dependencies: + '@opentelemetry/api': 1.7.0 + dev: false + /@opentelemetry/api@1.7.0: resolution: {integrity: sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==} engines: {node: '>=8.0.0'} dev: false + /@opentelemetry/auto-instrumentations-node@0.48.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-meON9LM9dyPun8ZlIs90BzqHAIWfWkC8g+OoPuIEeV5UOSyKqMsWtbMyiTbs/k/i7k1V4miJQMX/PcLbD7pWcQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.4.1 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-amqplib': 0.39.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-aws-lambda': 0.43.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-aws-sdk': 0.43.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-bunyan': 0.40.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-cassandra-driver': 0.40.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-connect': 0.38.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-cucumber': 0.8.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-dataloader': 0.11.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-dns': 0.38.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-express': 0.41.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-fastify': 0.38.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-fs': 0.14.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-generic-pool': 0.38.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-graphql': 0.42.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-grpc': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-hapi': 0.40.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-http': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-ioredis': 0.42.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-knex': 0.38.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-koa': 0.42.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-lru-memoizer': 0.39.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-memcached': 0.38.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-mongodb': 0.46.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-mongoose': 0.40.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-mysql': 0.40.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-mysql2': 0.40.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-nestjs-core': 0.39.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-net': 0.38.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-pg': 0.43.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-pino': 0.41.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-redis': 0.41.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-redis-4': 0.41.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-restify': 0.40.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-router': 0.39.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-socket.io': 0.41.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-tedious': 0.12.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-undici': 0.4.0(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation-winston': 0.39.0(@opentelemetry/api@1.7.0) + '@opentelemetry/resource-detector-alibaba-cloud': 0.28.10(@opentelemetry/api@1.7.0) + '@opentelemetry/resource-detector-aws': 1.5.2(@opentelemetry/api@1.7.0) + '@opentelemetry/resource-detector-azure': 0.2.9(@opentelemetry/api@1.7.0) + '@opentelemetry/resource-detector-container': 0.3.11(@opentelemetry/api@1.7.0) + '@opentelemetry/resource-detector-gcp': 0.29.10(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-node': 0.52.1(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /@opentelemetry/context-async-hooks@1.19.0(@opentelemetry/api@1.7.0): resolution: {integrity: sha512-0i1ECOc9daKK3rjUgDDXf0GDD5XfCou5lXnt2DALIc2qKoruPPcesobNKE54laSVUWnC3jX26RzuOa31g0V32A==} engines: {node: '>=14'} @@ -10401,6 +10471,15 @@ packages: '@opentelemetry/api': 1.7.0 dev: false + /@opentelemetry/context-async-hooks@1.25.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-UW/ge9zjvAEmRWVapOP0qyCvPulWU6cQxGxDbWEFfGOj1VBBZAuOqTo3X6yWmDTD3Xe15ysCZChHncr2xFMIfQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.7.0 + dev: false + /@opentelemetry/core@1.19.0(@opentelemetry/api@1.7.0): resolution: {integrity: sha512-w42AukJh3TP8R0IZZOVJVM/kMWu8g+lm4LzT70WtuKqhwq7KVhcDzZZuZinWZa6TtQCl7Smt2wolEYzpHabOgw==} engines: {node: '>=14'} @@ -10433,6 +10512,581 @@ packages: '@opentelemetry/sdk-metrics': 1.25.1(@opentelemetry/api@1.7.0) dev: false + /@opentelemetry/exporter-trace-otlp-grpc@0.52.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-pVkSH20crBwMTqB3nIN4jpQKUEoB0Z94drIHpYyEqs7UBr+I0cpYyOR3bqjA/UasQUMROb3GX8ZX4/9cVRqGBQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@grpc/grpc-js': 1.11.1 + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/exporter-trace-otlp-http@0.52.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-05HcNizx0BxcFKKnS5rwOV+2GevLTVIRA0tRgWYyw4yCgR53Ic/xk83toYKts7kbzcI+dswInUg/4s8oyA+tqg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/exporter-trace-otlp-proto@0.52.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-pt6uX0noTQReHXNeEslQv7x311/F1gJzMnp1HD2qgypLRPbXDeMzzeTngRTUaUbP6hqWNtPxuLr4DEoZG+TcEQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/exporter-zipkin@1.25.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-RmOwSvkimg7ETwJbUOPTMhJm9A9bG1U8s7Zo3ajDh4zM7eYcycQ0dM7FbLD6NXWbI2yj7UY4q8BKinKYBQksyw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + dev: false + + /@opentelemetry/instrumentation-amqplib@0.39.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-i9SccU5bbHivmmN8ba8HitLnM915BWdGwk5Jl6dwHTp0eV4KpoprZLE/jXUY1AAP/LXpTrM7NgVHmslFSVWRYA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-aws-lambda@0.43.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-pSxcWlsE/pCWQRIw92sV2C+LmKXelYkjkA7C5s39iPUi4pZ2lA1nIiw+1R/y2pDEhUHcaKkNyljQr3cx9ZpVlQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/propagator-aws-xray': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + '@types/aws-lambda': 8.10.122 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-aws-sdk@0.43.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-klfA48MT0uZY/mGw3cYdQeCXTyMhtY4FzHcZy9R7DdTcuCExgbxWrUlOSiqIJ5kBgsCZfBMEeA6UQKDBwa6X7Q==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/propagation-utils': 0.30.10(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-bunyan@0.40.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-aZ4cXaGWwj79ZXSYrgFVsrDlE4mmf2wfvP9bViwRc0j75A6eN6GaHYHqufFGMTCqASQn5pIjjP+Bx+PWTGiofw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.52.1 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@types/bunyan': 1.8.9 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-cassandra-driver@0.40.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-JxbM39JU7HxE9MTKKwi6y5Z3mokjZB2BjwfqYi4B3Y29YO3I42Z7eopG6qq06yWZc+nQli386UDQe0d9xKmw0A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-connect@0.38.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-2/nRnx3pjYEmdPIaBwtgtSviTKHWnDZN3R+TkRUnhIVrvBKVcq+I5B2rtd6mr6Fe9cHlZ9Ojcuh7pkNh/xdWWg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + '@types/connect': 3.4.36 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-cucumber@0.8.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-ieTm4RBIlZt2brPwtX5aEZYtYnkyqhAVXJI9RIohiBVMe5DxiwCwt+2Exep/nDVqGPX8zRBZUl4AEw423OxJig==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-dataloader@0.11.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-27urJmwkH4KDaMJtEv1uy2S7Apk4XbN4AgWMdfMJbi7DnOduJmeuA+DpJCwXB72tEWXo89z5T3hUVJIDiSNmNw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-dns@0.38.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-Um07I0TQXDWa+ZbEAKDFUxFH40dLtejtExDOMLNJ1CL8VmOmA71qx93Qi/QG4tGkiI1XWqr7gF/oiMCJ4m8buQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + semver: 7.6.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-express@0.41.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-/B7fbMdaf3SYe5f1P973tkqd6s7XZirjpfkoJ63E7nltU30qmlgm9tY5XwZOzAFI0rHS9tbrFI2HFPAvQUFe/A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-fastify@0.38.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-HBVLpTSYpkQZ87/Df3N0gAw7VzYZV3n28THIBrJWfuqw3Or7UqdhnjeuMIPQ04BKk3aZc0cWn2naSQObbh5vXw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-fs@0.14.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-pVc8P5AgliC1DphyyBUgsxXlm2XaPH4BpYvt7rAZDMIqUpRk8gs19SioABtKqqxvFzg5jPtgJfJsdxq0Y+maLw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-generic-pool@0.38.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-0/ULi6pIco1fEnDPmmAul8ZoudFL7St0hjgBbWZlZPBCSyslDll1J7DFeEbjiRSSyUd+0tu73ae0DOKVKNd7VA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-graphql@0.42.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-N8SOwoKL9KQSX7z3gOaw5UaTeVQcfDO1c21csVHnmnmGUoqsXbArK2B8VuwPWcv6/BC/i3io+xTo7QGRZ/z28Q==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-grpc@0.52.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-EdSDiDSAO+XRXk/ZN128qQpBo1I51+Uay/LUPcPQhSRGf7fBPIEUBeOLQiItguGsug5MGOYjql2w/1wCQF3fdQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-hapi@0.40.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-8U/w7Ifumtd2bSN1OLaSwAAFhb9FyqWUki3lMMB0ds+1+HdSxYBe9aspEJEgvxAqOkrQnVniAPTEGf1pGM7SOw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-http@0.52.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-dG/aevWhaP+7OLv4BQQSEKMJv8GyeOp3Wxl31NHqE8xo9/fYMfEljiZphUHIfyg4gnZ9swMyWjfOQs5GUQe54Q==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + semver: 7.6.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-ioredis@0.42.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-P11H168EKvBB9TUSasNDOGJCSkpT44XgoM6d3gRIWAa9ghLpYhl0uRkS8//MqPzcJVHr3h3RmfXIpiYLjyIZTw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-knex@0.38.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-EFef6Ss5ATsf5AxJOLE+pxkfupcWDaejkPH+2q7TNeG1UwsBFobfiWM+iHROZ1Cl/y3mTi60MW70FxsaX2/TjA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-koa@0.42.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-H1BEmnMhho8o8HuNRq5zEI4+SIHDIglNB7BPKohZyWG4fWNuR7yM4GTlR01Syq21vODAS7z5omblScJD/eZdKw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-lru-memoizer@0.39.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-eU1Wx1RRTR/2wYXFzH9gcpB8EPmhYlNDIUHzUXjyUE0CAXEJhBLkYNlzdaVCoQDw2neDqS+Woshiia6+emWK9A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-memcached@0.38.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-tPmyqQEZNyrvg6G+iItdlguQEcGzfE+bJkpQifmBXmWBnoS5oU3UxqtyYuXGL2zI9qQM5yMBHH4nRXWALzy7WA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + '@types/memcached': 2.2.10 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-mongodb@0.46.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-VF/MicZ5UOBiXrqBslzwxhN7TVqzu1/LN/QDpkskqM0Zm0aZ4CVRbUygL8d7lrjLn15x5kGIe8VsSphMfPJzlA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-mongoose@0.40.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-niRi5ZUnkgzRhIGMOozTyoZIvJKNJyhijQI4nF4iFSb+FUx2v5fngfR+8XLmdQAO7xmsD8E5vEGdDVYVtKbZew==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-mysql2@0.40.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-0xfS1xcqUmY7WE1uWjlmI67Xg3QsSUlNT+AcXHeA4BDUPwZtWqF4ezIwLgpVZfHOnkAEheqGfNSWd1PIu3Wnfg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-mysql@0.40.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-d7ja8yizsOCNMYIJt5PH/fKZXjb/mS48zLROO4BzZTtDfhNCl2UM/9VIomP2qkGIFVouSJrGr/T00EzY7bPtKA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + '@types/mysql': 2.15.22 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-nestjs-core@0.39.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-mewVhEXdikyvIZoMIUry8eb8l3HUjuQjSjVbmLVTt4NQi35tkpnHQrG9bTRBrl3403LoWZ2njMPJyg4l6HfKvA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-net@0.38.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-stjow1PijcmUquSmRD/fSihm/H61DbjPlJuJhWUe7P22LFPjFhsrSeiB5vGj3vn+QGceNAs+kioUTzMGPbNxtg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-pg@0.43.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-og23KLyoxdnAeFs1UWqzSonuCkePUzCX30keSYigIzJe/6WSYA8rnEI5lobcxPEzg+GcU06J7jzokuEHbjVJNw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.7.0) + '@types/pg': 8.6.1 + '@types/pg-pool': 2.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-pino@0.41.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-Kpv0fJRk/8iMzMk5Ue5BsUJfHkBJ2wQoIi/qduU1a1Wjx9GLj6J2G17PHjPK5mnZjPNzkFOXFADZMfgDioliQw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.52.1 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-redis-4@0.41.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-H7IfGTqW2reLXqput4yzAe8YpDC0fmVNal95GHMLOrS89W+qWUKIqxolSh63hJyfmwPSFwXASzj7wpSk8Az+Dg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-redis@0.41.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-RJ1pwI3btykp67ts+5qZbaFSAAzacucwBet5/5EsKYtWBpHbWwV/qbGN/kIBzXg5WEZBhXLrR/RUq0EpEUpL3A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-restify@0.40.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-sm/rH/GysY/KOEvZqYBZSLYFeXlBkHCgqPDgWc07tz+bHCN6mPs9P3otGOSTe7o3KAIM8Nc6ncCO59vL+jb2cA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-router@0.39.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-LaXnVmD69WPC4hNeLzKexCCS19hRLrUw3xicneAMkzJSzNJvPyk7G6I7lz7VjQh1cooObPBt9gNyd3hhTCUrag==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-socket.io@0.41.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-7fzDe9/FpO6NFizC/wnzXXX7bF9oRchsD//wFqy5g5hVEgXZCQ70IhxjrKdBvgjyIejR9T9zTvfQ6PfVKfkCAw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-tedious@0.12.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-53xx7WQmpBPfxtVxOKRzzZxOjv9JzSdoy1aIvCtPM5/O407aYcdvj8wXxCQEiEfctFEovEHG4QgmdHz9BKidSQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + '@types/tedious': 4.0.14 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-undici@0.4.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-UdMQBpz11SqtWlmDnk5SoqF5QDom4VmW8SVDt9Q2xuMWVh8lc0kVROfoo2pl7zU6H6gFR8eudb3eFXIdrFn0ew==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.7.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/instrumentation-winston@0.39.0(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-v/1xziLJ9CyB3YDjBSBzbB70Qd0JwWTo36EqWK5m3AR0CzsyMQQmf3ZIZM6sgx7hXMcRQ0pnEYhg6nhrUQPm9A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.52.1 + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + transitivePeerDependencies: + - supports-color + dev: false + /@opentelemetry/instrumentation@0.46.0(@opentelemetry/api@1.7.0): resolution: {integrity: sha512-a9TijXZZbk0vI5TGLZl+0kxyFfrXHhX6Svtz7Pp2/VBlCSKrazuULEyoJQrOknJyFWNMEmbbJgOciHCCpQcisw==} engines: {node: '>=14'} @@ -10449,6 +11103,82 @@ packages: - supports-color dev: false + /@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.52.1 + '@types/shimmer': 1.0.5 + import-in-the-middle: 1.10.0 + require-in-the-middle: 7.2.0 + semver: 7.6.2 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@opentelemetry/otlp-exporter-base@0.52.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-z175NXOtX5ihdlshtYBe5RpGeBoTXVCKPPLiQlD6FHvpM4Ch+p2B0yWKYSrBfLH24H9zjJiBdTrtD+hLlfnXEQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.52.1(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/otlp-grpc-exporter-base@0.52.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-zo/YrSDmKMjG+vPeA9aBBrsQM9Q/f2zo6N04WMB3yNldJRsgpRBeLLwvAt/Ba7dpehDLOEFBd1i2JCoaFtpCoQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@grpc/grpc-js': 1.11.1 + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-exporter-base': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/otlp-transformer': 0.52.1(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/otlp-transformer@0.52.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-I88uCZSZZtVa0XniRqQWKbjAUm73I8tpEy/uJYPPYw5d7BRdVk0RfTBQw8kSUl01oVWEuqxLDa802222MYyWHg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.52.1 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-logs': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.7.0) + protobufjs: 7.3.2 + dev: false + + /@opentelemetry/propagation-utils@0.30.10(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-hhTW8pFp9PSyosYzzuUL9rdm7HF97w3OCyElufFHyUnYnKkCBbu8ne2LyF/KSdI/xZ81ubxWZs78hX4S7pLq5g==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + dev: false + + /@opentelemetry/propagator-aws-xray@1.25.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-soZQdO9EAROMwa9bL2C0VLadbrfRjSA9t7g6X8sL0X1B8V59pzOayYMyTW9qTECn9uuJV98A7qOnJm6KH6yk8w==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + dev: false + /@opentelemetry/propagator-b3@1.19.0(@opentelemetry/api@1.7.0): resolution: {integrity: sha512-v7y5IBOKBm0vP3yf0DHzlw4L2gL6tZ0KeeMTaxfO5IuomMffDbrGWcvYFp0Dt4LdZctTSK523rVLBB9FBHBciQ==} engines: {node: '>=14'} @@ -10459,6 +11189,16 @@ packages: '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) dev: false + /@opentelemetry/propagator-b3@1.25.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-p6HFscpjrv7//kE+7L+3Vn00VEDUJB0n6ZrjkTYHrJ58QZ8B3ajSJhRbCcY6guQ3PDjTbxWklyvIN2ojVbIb1A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + dev: false + /@opentelemetry/propagator-jaeger@1.19.0(@opentelemetry/api@1.7.0): resolution: {integrity: sha512-dedkOoTzKg+nYoLWCMp0Im+wo+XkTRW6aXhi8VQRtMW/9SNJGOllCJSu8llToLxMDF0+6zu7OCrKkevAof2tew==} engines: {node: '>=14'} @@ -10469,6 +11209,82 @@ packages: '@opentelemetry/core': 1.19.0(@opentelemetry/api@1.7.0) dev: false + /@opentelemetry/propagator-jaeger@1.25.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-nBprRf0+jlgxks78G/xq72PipVK+4or9Ypntw0gVZYNTCSK8rg5SeaGV19tV920CMqBD/9UIOiFr23Li/Q8tiA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + dev: false + + /@opentelemetry/redis-common@0.36.2: + resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} + engines: {node: '>=14'} + dev: false + + /@opentelemetry/resource-detector-alibaba-cloud@0.28.10(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-TZv/1Y2QCL6sJ+X9SsPPBXe4786bc/Qsw0hQXFsNTbJzDTGGUmOAlSZ2qPiuqAd4ZheUYfD+QA20IvAjUz9Hhg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + dev: false + + /@opentelemetry/resource-detector-aws@1.5.2(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-LNwKy5vJM5fvCDcbXVKwg6Y1pKT4WgZUsddGMnWMEhxJcQVZm2Z9vUkyHdQU7xvJtGwCO2/TkMWHPjU1KQNDJQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + dev: false + + /@opentelemetry/resource-detector-azure@0.2.9(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-16Z6kyrmszoa7J1uj1kbSAgZuk11K07yEDj6fa3I9XBf8Debi8y4K8ex94kpxbCfEraWagXji3bCWvaq3k4dRg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + dev: false + + /@opentelemetry/resource-detector-container@0.3.11(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-22ndMDakxX+nuhAYwqsciexV8/w26JozRUV0FN9kJiqSWtA1b5dCVtlp3J6JivG5t8kDN9UF5efatNnVbqRT9Q==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + dev: false + + /@opentelemetry/resource-detector-gcp@0.29.10(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-rm2HKJ9lsdoVvrbmkr9dkOzg3Uk0FksXNxvNBgrCprM1XhMoJwThI5i0h/5sJypISUAJlEeJS6gn6nROj/NpkQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + gcp-metadata: 6.1.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /@opentelemetry/resources@1.19.0(@opentelemetry/api@1.7.0): resolution: {integrity: sha512-RgxvKuuMOf7nctOeOvpDjt2BpZvZGr9Y0vf7eGtY5XYZPkh2p7e2qub1S2IArdBMf9kEbz0SfycqCviOu9isqg==} engines: {node: '>=14'} @@ -10491,6 +11307,18 @@ packages: '@opentelemetry/semantic-conventions': 1.25.1 dev: false + /@opentelemetry/sdk-logs@0.52.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-MBYh+WcPPsN8YpRHRmK1Hsca9pVlyyKd4BxOC4SsgHACnl/bPp4Cri9hWhVm5+2tiQ9Zf4qSc1Jshw9tOLGWQA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.52.1 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + dev: false + /@opentelemetry/sdk-metrics@1.19.0(@opentelemetry/api@1.7.0): resolution: {integrity: sha512-FiMii40zr0Fmys4F1i8gmuCvbinBnBsDeGBr4FQemOf0iPCLytYQm5AZJ/nn4xSc71IgKBQwTFQRAGJI7JvZ4Q==} engines: {node: '>=14'} @@ -10515,6 +11343,30 @@ packages: lodash.merge: 4.6.2 dev: false + /@opentelemetry/sdk-node@0.52.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-uEG+gtEr6eKd8CVWeKMhH2olcCHM9dEK68pe0qE0be32BcCRsvYURhHaD1Srngh1SQcnQzZ4TP324euxqtBOJA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/api-logs': 0.52.1 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-grpc': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-http': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-trace-otlp-proto': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/exporter-zipkin': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-logs': 0.52.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-metrics': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-node': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + transitivePeerDependencies: + - supports-color + dev: false + /@opentelemetry/sdk-trace-base@1.19.0(@opentelemetry/api@1.7.0): resolution: {integrity: sha512-+IRvUm+huJn2KqfFW3yW/cjvRwJ8Q7FzYHoUNx5Fr0Lws0LxjMJG1uVB8HDpLwm7mg5XXH2M5MF+0jj5cM8BpQ==} engines: {node: '>=14'} @@ -10527,6 +11379,18 @@ packages: '@opentelemetry/semantic-conventions': 1.19.0 dev: false + /@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/semantic-conventions': 1.25.1 + dev: false + /@opentelemetry/sdk-trace-node@1.19.0(@opentelemetry/api@1.7.0): resolution: {integrity: sha512-TCiEq/cUjM15RFqBRwWomTVbOqzndWL4ILa7ZCu0zbjU1/XY6AgHkgrgAc7vGP6TjRqH4Xryuglol8tcIfbBUQ==} engines: {node: '>=14'} @@ -10542,6 +11406,21 @@ packages: semver: 7.6.0 dev: false + /@opentelemetry/sdk-trace-node@1.25.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-nMcjFIKxnFqoez4gUmihdBrbpsEnAX/Xj16sGvZm+guceYE0NE00vLhpDVK6f3q8Q4VFI5xG8JjlXKMB/SkTTQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/context-async-hooks': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/propagator-b3': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/propagator-jaeger': 1.25.1(@opentelemetry/api@1.7.0) + '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.7.0) + semver: 7.6.2 + dev: false + /@opentelemetry/semantic-conventions@1.19.0: resolution: {integrity: sha512-14jRpC8f5c0gPSwoZ7SbEJni1PqI+AhAE8m1bMz6v+RPM4OlP1PT2UHBJj5Qh/ALLPjhVU/aZUK3YyjTUqqQVg==} engines: {node: '>=14'} @@ -10552,6 +11431,16 @@ packages: engines: {node: '>=14'} dev: false + /@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.7.0): + resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.1.0 + dependencies: + '@opentelemetry/api': 1.7.0 + '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.7.0) + dev: false + /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -11043,6 +11932,49 @@ packages: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: true + /@protobufjs/aspromise@1.1.2: + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + dev: false + + /@protobufjs/base64@1.1.2: + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + dev: false + + /@protobufjs/codegen@2.0.4: + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + dev: false + + /@protobufjs/eventemitter@1.1.0: + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + dev: false + + /@protobufjs/fetch@1.1.0: + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + dev: false + + /@protobufjs/float@1.0.2: + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + dev: false + + /@protobufjs/inquire@1.1.0: + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + dev: false + + /@protobufjs/path@1.1.2: + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + dev: false + + /@protobufjs/pool@1.1.0: + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + dev: false + + /@protobufjs/utf8@1.1.0: + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + dev: false + /@rc-component/async-validator@5.0.4: resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} engines: {node: '>=14.x'} @@ -12368,6 +13300,10 @@ packages: /@types/aria-query@5.0.4: resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + /@types/aws-lambda@8.10.122: + resolution: {integrity: sha512-vBkIh9AY22kVOCEKo5CJlyCgmSWvasC+SWUxL/x/vOwRobMpI/HG1xp/Ae3AqmSiZeLUbOhW0FCD3ZjqqUxmXw==} + dev: false + /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: @@ -12404,6 +13340,18 @@ packages: '@types/connect': 3.4.38 '@types/node': 20.14.2 + /@types/bunyan@1.8.9: + resolution: {integrity: sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==} + dependencies: + '@types/node': 20.14.2 + dev: false + + /@types/connect@3.4.36: + resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} + dependencies: + '@types/node': 20.14.2 + dev: false + /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: @@ -12687,6 +13635,12 @@ packages: resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} dev: true + /@types/memcached@2.2.10: + resolution: {integrity: sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==} + dependencies: + '@types/node': 20.14.2 + dev: false + /@types/methods@1.1.4: resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==} dev: true @@ -12716,6 +13670,12 @@ packages: dependencies: '@types/express': 4.17.21 + /@types/mysql@2.15.22: + resolution: {integrity: sha512-wK1pzsJVVAjYCSZWQoWHziQZbNggXFDUEIGf54g4ZM/ERuP86uGdWeKZWMYlqTPMZfHJJvLPyogXGvCOg87yLQ==} + dependencies: + '@types/node': 20.14.2 + dev: false + /@types/node-xlsx@0.15.3: resolution: {integrity: sha512-6UAa+t9eR3AZzRanZWGNUV8MoXwVpXQHMqCMdK8PNPwTy+G3kYHP+2KkTI+39vXETNb6krRijL+zWzmFrlfLjw==} dev: true @@ -12743,6 +13703,20 @@ packages: '@types/express': 4.17.21 dev: true + /@types/pg-pool@2.0.4: + resolution: {integrity: sha512-qZAvkv1K3QbmHHFYSNRYPkRjOWRLBYrL4B9c+wG0GSVGBw0NtJwPcgx/DSddeDJvRGMHCEQ4VMEVfuJ/0gZ3XQ==} + dependencies: + '@types/pg': 8.6.1 + dev: false + + /@types/pg@8.6.1: + resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} + dependencies: + '@types/node': 20.14.2 + pg-protocol: 1.6.0 + pg-types: 2.2.0 + dev: false + /@types/prop-types@15.7.11: resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} dev: true @@ -12918,6 +13892,12 @@ packages: minipass: 4.2.8 dev: false + /@types/tedious@4.0.14: + resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==} + dependencies: + '@types/node': 20.14.2 + dev: false + /@types/triple-beam@1.3.5: resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} dev: false @@ -15358,7 +16338,6 @@ packages: /bignumber.js@9.1.2: resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} - dev: true /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} @@ -15371,10 +16350,6 @@ packages: chainsaw: 0.1.0 dev: true - /bintrees@1.0.2: - resolution: {integrity: sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==} - dev: false - /bl@1.2.3: resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} dependencies: @@ -19841,6 +20816,31 @@ packages: dev: false optional: true + /gaxios@6.7.0: + resolution: {integrity: sha512-DSrkyMTfAnAm4ks9Go20QGOcXEyW/NmZhvTYBU2rb4afBB393WIMQPWPEDMl/k8xqiNN9HYq2zao3oWXsdl2Tg==} + engines: {node: '>=14'} + dependencies: + extend: 3.0.2 + https-proxy-agent: 7.0.4 + is-stream: 2.0.1 + node-fetch: 2.7.0 + uuid: 10.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + + /gcp-metadata@6.1.0: + resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} + engines: {node: '>=14'} + dependencies: + gaxios: 6.7.0 + json-bigint: 1.0.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: false + /generate-function@2.3.1: resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} dependencies: @@ -20684,6 +21684,15 @@ packages: parent-module: 1.0.1 resolve-from: 4.0.0 + /import-in-the-middle@1.10.0: + resolution: {integrity: sha512-Z1jumVdF2GwnnYfM0a/y2ts7mZbwFMgt5rRuVmLgobgahC6iKgN5MBuXjzfTIOUpq5LSU10vJIPpVKe0X89fIw==} + dependencies: + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + cjs-module-lexer: 1.2.3 + module-details-from-path: 1.0.3 + dev: false + /import-in-the-middle@1.7.1: resolution: {integrity: sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg==} dependencies: @@ -21605,7 +22614,6 @@ packages: resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} dependencies: bignumber.js: 9.1.2 - dev: true /json-buffer@3.0.0: resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} @@ -22314,6 +23322,10 @@ packages: /lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + dev: false + /lodash.clonedeep@4.5.0: resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} dev: false @@ -22442,8 +23454,8 @@ packages: wrap-ansi: 8.1.0 dev: true - /logform@2.6.0: - resolution: {integrity: sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==} + /logform@2.6.1: + resolution: {integrity: sha512-CdaO738xRapbKIMVn2m4F6KTj4j7ooJ8POVnebSgKo3KBz5axNXRAL7ZdRjIV6NOr2Uf4vjtRkxrFETOioCqSA==} engines: {node: '>= 12.0.0'} dependencies: '@colors/colors': 1.6.0 @@ -25340,14 +26352,6 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} - /prom-client@15.1.3: - resolution: {integrity: sha512-6ZiOBfCywsD4k1BN9IX0uZhF+tJkV8q8llP64G5Hajs4JOeVLPCwpPVcpXy3BwYiUGgyJzsJJQeOIv7+hDSq8g==} - engines: {node: ^16 || ^18 || >=20} - dependencies: - '@opentelemetry/api': 1.7.0 - tdigest: 0.1.2 - dev: false - /promise-coalesce@1.1.1: resolution: {integrity: sha512-k7+VaIwZc5dRfSF6RELqRY1+LCmcCkrnuNV9HzIpA6iwRHKke+j9yb0LBTTHQ2RRgf6AlMl9TntuTzcgV/BZwg==} engines: {node: '>=18'} @@ -25390,6 +26394,25 @@ packages: /proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + /protobufjs@7.3.2: + resolution: {integrity: sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==} + engines: {node: '>=12.0.0'} + requiresBuild: true + dependencies: + '@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': 20.14.2 + long: 5.2.3 + dev: false + /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -29043,12 +30066,6 @@ packages: mkdirp: 1.0.4 yallist: 4.0.0 - /tdigest@0.1.2: - resolution: {integrity: sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==} - dependencies: - bintrees: 1.0.2 - dev: false - /tencentcloud-sdk-nodejs@4.0.759: resolution: {integrity: sha512-8xbPmz5LJc3S5+mAjGquiYQmQQlMi5baVHAy4IWHmwHJisL63jCprNvs5svKgSQEwIs3sv2gBrM5s3G3HWN7rQ==} engines: {node: '>=10'} @@ -29385,7 +30402,7 @@ packages: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 20.14.2 - acorn: 8.11.3 + acorn: 8.12.1 acorn-walk: 8.3.2 arg: 4.1.3 create-require: 1.1.1 @@ -30259,6 +31276,11 @@ packages: resolution: {integrity: sha512-m11RYDtowtAIihBXMoGajOEKpAXrKbpKlpmxqyztMYQNGSY5nZAZ/oYch/w2HNS1RMA4WLGcZvuD8/wFMuCEzA==} dev: false + /uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + dev: false + /uuid@3.4.0: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. @@ -30912,7 +31934,7 @@ packages: resolution: {integrity: sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==} engines: {node: '>= 12.0.0'} dependencies: - logform: 2.6.0 + logform: 2.6.1 readable-stream: 3.6.2 triple-beam: 1.4.1 dev: false @@ -30925,7 +31947,7 @@ packages: '@dabh/diagnostics': 2.0.3 async: 3.2.5 is-stream: 2.0.1 - logform: 2.6.0 + logform: 2.6.1 one-time: 1.0.0 readable-stream: 3.6.2 safe-stable-stringify: 2.4.3