mirror of https://github.com/boxyhq/jackson.git
Use @boxyhq/metrics wrapper package for telemetry (#1065)
* Init sdk folder for otel * Update LICENSE * Add `directory` for `git` in package.json * Initialize metrics * Acquire meter * Operation for counter instrument * operation for gauge * - Move `otel` out of `sdk` folder into root folder" - Rename npm to `@boxyhq/metrics` * Add function instrumentation * Rename `otel` to `metrics` * Rename folder and add npm dependencies * Refactor * Add `instrumented` decorator * Exclude metrics from root tsconfig * Remove otel from names * Remove `metrics` folder * Swap creation of instruments with constants * Remove `metrics` from tsconfig * Use `@boxyhq/metrics` * Use `@boxyhq/metrics` from npm registry * Use `initializeMetrics` from `@boxyhq/metrics` * Cleanup * Wrap telemetry calls * Refactor * Refactor * Fix call * Update metrics to latest release
This commit is contained in:
parent
e1c5f4e3eb
commit
8c66b46ce7
|
@ -1,42 +1,4 @@
|
|||
import { metrics } from '@opentelemetry/api';
|
||||
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';
|
||||
import { OTLPMetricExporter as OTLPMetricExporterGRPC } from '@opentelemetry/exporter-metrics-otlp-grpc';
|
||||
import { MeterProvider, PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';
|
||||
import { Resource } from '@opentelemetry/resources';
|
||||
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
|
||||
import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';
|
||||
|
||||
import packageInfo from '../package.json';
|
||||
import { initializeMetrics } from '@boxyhq/metrics';
|
||||
|
||||
if (process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_ENDPOINT) {
|
||||
const meterProvider = new MeterProvider({
|
||||
resource: new Resource({
|
||||
[SemanticResourceAttributes.SERVICE_NAME]: `${packageInfo.name}`,
|
||||
[SemanticResourceAttributes.SERVICE_VERSION]: `${packageInfo.version}`,
|
||||
}),
|
||||
});
|
||||
|
||||
let metricExporter;
|
||||
if (
|
||||
process.env.OTEL_EXPORTER_OTLP_PROTOCOL === 'grpc' ||
|
||||
process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL === 'grpc'
|
||||
) {
|
||||
metricExporter = new OTLPMetricExporterGRPC();
|
||||
} else {
|
||||
metricExporter = new OTLPMetricExporter();
|
||||
}
|
||||
|
||||
meterProvider.addMetricReader(
|
||||
new PeriodicExportingMetricReader({
|
||||
exporter: metricExporter,
|
||||
exportIntervalMillis: 60000,
|
||||
})
|
||||
);
|
||||
|
||||
metrics.setGlobalMeterProvider(meterProvider);
|
||||
}
|
||||
|
||||
if (process.env.OTEL_EXPORTER_DEBUG) {
|
||||
diag.disable();
|
||||
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG);
|
||||
}
|
||||
initializeMetrics({ name: packageInfo.name, version: packageInfo.version });
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
"@aws-sdk/credential-providers": "3.300.0",
|
||||
"@aws-sdk/util-dynamodb": "3.299.0",
|
||||
"@boxyhq/error-code-mnemonic": "0.1.1",
|
||||
"@boxyhq/metrics": "0.1.0",
|
||||
"@boxyhq/saml20": "1.1.4",
|
||||
"@opentelemetry/api": "1.4.1",
|
||||
"axios": "1.3.4",
|
||||
"jose": "4.13.1",
|
||||
"lodash": "4.17.21",
|
||||
|
@ -2553,6 +2553,19 @@
|
|||
"resolved": "https://registry.npmjs.org/@boxyhq/error-code-mnemonic/-/error-code-mnemonic-0.1.1.tgz",
|
||||
"integrity": "sha512-NmO111OG8GQDE8W/+uSREb67YSqnY2N/tHykGeFoIZc9Leher+lW+jN4U1OXzlc66hwB8yO7WRu2cbYsAKsi9g=="
|
||||
},
|
||||
"node_modules/@boxyhq/metrics": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@boxyhq/metrics/-/metrics-0.1.0.tgz",
|
||||
"integrity": "sha512-ndb9fFe9KQsIrSCIyJj+2ryJVH2YVQt4OltHAT+xqmeLRmkM1f7ngezxCKK9Dn37mMPz8URnT1CHS3sCKQPmPw==",
|
||||
"dependencies": {
|
||||
"@opentelemetry/api": "1.4.1",
|
||||
"@opentelemetry/exporter-metrics-otlp-grpc": "0.37.0",
|
||||
"@opentelemetry/exporter-metrics-otlp-http": "0.37.0",
|
||||
"@opentelemetry/resources": "1.11.0",
|
||||
"@opentelemetry/sdk-metrics": "1.11.0",
|
||||
"@opentelemetry/semantic-conventions": "1.11.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@boxyhq/saml20": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@boxyhq/saml20/-/saml20-1.1.4.tgz",
|
||||
|
@ -2599,6 +2612,74 @@
|
|||
"npm": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@grpc/grpc-js": {
|
||||
"version": "1.8.13",
|
||||
"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.13.tgz",
|
||||
"integrity": "sha512-iY3jsdfbc0ARoCLFvbvUB8optgyb0r1XLPb142u+QtgBcKJYkCIFt3Fd/881KqjLYWjsBJF57N3b8Eop9NDfUA==",
|
||||
"dependencies": {
|
||||
"@grpc/proto-loader": "^0.7.0",
|
||||
"@types/node": ">=12.12.47"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^8.13.0 || >=10.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@grpc/proto-loader": {
|
||||
"version": "0.7.6",
|
||||
"resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.6.tgz",
|
||||
"integrity": "sha512-QyAXR8Hyh7uMDmveWxDSUcJr9NAWaZ2I6IXgAYvQmfflwouTM+rArE2eEaCtLlRqO81j7pRLCt81IefUei6Zbw==",
|
||||
"dependencies": {
|
||||
"@types/long": "^4.0.1",
|
||||
"lodash.camelcase": "^4.3.0",
|
||||
"long": "^4.0.0",
|
||||
"protobufjs": "^7.0.0",
|
||||
"yargs": "^16.2.0"
|
||||
},
|
||||
"bin": {
|
||||
"proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/@grpc/proto-loader/node_modules/long": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
|
||||
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
|
||||
},
|
||||
"node_modules/@grpc/proto-loader/node_modules/y18n": {
|
||||
"version": "5.0.8",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
||||
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@grpc/proto-loader/node_modules/yargs": {
|
||||
"version": "16.2.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
|
||||
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
|
||||
"dependencies": {
|
||||
"cliui": "^7.0.2",
|
||||
"escalade": "^3.1.1",
|
||||
"get-caller-file": "^2.0.5",
|
||||
"require-directory": "^2.1.1",
|
||||
"string-width": "^4.2.0",
|
||||
"y18n": "^5.0.5",
|
||||
"yargs-parser": "^20.2.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@grpc/proto-loader/node_modules/yargs-parser": {
|
||||
"version": "20.2.9",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
|
||||
"integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/@istanbuljs/load-nyc-config": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
|
||||
|
@ -2683,6 +2764,215 @@
|
|||
"node": ">=8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@opentelemetry/core": {
|
||||
"version": "1.11.0",
|
||||
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.11.0.tgz",
|
||||
"integrity": "sha512-aP1wHSb+YfU0pM63UAkizYPuS4lZxzavHHw5KJfFNN2oWQ79HSm6JR3CzwFKHwKhSzHN8RE9fgP1IdVJ8zmo1w==",
|
||||
"dependencies": {
|
||||
"@opentelemetry/semantic-conventions": "1.11.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@opentelemetry/api": ">=1.0.0 <1.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@opentelemetry/exporter-metrics-otlp-grpc": {
|
||||
"version": "0.37.0",
|
||||
"resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-grpc/-/exporter-metrics-otlp-grpc-0.37.0.tgz",
|
||||
"integrity": "sha512-WOPnnzj8VHR30K517awJRbBg+FV/woXgKD+JOi/B5umf40p/pW9OqBsXw2uIypgT78Q0GIXie3afExSunP9eCQ==",
|
||||
"dependencies": {
|
||||
"@grpc/grpc-js": "^1.7.1",
|
||||
"@opentelemetry/core": "1.11.0",
|
||||
"@opentelemetry/exporter-metrics-otlp-http": "0.37.0",
|
||||
"@opentelemetry/otlp-grpc-exporter-base": "0.37.0",
|
||||
"@opentelemetry/otlp-transformer": "0.37.0",
|
||||
"@opentelemetry/resources": "1.11.0",
|
||||
"@opentelemetry/sdk-metrics": "1.11.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@opentelemetry/api": "^1.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@opentelemetry/exporter-metrics-otlp-http": {
|
||||
"version": "0.37.0",
|
||||
"resolved": "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.37.0.tgz",
|
||||
"integrity": "sha512-xiZTndcdubYJ0z6Kku03UNdaJlVTTGtSXZDr02c+L/RHQU82221tjT2dtPbzZ52uXPu37TVcgaKpzCwNm/TfaQ==",
|
||||
"dependencies": {
|
||||
"@opentelemetry/core": "1.11.0",
|
||||
"@opentelemetry/otlp-exporter-base": "0.37.0",
|
||||
"@opentelemetry/otlp-transformer": "0.37.0",
|
||||
"@opentelemetry/resources": "1.11.0",
|
||||
"@opentelemetry/sdk-metrics": "1.11.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@opentelemetry/api": "^1.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@opentelemetry/otlp-exporter-base": {
|
||||
"version": "0.37.0",
|
||||
"resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.37.0.tgz",
|
||||
"integrity": "sha512-dLbv7nr7d14xrHzd+S1eW+RpXh7IC0onktc23pwzETh6J7Ytzf0+QwLV5iRatoNtwPU2hX1VGOipwEnC/BjXxg==",
|
||||
"dependencies": {
|
||||
"@opentelemetry/core": "1.11.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@opentelemetry/api": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@opentelemetry/otlp-grpc-exporter-base": {
|
||||
"version": "0.37.0",
|
||||
"resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.37.0.tgz",
|
||||
"integrity": "sha512-S5mhcl+Cdf9skIuEO3amfn7WtzXKZ8PVzyptwD1II2x8kvtD5z1lejXeMxTcsrb1lCc9raYVolohjnKF1uwccQ==",
|
||||
"dependencies": {
|
||||
"@grpc/grpc-js": "^1.7.1",
|
||||
"@grpc/proto-loader": "^0.7.3",
|
||||
"@opentelemetry/core": "1.11.0",
|
||||
"@opentelemetry/otlp-exporter-base": "0.37.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@opentelemetry/api": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@opentelemetry/otlp-transformer": {
|
||||
"version": "0.37.0",
|
||||
"resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.37.0.tgz",
|
||||
"integrity": "sha512-cIzV9x2DhJ5gN0mld8OqN+XM95sDiuAJJvXsRjVuz9vu8TSNbbao/QCKNfJLOXqe8l3Ge05nKzQ6Q2gDDEN36w==",
|
||||
"dependencies": {
|
||||
"@opentelemetry/core": "1.11.0",
|
||||
"@opentelemetry/resources": "1.11.0",
|
||||
"@opentelemetry/sdk-metrics": "1.11.0",
|
||||
"@opentelemetry/sdk-trace-base": "1.11.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@opentelemetry/api": ">=1.3.0 <1.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@opentelemetry/resources": {
|
||||
"version": "1.11.0",
|
||||
"resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.11.0.tgz",
|
||||
"integrity": "sha512-y0z2YJTqk0ag+hGT4EXbxH/qPhDe8PfwltYb4tXIEsozgEFfut/bqW7H7pDvylmCjBRMG4NjtLp57V1Ev++brA==",
|
||||
"dependencies": {
|
||||
"@opentelemetry/core": "1.11.0",
|
||||
"@opentelemetry/semantic-conventions": "1.11.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@opentelemetry/api": ">=1.0.0 <1.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@opentelemetry/sdk-metrics": {
|
||||
"version": "1.11.0",
|
||||
"resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.11.0.tgz",
|
||||
"integrity": "sha512-knuq3pwU0+46FEMdw9Ses+alXL9cbcLUUTdYBBBsaKkqKwoVMHfhBufW7u6YCu4i+47Wg6ZZTN/eGc4LbTbK5Q==",
|
||||
"dependencies": {
|
||||
"@opentelemetry/core": "1.11.0",
|
||||
"@opentelemetry/resources": "1.11.0",
|
||||
"lodash.merge": "4.6.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@opentelemetry/api": ">=1.3.0 <1.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@opentelemetry/sdk-trace-base": {
|
||||
"version": "1.11.0",
|
||||
"resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.11.0.tgz",
|
||||
"integrity": "sha512-DV8e5/Qo42V8FMBlQ0Y0Liv6Hl/Pp5bAZ73s7r1euX8w4bpRes1B7ACiA4yujADbWMJxBgSo4fGbi4yjmTMG2A==",
|
||||
"dependencies": {
|
||||
"@opentelemetry/core": "1.11.0",
|
||||
"@opentelemetry/resources": "1.11.0",
|
||||
"@opentelemetry/semantic-conventions": "1.11.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@opentelemetry/api": ">=1.0.0 <1.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@opentelemetry/semantic-conventions": {
|
||||
"version": "1.11.0",
|
||||
"resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.11.0.tgz",
|
||||
"integrity": "sha512-fG4D0AktoHyHwGhFGv+PzKrZjxbKJfckJauTJdq2A+ej5cTazmNYjJVAODXXkYyrsI10muMl+B1iO2q1R6Lp+w==",
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
}
|
||||
},
|
||||
"node_modules/@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=="
|
||||
},
|
||||
"node_modules/@protobufjs/base64": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
|
||||
"integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
|
||||
},
|
||||
"node_modules/@protobufjs/codegen": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
|
||||
"integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
|
||||
},
|
||||
"node_modules/@protobufjs/eventemitter": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
|
||||
"integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q=="
|
||||
},
|
||||
"node_modules/@protobufjs/fetch": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
|
||||
"integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
|
||||
"dependencies": {
|
||||
"@protobufjs/aspromise": "^1.1.1",
|
||||
"@protobufjs/inquire": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@protobufjs/float": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
|
||||
"integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ=="
|
||||
},
|
||||
"node_modules/@protobufjs/inquire": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
|
||||
"integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q=="
|
||||
},
|
||||
"node_modules/@protobufjs/path": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
|
||||
"integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA=="
|
||||
},
|
||||
"node_modules/@protobufjs/pool": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
|
||||
"integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw=="
|
||||
},
|
||||
"node_modules/@protobufjs/utf8": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
|
||||
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
|
||||
},
|
||||
"node_modules/@redis/bloom": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@redis/bloom/-/bloom-1.2.0.tgz",
|
||||
|
@ -2812,6 +3102,11 @@
|
|||
"integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/long": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
|
||||
"integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "18.15.11",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz",
|
||||
|
@ -4933,6 +5228,11 @@
|
|||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||
},
|
||||
"node_modules/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=="
|
||||
},
|
||||
"node_modules/lodash.flattendeep": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
|
||||
|
@ -4945,6 +5245,11 @@
|
|||
"integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/lodash.merge": {
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
||||
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
|
||||
},
|
||||
"node_modules/long": {
|
||||
"version": "5.2.1",
|
||||
"license": "Apache-2.0"
|
||||
|
@ -5707,6 +6012,29 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/protobufjs": {
|
||||
"version": "7.2.3",
|
||||
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz",
|
||||
"integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==",
|
||||
"hasInstallScript": 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": ">=13.7.0",
|
||||
"long": "^5.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/proxy-from-env": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
||||
|
|
|
@ -41,11 +41,11 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-dynamodb": "3.303.0",
|
||||
"@aws-sdk/util-dynamodb": "3.299.0",
|
||||
"@aws-sdk/credential-providers": "3.300.0",
|
||||
"@boxyhq/saml20": "1.1.4",
|
||||
"@aws-sdk/util-dynamodb": "3.299.0",
|
||||
"@boxyhq/error-code-mnemonic": "0.1.1",
|
||||
"@opentelemetry/api": "1.4.1",
|
||||
"@boxyhq/metrics": "0.1.0",
|
||||
"@boxyhq/saml20": "1.1.4",
|
||||
"axios": "1.3.4",
|
||||
"jose": "4.13.1",
|
||||
"lodash": "4.17.21",
|
||||
|
@ -79,4 +79,4 @@
|
|||
"engines": {
|
||||
"node": ">=16"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ import type { IDirectorySyncController, JacksonOption } from './typings';
|
|||
import DB from './db/db';
|
||||
import defaultDb from './db/defaultDb';
|
||||
import loadConnection from './loadConnection';
|
||||
import { init as metricsInit } from './opentelemetry/metrics';
|
||||
import { AdminController } from './controller/admin';
|
||||
import { ConnectionAPIController } from './controller/api';
|
||||
import { OAuthController } from './controller/oauth';
|
||||
|
@ -73,8 +72,6 @@ export const controllers = async (
|
|||
}> => {
|
||||
opts = defaultOpts(opts);
|
||||
|
||||
metricsInit();
|
||||
|
||||
const db = await DB.new(opts.db);
|
||||
|
||||
const connectionStore = db.store('saml:config');
|
||||
|
|
|
@ -1,43 +1,52 @@
|
|||
import { metrics } from '@opentelemetry/api';
|
||||
import { incrementCounter } from '@boxyhq/metrics';
|
||||
|
||||
let meter = metrics.getMeterProvider().getMeter('jackson');
|
||||
let counters;
|
||||
const METER = 'jackson';
|
||||
|
||||
const increment = (action: string) => {
|
||||
const counter = counters[action];
|
||||
if (counter) {
|
||||
counter.add(1);
|
||||
const counters = {
|
||||
createConnection: () =>
|
||||
incrementCounter({
|
||||
meter: METER,
|
||||
name: 'jackson.connection.create',
|
||||
counterOptions: { description: 'Number of IdP connection create requests' },
|
||||
}),
|
||||
getConnections: () =>
|
||||
incrementCounter({
|
||||
meter: METER,
|
||||
name: 'jackson.connection.get',
|
||||
counterOptions: { description: 'Number of IdP connections get requests' },
|
||||
}),
|
||||
deleteConnections: () =>
|
||||
incrementCounter({
|
||||
meter: METER,
|
||||
name: 'jackson.connection.delete',
|
||||
counterOptions: { description: 'Number of IdP connections delete requests' },
|
||||
}),
|
||||
oauthAuthorize: () =>
|
||||
incrementCounter({
|
||||
meter: METER,
|
||||
name: 'jackson.oauth.authorize',
|
||||
counterOptions: { description: 'Number of oauth authorize requests' },
|
||||
}),
|
||||
oauthToken: () =>
|
||||
incrementCounter({
|
||||
meter: METER,
|
||||
name: 'jackson.oauth.token',
|
||||
counterOptions: { description: 'Number of oauth token requests' },
|
||||
}),
|
||||
|
||||
oauthUserInfo: () =>
|
||||
incrementCounter({
|
||||
meter: METER,
|
||||
name: 'jackson.oauth.userinfo',
|
||||
counterOptions: { description: 'Number of oauth user info requests' },
|
||||
}),
|
||||
};
|
||||
|
||||
const increment = (action: keyof typeof counters) => {
|
||||
const counterIncrement = counters[action];
|
||||
if (typeof counterIncrement === 'function') {
|
||||
counterIncrement();
|
||||
}
|
||||
};
|
||||
|
||||
const init = () => {
|
||||
meter = metrics.getMeterProvider().getMeter('jackson');
|
||||
|
||||
counters = {
|
||||
createConnection: meter.createCounter('jackson.connection.create', {
|
||||
description: 'Number of IdP connection create requests',
|
||||
}),
|
||||
|
||||
getConnections: meter.createCounter('jackson.connection.get', {
|
||||
description: 'Number of IdP connections get requests',
|
||||
}),
|
||||
|
||||
deleteConnections: meter.createCounter('jackson.connection.delete', {
|
||||
description: 'Number of IdP connections delete requests',
|
||||
}),
|
||||
|
||||
oauthAuthorize: meter.createCounter('jackson.oauth.authorize', {
|
||||
description: 'Number of oauth authorize requests',
|
||||
}),
|
||||
|
||||
oauthToken: meter.createCounter('jackson.oauth.token', {
|
||||
description: 'Number of oauth token requests',
|
||||
}),
|
||||
|
||||
oauthUserInfo: meter.createCounter('jackson.oauth.userinfo', {
|
||||
description: 'Number of oauth user info requests',
|
||||
}),
|
||||
};
|
||||
};
|
||||
|
||||
export { increment, init };
|
||||
export { increment };
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
"hasInstallScript": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@boxyhq/metrics": "0.1.0",
|
||||
"@boxyhq/react-ui": "file:sdk/ui/react",
|
||||
"@boxyhq/saml-jackson": "file:npm",
|
||||
"@heroicons/react": "2.0.16",
|
||||
|
@ -2813,6 +2814,19 @@
|
|||
"resolved": "https://registry.npmjs.org/@boxyhq/error-code-mnemonic/-/error-code-mnemonic-0.1.1.tgz",
|
||||
"integrity": "sha512-NmO111OG8GQDE8W/+uSREb67YSqnY2N/tHykGeFoIZc9Leher+lW+jN4U1OXzlc66hwB8yO7WRu2cbYsAKsi9g=="
|
||||
},
|
||||
"node_modules/@boxyhq/metrics": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@boxyhq/metrics/-/metrics-0.1.0.tgz",
|
||||
"integrity": "sha512-ndb9fFe9KQsIrSCIyJj+2ryJVH2YVQt4OltHAT+xqmeLRmkM1f7ngezxCKK9Dn37mMPz8URnT1CHS3sCKQPmPw==",
|
||||
"dependencies": {
|
||||
"@opentelemetry/api": "1.4.1",
|
||||
"@opentelemetry/exporter-metrics-otlp-grpc": "0.37.0",
|
||||
"@opentelemetry/exporter-metrics-otlp-http": "0.37.0",
|
||||
"@opentelemetry/resources": "1.11.0",
|
||||
"@opentelemetry/sdk-metrics": "1.11.0",
|
||||
"@opentelemetry/semantic-conventions": "1.11.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@boxyhq/react-ui": {
|
||||
"resolved": "sdk/ui/react",
|
||||
"link": true
|
||||
|
@ -17858,8 +17872,8 @@
|
|||
"@aws-sdk/credential-providers": "3.300.0",
|
||||
"@aws-sdk/util-dynamodb": "3.299.0",
|
||||
"@boxyhq/error-code-mnemonic": "0.1.1",
|
||||
"@boxyhq/metrics": "0.1.0",
|
||||
"@boxyhq/saml20": "1.1.4",
|
||||
"@opentelemetry/api": "1.4.1",
|
||||
"axios": "1.3.4",
|
||||
"jose": "4.13.1",
|
||||
"lodash": "4.17.21",
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
"prebuild": "mkdirp public/terminus && (cp node_modules/blockly/media/sprites.png public/terminus || copy .\\node_modules\\blockly\\media\\sprites.png .\\public\\terminus)"
|
||||
},
|
||||
"dependencies": {
|
||||
"@boxyhq/metrics": "0.1.0",
|
||||
"@boxyhq/react-ui": "file:sdk/ui/react",
|
||||
"@boxyhq/saml-jackson": "file:npm",
|
||||
"@heroicons/react": "2.0.16",
|
||||
|
@ -105,4 +106,4 @@
|
|||
"engines": {
|
||||
"node": ">=18.14.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue