diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml new file mode 100644 index 000000000..665e27aff --- /dev/null +++ b/.github/workflows/docker-images.yml @@ -0,0 +1,29 @@ +name: Docker Images +on: + pull_request: + push: + branches: + - main + schedule: # Rebuild images nightly + - cron: '0 0 * * *' + +jobs: + otel: + runs-on: ubuntu-latest + steps: + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build Base + uses: docker/build-push-action@v6 + with: + push: ${{ github.ref == 'refs/heads/main' && true || false}} + platforms: linux/amd64,linux/arm64 + tags: pocket/opentelemetry-collector-contrib + context: "{{defaultContext}}:images/otel" \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 9a62dc44a..e0f6c533b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -96,3 +96,25 @@ services: retries: 30 ports: - '9090:9090' + + otlpcollector: + image: grafana/otel-lgtm + ports: + # there are lots more ports available, but these are the only one's + # currently being used + - 4317:4317 # OTLP gRPC receiver + - 4318:4318 # OTLP http receiver + - 3000:3000 # Grafana + + # Uncomment this if you want to run the collector locally and send to GCP instead of the one used for local development + # Make sure to have a service json in GOOGLE_APPLICATION_CREDENTIALS_JSON in the .env file + # otlpcollector: + # image: pocket/opentelemetry-collector-contrib + # env_file: + # - .env + # ports: + # # there are lots more ports available, but these are the only one's + # # currently being used + # - 4317:4317 # OTLP gRPC receiver + # - 4318:4318 # OTLP http receiver + # - 3000:3000 # Grafana \ No newline at end of file diff --git a/images/otel/Dockerfile b/images/otel/Dockerfile new file mode 100644 index 000000000..8723ac064 --- /dev/null +++ b/images/otel/Dockerfile @@ -0,0 +1,17 @@ +# Use an alpine image as our base image, this allows us to define our own entry point script and have access to sh or bash, which the otel image does not have +FROM alpine:3 + +# Copy the otelcol-contrib binary from the official image +COPY --from=otel/opentelemetry-collector-contrib:0.111.0 /otelcol-contrib /otelcol-contrib + +COPY otel-collector-config.yaml /etc/otelcol-contrib/config.yaml +COPY entrypoint.sh /entrypoint.sh +RUN chmod a+x /entrypoint.sh + +#Set the ENV variable for the google credentials that will be used by the google cloud exporter and mounted via an environment variable that will be saved to this file via our entrypoint script +ENV GOOGLE_APPLICATION_CREDENTIALS=/etc/otelcol-contrib/key.json +WORKDIR / + +ENTRYPOINT [ "./entrypoint.sh" ] + +CMD [ "/otelcol-contrib", "--config", "/etc/otelcol-contrib/config.yaml" ] \ No newline at end of file diff --git a/images/otel/entrypoint.sh b/images/otel/entrypoint.sh new file mode 100644 index 000000000..6c6fa0718 --- /dev/null +++ b/images/otel/entrypoint.sh @@ -0,0 +1,4 @@ +#!/bin/sh +set -e +echo "$GOOGLE_APPLICATION_CREDENTIALS_JSON" > /etc/otelcol-contrib/key.json +exec "$@" \ No newline at end of file diff --git a/images/otel/otel-collector-config.yaml b/images/otel/otel-collector-config.yaml new file mode 100644 index 000000000..2cdddcfd2 --- /dev/null +++ b/images/otel/otel-collector-config.yaml @@ -0,0 +1,63 @@ +# Note this is only built nightly and will take effect on the next deploy after being built. +receivers: + otlp: + protocols: + grpc: + endpoint: "0.0.0.0:4317" # gRPC port for receiving traces, metrics, and logs over gRPC + http: + endpoint: "0.0.0.0:4318" # http port for receiving traces, metrics, and logs over http +exporters: + googlecloud: + log: + default_log_name: opentelemetry.io/collector-exported-log + # debug: + # verbosity: detailed +processors: + memory_limiter: + check_interval: 1s + limit_percentage: 30 + spike_limit_percentage: 10 + batch: + # batch metrics before sending to reduce API usage + send_batch_max_size: 200 + send_batch_size: 200 + timeout: 5s + resourcedetection/ecs: + detectors: [env, ecs] + timeout: 2s + override: false + resource/cleanup_for_google: + attributes: + - key: service.namespace + value: pocket + action: insert + # We must set the region to us-east1, as the google exporter uses this to know where to send data to. + - key: cloud.region + value: us-east1 + action: upsert + - key: cloud.availability_zone + value: us-east1-b + action: upsert + # set this to the ecs task id + - key: host.id + from_attribute: aws.ecs.task.id + action: upsert + # https://opentelemetry.io/docs/specs/semconv/resource/deployment-environment/ + - key: deployment.environment.name + value: ${env:DEPLOYMENT_ENVIRONMENT_NAME} + action: upsert + +service: + pipelines: + traces: + receivers: [otlp] + processors: [resourcedetection/ecs, resource/cleanup_for_google, memory_limiter, batch] + exporters: [googlecloud] + # metrics: + # receivers: [otlp] + # processors: [resourcedetection/ecs, resource/cleanup_for_google, memory_limiter, batch] + # exporters: [googlecloud] + logs: + receivers: [otlp] + processors: [resourcedetection/ecs, resource/cleanup_for_google, memory_limiter, batch] + exporters: [googlecloud] \ No newline at end of file diff --git a/infrastructure/client-api/src/main.ts b/infrastructure/client-api/src/main.ts index a09c928cd..0aab79814 100644 --- a/infrastructure/client-api/src/main.ts +++ b/infrastructure/client-api/src/main.ts @@ -266,6 +266,40 @@ class ClientAPI extends TerraformStack { startPeriod: 0, }, }, + { + name: 'otel-collector', + containerImage: 'pocket/opentelemetry-collector-contrib', + essential: true, + logMultilinePattern: '^\\S.+', + logGroup: this.createCustomLogGroup('otel-collector'), + portMappings: [ + { + hostPort: 4138, + containerPort: 4138, + }, + { + hostPort: 4137, + containerPort: 4137, + }, + { + hostPort: 55681, + containerPort: 55681, + }, + ], + envVars: [ + { + name: 'DEPLOYMENT_ENVIRONMENT_NAME', + value: config.tags.env_code, + }, + ], + secretEnvVars: [ + { + name: 'GOOGLE_APPLICATION_CREDENTIALS_JSON', + valueFrom: `arn:aws:secretsmanager:${region.name}:${caller.accountId}:secret:Shared/GCP_SA_TRACES:::`, + }, + ], + repositoryCredentialsParam: `arn:aws:secretsmanager:${region.name}:${caller.accountId}:secret:Shared/DockerHub`, + }, ], codeDeploy: { useCodeDeploy: true, @@ -309,19 +343,7 @@ class ClientAPI extends TerraformStack { effect: 'Allow', }, ], - taskRolePolicyStatements: [ - { - actions: [ - 'xray:PutTraceSegments', - 'xray:PutTelemetryRecords', - 'xray:GetSamplingRules', - 'xray:GetSamplingTargets', - 'xray:GetSamplingStatisticSummaries', - ], - resources: ['*'], - effect: 'Allow', - }, - ], + taskRolePolicyStatements: [], taskExecutionDefaultAttachmentArn: 'arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy', }, diff --git a/infrastructure/list-api/src/main.ts b/infrastructure/list-api/src/main.ts index 5fc6a3124..052cb348d 100644 --- a/infrastructure/list-api/src/main.ts +++ b/infrastructure/list-api/src/main.ts @@ -304,6 +304,40 @@ class ListAPI extends TerraformStack { logGroup: this.createCustomLogGroup('app'), logMultilinePattern: '^\\S.+', }, + { + name: 'otel-collector', + containerImage: 'pocket/opentelemetry-collector-contrib', + essential: true, + logMultilinePattern: '^\\S.+', + logGroup: this.createCustomLogGroup('otel-collector'), + portMappings: [ + { + hostPort: 4138, + containerPort: 4138, + }, + { + hostPort: 4137, + containerPort: 4137, + }, + { + hostPort: 55681, + containerPort: 55681, + }, + ], + envVars: [ + { + name: 'DEPLOYMENT_ENVIRONMENT_NAME', + value: config.tags.env_code, + }, + ], + secretEnvVars: [ + { + name: 'GOOGLE_APPLICATION_CREDENTIALS_JSON', + valueFrom: `arn:aws:secretsmanager:${region.name}:${caller.accountId}:secret:Shared/GCP_SA_TRACES:::`, + }, + ], + repositoryCredentialsParam: `arn:aws:secretsmanager:${region.name}:${caller.accountId}:secret:Shared/DockerHub`, + }, ], codeDeploy: { useCodeDeploy: true, @@ -349,11 +383,6 @@ class ListAPI extends TerraformStack { 'logs:CreateLogStream', 'logs:DescribeLogStreams', 'logs:DescribeLogGroups', - 'xray:PutTraceSegments', - 'xray:PutTelemetryRecords', - 'xray:GetSamplingRules', - 'xray:GetSamplingTargets', - 'xray:GetSamplingStatisticSummaries', ], resources: ['*'], effect: 'Allow', diff --git a/infrastructure/parser-graphql-wrapper/src/main.ts b/infrastructure/parser-graphql-wrapper/src/main.ts index de5aae635..247b798e5 100644 --- a/infrastructure/parser-graphql-wrapper/src/main.ts +++ b/infrastructure/parser-graphql-wrapper/src/main.ts @@ -278,6 +278,40 @@ class ParserGraphQLWrapper extends TerraformStack { }, ], }, + { + name: 'otel-collector', + containerImage: 'pocket/opentelemetry-collector-contrib', + essential: true, + logMultilinePattern: '^\\S.+', + logGroup: this.createCustomLogGroup('otel-collector'), + portMappings: [ + { + hostPort: 4138, + containerPort: 4138, + }, + { + hostPort: 4137, + containerPort: 4137, + }, + { + hostPort: 55681, + containerPort: 55681, + }, + ], + envVars: [ + { + name: 'DEPLOYMENT_ENVIRONMENT_NAME', + value: config.tags.env_code, + }, + ], + secretEnvVars: [ + { + name: 'GOOGLE_APPLICATION_CREDENTIALS_JSON', + valueFrom: `arn:aws:secretsmanager:${region.name}:${caller.accountId}:secret:Shared/GCP_SA_TRACES`, + }, + ], + repositoryCredentialsParam: `arn:aws:secretsmanager:${region.name}:${caller.accountId}:secret:Shared/DockerHub`, + }, ], codeDeploy: { useCodeDeploy: true, @@ -326,11 +360,6 @@ class ParserGraphQLWrapper extends TerraformStack { 'logs:CreateLogStream', 'logs:DescribeLogStreams', 'logs:DescribeLogGroups', - 'xray:PutTraceSegments', - 'xray:PutTelemetryRecords', - 'xray:GetSamplingRules', - 'xray:GetSamplingTargets', - 'xray:GetSamplingStatisticSummaries', ], resources: ['*'], effect: 'Allow', diff --git a/infrastructure/user-api/src/main.ts b/infrastructure/user-api/src/main.ts index 1201dbd7e..3cf4c6a2d 100644 --- a/infrastructure/user-api/src/main.ts +++ b/infrastructure/user-api/src/main.ts @@ -186,10 +186,52 @@ class UserAPI extends TerraformStack { name: 'SALT_2', valueFrom: `${intMaskSecretArn}:salt2::`, }, + { + name: 'UNLEASH_ENDPOINT', + valueFrom: `arn:aws:ssm:${region.name}:${caller.accountId}:parameter/Shared/${config.environment}/UNLEASH_ENDPOINT`, + }, + { + name: 'UNLEASH_KEY', + valueFrom: `arn:aws:secretsmanager:${region.name}:${caller.accountId}:secret:${config.name}/${config.environment}/UNLEASH_KEY`, + }, ], logGroup: this.createCustomLogGroup('app'), logMultilinePattern: '^\\S.+', }, + { + name: 'otel-collector', + containerImage: 'pocket/opentelemetry-collector-contrib', + essential: true, + logMultilinePattern: '^\\S.+', + logGroup: this.createCustomLogGroup('otel-collector'), + portMappings: [ + { + hostPort: 4138, + containerPort: 4138, + }, + { + hostPort: 4137, + containerPort: 4137, + }, + { + hostPort: 55681, + containerPort: 55681, + }, + ], + envVars: [ + { + name: 'DEPLOYMENT_ENVIRONMENT_NAME', + value: config.tags.env_code, + }, + ], + secretEnvVars: [ + { + name: 'GOOGLE_APPLICATION_CREDENTIALS_JSON', + valueFrom: `arn:aws:secretsmanager:${region.name}:${caller.accountId}:secret:Shared/GCP_SA_TRACES:::`, + }, + ], + repositoryCredentialsParam: `arn:aws:secretsmanager:${region.name}:${caller.accountId}:secret:Shared/DockerHub`, + }, ], codeDeploy: { useCodeDeploy: true, @@ -232,6 +274,8 @@ class UserAPI extends TerraformStack { resources: [ `arn:aws:ssm:${region.name}:${caller.accountId}:parameter/${config.name}/${config.environment}`, `arn:aws:ssm:${region.name}:${caller.accountId}:parameter/${config.name}/${config.environment}/*`, + `arn:aws:ssm:${region.name}:${caller.accountId}:parameter/Shared/${config.environment}/*`, + `arn:aws:ssm:${region.name}:${caller.accountId}:parameter/Shared/${config.environment}`, ], effect: 'Allow', }, @@ -244,11 +288,6 @@ class UserAPI extends TerraformStack { 'logs:CreateLogStream', 'logs:DescribeLogStreams', 'logs:DescribeLogGroups', - 'xray:PutTraceSegments', - 'xray:PutTelemetryRecords', - 'xray:GetSamplingRules', - 'xray:GetSamplingTargets', - 'xray:GetSamplingStatisticSummaries', ], resources: ['*'], effect: 'Allow', diff --git a/infrastructure/user-list-search/ecs.tf b/infrastructure/user-list-search/ecs.tf index 9a408127e..9780df9ba 100644 --- a/infrastructure/user-list-search/ecs.tf +++ b/infrastructure/user-list-search/ecs.tf @@ -111,11 +111,8 @@ module "otel" { version = "0.61.1" essential = true - container_name = "aws-otel-collector" - container_image = "amazon/aws-otel-collector" - command = [ - "--config=/etc/ecs/ecs-xray.yaml", - ] + container_name = "otel-collector" + container_image = "pocket/opentelemetry-collector-contrib" repository_credentials = { credentialsParameter : local.container_credential @@ -131,6 +128,16 @@ module "otel" { } } + environment = [{ + name = "DEPLOYMENT_ENVIRONMENT_NAME", + value = local.tags.env_code, + }] + + secrets = [{ + name = "GOOGLE_APPLICATION_CREDENTIALS_JSON" + valueFrom = "${local.secret_path_shared}GCP_SA_TRACES:::" + }] + port_mappings = [ { containerPort = 4138 @@ -139,6 +146,10 @@ module "otel" { { containerPort = 4137 hostPort = 4137 + }, + { + containerPort = 55681 + hostPort = 55681 } ] container_cpu = null diff --git a/infrastructure/user-list-search/locals.tf b/infrastructure/user-list-search/locals.tf index 2260ab680..0c30dc3bd 100644 --- a/infrastructure/user-list-search/locals.tf +++ b/infrastructure/user-list-search/locals.tf @@ -29,6 +29,7 @@ locals { } private_subnet_ids = split(",", data.aws_ssm_parameter.private_subnets.value) secret_path = "arn:aws:secretsmanager:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:secret:${local.name}/${local.env}/" + secret_path_shared = "arn:aws:secretsmanager:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:secret:Shared/" ssm_path = "arn:aws:ssm:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:parameter/${local.name}/${local.env}/" ssm_path_shared = "arn:aws:ssm:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:parameter/Shared/${local.env}/" diff --git a/infrastructure/v3-proxy-api/src/main.ts b/infrastructure/v3-proxy-api/src/main.ts index ec570ec02..24f8f7527 100644 --- a/infrastructure/v3-proxy-api/src/main.ts +++ b/infrastructure/v3-proxy-api/src/main.ts @@ -129,12 +129,11 @@ class Stack extends TerraformStack { ], }, { - name: 'aws-otel-collector', - command: ['--config=/etc/ecs/ecs-xray.yaml'], - containerImage: 'amazon/aws-otel-collector', + name: 'otel-collector', + containerImage: 'pocket/opentelemetry-collector-contrib', essential: true, logMultilinePattern: '^\\S.+', - logGroup: this.createCustomLogGroup('aws-otel-collector'), + logGroup: this.createCustomLogGroup('otel-collector'), portMappings: [ { hostPort: 4138, @@ -144,6 +143,22 @@ class Stack extends TerraformStack { hostPort: 4137, containerPort: 4137, }, + { + hostPort: 55681, + containerPort: 55681, + }, + ], + envVars: [ + { + name: 'DEPLOYMENT_ENVIRONMENT_NAME', + value: config.tags.env_code, + }, + ], + secretEnvVars: [ + { + name: 'GOOGLE_APPLICATION_CREDENTIALS_JSON', + valueFrom: `arn:aws:secretsmanager:${region.name}:${caller.accountId}:secret:Shared/GCP_SA_TRACES:::`, + }, ], repositoryCredentialsParam: `arn:aws:secretsmanager:${region.name}:${caller.accountId}:secret:Shared/DockerHub`, }, @@ -194,19 +209,7 @@ class Stack extends TerraformStack { effect: 'Allow', }, ], - taskRolePolicyStatements: [ - { - actions: [ - 'xray:PutTraceSegments', - 'xray:PutTelemetryRecords', - 'xray:GetSamplingRules', - 'xray:GetSamplingTargets', - 'xray:GetSamplingStatisticSummaries', - ], - resources: ['*'], - effect: 'Allow', - }, - ], + taskRolePolicyStatements: [], taskExecutionDefaultAttachmentArn: 'arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy', }, diff --git a/package.json b/package.json index 1bdb9b17b..a949b73bc 100644 --- a/package.json +++ b/package.json @@ -28,11 +28,11 @@ }, "devDependencies": { "@commitlint/cli": "19.4.1", - "@commitlint/config-conventional": "^19.4.1", + "@commitlint/config-conventional": "^19.5.0", "@pocket-tools/eslint-config": "workspace:*", "syncpack": "^13.0.0", "tsconfig": "workspace:*", - "turbo": "^2.1.1" + "turbo": "^2.1.3" }, "packageManager": "pnpm@9.9.0", "engines": { diff --git a/packages/feature-flags-client/package.json b/packages/feature-flags-client/package.json index 3797248fa..6f4d4f1f3 100644 --- a/packages/feature-flags-client/package.json +++ b/packages/feature-flags-client/package.json @@ -24,7 +24,6 @@ "test:watch": "pnpm run test -- --watch" }, "dependencies": { - "@pocket-tools/ts-logger": "workspace:*", "tslib": "2.7.0", "unleash-client": "6.1.1" }, @@ -39,4 +38,4 @@ "tsup": "8.2.4", "typescript": "5.5.4" } -} +} \ No newline at end of file diff --git a/packages/feature-flags-client/src/index.ts b/packages/feature-flags-client/src/index.ts index eff8fc614..b27ec5733 100644 --- a/packages/feature-flags-client/src/index.ts +++ b/packages/feature-flags-client/src/index.ts @@ -1,5 +1,4 @@ import { initialize, Unleash, UnleashConfig } from 'unleash-client'; -import { serverLogger } from '@pocket-tools/ts-logger'; export { mockUnleash } from './mockClient'; export type { Unleash } from 'unleash-client'; @@ -24,8 +23,8 @@ export function getUnleash(config: UnleashConfig): Unleash { // on startup (defaults to any fallback values provided to `isEnabled`, // etc. until client is marked as ready). const unleash = initialize(config); - unleash.on('error', (err) => - serverLogger.error('Unleash errror', { data: err }), - ); + // we use console.error instead of our usual server logger, + // because unleash can be init'd before our logger is and it interferes with tracing + unleash.on('error', (err) => console.error('Unleash errror', { data: err })); return unleash; } diff --git a/packages/sentry/src/initSentry.ts b/packages/sentry/src/initSentry.ts index 1022aaf97..32abfdadd 100644 --- a/packages/sentry/src/initSentry.ts +++ b/packages/sentry/src/initSentry.ts @@ -1,8 +1,10 @@ import { type NodeOptions } from '@sentry/node'; import * as Sentry from '@sentry/node'; -export const initSentry = (options?: NodeOptions) => { - Sentry.init({ +export const initSentry = ( + options?: NodeOptions, +): Sentry.NodeClient | undefined => { + return Sentry.init({ ...options, tracesSampler: (context) => { // Continue trace decision if there is any parentSampled information diff --git a/packages/tracing/README.md b/packages/tracing/README.md index 7f04c79cb..42cfb5d58 100644 --- a/packages/tracing/README.md +++ b/packages/tracing/README.md @@ -1,3 +1,3 @@ # Tracing -We use this package to implement tracing within our servers +We use this package to implement tracing within our servers. Requires Sentry as our trace propogator. diff --git a/packages/tracing/package.json b/packages/tracing/package.json index 1b52ac32a..da0cc2745 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -66,27 +66,22 @@ }, "dependencies": { "@opentelemetry/api": "1.9.0", + "@opentelemetry/auto-instrumentations-node": "0.50.0", "@opentelemetry/context-async-hooks": "1.26.0", "@opentelemetry/core": "1.26.0", + "@opentelemetry/exporter-metrics-otlp-grpc": "0.53.0", "@opentelemetry/exporter-trace-otlp-grpc": "0.53.0", "@opentelemetry/exporter-trace-otlp-http": "0.53.0", "@opentelemetry/id-generator-aws-xray": "1.2.2", - "@opentelemetry/instrumentation": "0.53.0", - "@opentelemetry/instrumentation-aws-sdk": "0.44.0", - "@opentelemetry/instrumentation-dataloader": "0.12.0", - "@opentelemetry/instrumentation-express": "0.42.0", - "@opentelemetry/instrumentation-graphql": "0.43.0", - "@opentelemetry/instrumentation-http": "0.53.0", "@opentelemetry/instrumentation-knex": "0.40.0", - "@opentelemetry/instrumentation-mysql2": "0.41.0", - "@opentelemetry/instrumentation-net": "0.39.0", "@opentelemetry/propagator-aws-xray": "1.26.0", - "@opentelemetry/resource-detector-aws": "1.6.1", "@opentelemetry/resources": "1.26.0", + "@opentelemetry/sdk-metrics": "1.26.0", "@opentelemetry/sdk-node": "0.53.0", "@opentelemetry/sdk-trace-base": "1.26.0", "@opentelemetry/sdk-trace-node": "1.26.0", "@opentelemetry/semantic-conventions": "1.27.0", + "@opentelemetry/winston-transport": "0.6.0", "@prisma/instrumentation": "5.19.1", "@sentry/node": "8.33.0", "@sentry/opentelemetry": "8.33.0", @@ -109,4 +104,4 @@ "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/packages/tracing/src/tracing.ts b/packages/tracing/src/tracing.ts index 35833af8a..7c523f22c 100644 --- a/packages/tracing/src/tracing.ts +++ b/packages/tracing/src/tracing.ts @@ -1,54 +1,27 @@ import process from 'process'; import { NodeSDK } from '@opentelemetry/sdk-node'; -import { CompositePropagator } from '@opentelemetry/core'; -import { GraphQLInstrumentation } from '@opentelemetry/instrumentation-graphql'; -import { AwsInstrumentation } from '@opentelemetry/instrumentation-aws-sdk'; -import { AWSXRayIdGenerator } from '@opentelemetry/id-generator-aws-xray'; -import { AWSXRayPropagator } from '@opentelemetry/propagator-aws-xray'; -import { - BatchSpanProcessor, - SpanProcessor, - Span, - SamplingDecision, - ReadableSpan, - SpanExporter, - TraceIdRatioBasedSampler, - ParentBasedSampler, - BufferConfig, -} from '@opentelemetry/sdk-trace-base'; - -import { DataloaderInstrumentation } from '@opentelemetry/instrumentation-dataloader'; import { - Context, DiagConsoleLogger, DiagLogLevel, DiagLogger, diag, } from '@opentelemetry/api'; -import { ExpressInstrumentation } from '@opentelemetry/instrumentation-express'; -import { HttpInstrumentation } from '@opentelemetry/instrumentation-http'; import { KnexInstrumentation } from '@opentelemetry/instrumentation-knex'; -import { MySQL2Instrumentation } from '@opentelemetry/instrumentation-mysql2'; -import { NetInstrumentation } from '@opentelemetry/instrumentation-net'; + import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc'; import { PrismaInstrumentation } from '@prisma/instrumentation'; -import { Resource } from '@opentelemetry/resources'; +import { Detector, Resource } from '@opentelemetry/resources'; import { - SEMRESATTRS_SERVICE_NAME, - SEMRESATTRS_SERVICE_VERSION, + ATTR_SERVICE_NAME, + ATTR_SERVICE_VERSION, } from '@opentelemetry/semantic-conventions'; -import { ExpressLayerType } from '@opentelemetry/instrumentation-express/build/src/enums/ExpressLayerType'; -import { - SentrySpanProcessor, - SentryPropagator, - SentrySampler, - wrapContextManagerClass, -} from '@sentry/opentelemetry'; -import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks'; +import { SentrySampler } from '@sentry/opentelemetry'; +// import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics'; +// import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc'; +import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node'; import { - Detector, DetectorSync, IResource, ResourceDetectionConfig, @@ -58,6 +31,13 @@ import { } from '@opentelemetry/resources'; import * as Sentry from '@sentry/node'; +import type { NodeClient } from '@sentry/node'; +import { + BatchSpanProcessor, + ParentBasedSampler, +} from '@opentelemetry/sdk-trace-base'; +import { AWSXRayPropagator } from '@opentelemetry/propagator-aws-xray'; +import { AWSXRayIdGenerator } from '@opentelemetry/id-generator-aws-xray'; // instrumentations available to be added by implementing services export enum AdditionalInstrumentation { @@ -81,16 +61,21 @@ export type TracingConfig = { httpDefaultPort?: number; host?: string; logger?: DiagLogger; - addSentry?: boolean; + sentry: NodeClient | undefined; additionalInstrumentations?: AdditionalInstrumentation[]; }; -/** - * Init a sentry context manager to be used for request isolation - */ -const SentryContextManager = wrapContextManagerClass( - AsyncLocalStorageContextManager, -); +const tracingDefaults: TracingConfig = { + serviceName: 'unknown', + release: 'unknown', + sentry: undefined, + graphQLDepth: 8, + grpcDefaultPort: 4317, + httpDefaultPort: 4318, + host: 'localhost', + logger: new DiagConsoleLogger(), + additionalInstrumentations: [], +}; // TODO: Remove after issue is fixed // https://github.com/open-telemetry/opentelemetry-js/issues/4638 @@ -117,6 +102,8 @@ function awaitAttributes(detector: DetectorSync): Detector { * server start and import to patch all libraries */ export async function nodeSDKBuilder(config: TracingConfig) { + config = { ...tracingDefaults, ...config }; + /** * documentation:https://aws-otel.github.io/docs/getting-started/js-sdk/trace-manual-instr#instrumenting-the-aws-sdk * and https://github.com/open-telemetry/opentelemetry-js @@ -128,8 +115,8 @@ export async function nodeSDKBuilder(config: TracingConfig) { const _resource = Resource.default().merge( new Resource({ - [SEMRESATTRS_SERVICE_NAME]: config.serviceName, - [SEMRESATTRS_SERVICE_VERSION]: config.release, + [ATTR_SERVICE_NAME]: config.serviceName, + [ATTR_SERVICE_VERSION]: config.release, }), ); @@ -137,41 +124,36 @@ export async function nodeSDKBuilder(config: TracingConfig) { //collector url url: `http://${config.host}:${config.grpcDefaultPort}`, }); - const _spanProcessors: SpanProcessor[] = [ - new CustomAWSXraySpanProcessor( - _traceExporter, - config.samplingRatio ?? 0.01, - { - // only force 100ms between 2 batch exports. - // Default is 5000ms which is 5 seconds and causes us to lose spans - scheduledDelayMillis: 100, - }, - ), - ]; - if (config.addSentry) { - _spanProcessors.push(new CustomSentrySpanProcessor()); - } - const _idGenerator = new AWSXRayIdGenerator(); + + // const _metricReader = new PeriodicExportingMetricReader({ + // exporter: new OTLPMetricExporter({ + // url: `http://${config.host}:${config.grpcDefaultPort}`, + // }), + // exportIntervalMillis: 10000, // once every 10 seconds, GCP supports 1 every 5 seconds for custom metrics https://cloud.google.com/monitoring/quotas#custom_metrics_quotas + // }); // set up the default instrumentations for all implementors const instrumentations: any[] = [ - new AwsInstrumentation({ - suppressInternalInstrumentation: true, - }), - new DataloaderInstrumentation({}), - new ExpressInstrumentation({ - ignoreLayersType: [ExpressLayerType.MIDDLEWARE], - }), - new GraphQLInstrumentation({ - // optional params - depth: config.graphQLDepth, //query depth - allowValues: true, - }), - new HttpInstrumentation({ - ignoreIncomingPaths: ['/.well-known/apollo/server-health'], + getNodeAutoInstrumentations({ + '@opentelemetry/instrumentation-fs': { + enabled: false, + requireParentSpan: true, + }, + '@opentelemetry/instrumentation-undici': { + headersToSpanAttributes: { + requestHeaders: [ + 'sentry-trace', + 'baggage', + 'x-amzn-trace-id', + 'encodedid', + 'applicationname', + ], + }, + }, + '@opentelemetry/instrumentation-http': { + ignoreIncomingPaths: ['/.well-known/apollo/server-health'], + }, }), - new MySQL2Instrumentation({}), - new NetInstrumentation({}), ]; // add any instrumentations specified by the implementing service @@ -182,17 +164,17 @@ export async function nodeSDKBuilder(config: TracingConfig) { }); const sdk = new NodeSDK({ - textMapPropagator: config.addSentry - ? new CompositePropagator({ - propagators: [new AWSXRayPropagator(), new SentryPropagator()], - }) - : new AWSXRayPropagator(), + textMapPropagator: new AWSXRayPropagator(), instrumentations, - contextManager: config.addSentry ? new SentryContextManager() : undefined, + sampler: config.sentry + ? new ParentBasedSampler({ root: new SentrySampler(config.sentry) }) + : undefined, + contextManager: new Sentry.SentryContextManager(), resource: _resource, - spanProcessors: _spanProcessors, + idGenerator: new AWSXRayIdGenerator(), + spanProcessors: [new BatchSpanProcessor(_traceExporter)], traceExporter: _traceExporter, - idGenerator: _idGenerator, + // metricReader: _metricReader, // TODO: Remove after issue is fixed // https://github.com/open-telemetry/opentelemetry-js/issues/4638 resourceDetectors: [ @@ -206,6 +188,9 @@ export async function nodeSDKBuilder(config: TracingConfig) { sdk.start(); diag.info('Tracer successfully started'); + // Validate that the setup is correct + Sentry.validateOpenTelemetrySetup(); + // gracefully shut down the SDK on process exit process.on('SIGTERM', () => { sdk @@ -218,114 +203,3 @@ export async function nodeSDKBuilder(config: TracingConfig) { }); //todo: export tracer object to enable/test custom tracing } - -/****** - * Open Telemetry does not allow us to use different sampling ratios per system we export too. - * Too counteract this, we create custom processors that call the respecitive samplers instead. - * - * We do this because we pay more for Sentry profiling then AWS Profiling and only want to send a limited subset of traces to sentry - ******/ - -/** - * Custom batch exporter for AWS XRay with our own sampling rules - */ -export class CustomAWSXraySpanProcessor extends BatchSpanProcessor { - sampler: ParentBasedSampler; - // map to hold the contexts from onStart, used in onEnd - contextMap: Map; - - constructor(_exporter: SpanExporter, ratio: number, config: BufferConfig) { - super(_exporter, config); - this.contextMap = new Map(); - this.sampler = new ParentBasedSampler({ - root: new TraceIdRatioBasedSampler(ratio), - }); - } - onStart(span: Span, parentContext: Context) { - this.contextMap.set(span.spanContext().traceId, parentContext); - const sampleResult = this.sampler.shouldSample( - parentContext, - span.spanContext().traceId, - span.name, - span.kind, - span.attributes, - span.links, - ); - if (sampleResult.decision === SamplingDecision.RECORD_AND_SAMPLED) { - super.onStart(span, parentContext); - } - } - - onEnd(span: ReadableSpan) { - const context = this.contextMap.get(span.spanContext().traceId); - - if (context) { - const sampleResult = this.sampler.shouldSample( - context, - span.spanContext().traceId, - span.name, - span.kind, - span.attributes, - span.links, - ); - // After processing, clean up the context from the map - this.contextMap.delete(span.spanContext().traceId); - if (sampleResult.decision === SamplingDecision.RECORD_AND_SAMPLED) { - super.onEnd(span); - } - } - } -} - -/** - * Custom Exporter for Sentry that uses the sentry client traces sample rate to export to sentry - */ -export class CustomSentrySpanProcessor extends SentrySpanProcessor { - sampler: SentrySampler; - // map to hold the contexts from onStart, used in onEnd - contextMap: Map; - - constructor() { - super(); - this.contextMap = new Map(); - const sentryClient = Sentry.getClient(); - if (!sentryClient) { - throw new Error('Sentry client is not initialized'); - } - this.sampler = new SentrySampler(sentryClient); - } - onStart(span: Span, parentContext: Context) { - this.contextMap.set(span.spanContext().traceId, parentContext); - const sampleResult = this.sampler.shouldSample( - parentContext, - span.spanContext().traceId, - span.name, - span.kind, - span.attributes, - span.links, - ); - if (sampleResult.decision === SamplingDecision.RECORD_AND_SAMPLED) { - super.onStart(span, parentContext); - } - } - - onEnd(span: Span & ReadableSpan) { - const context = this.contextMap.get(span.spanContext().traceId); - - if (context) { - const sampleResult = this.sampler.shouldSample( - context, - span.spanContext().traceId, - span.name, - span.kind, - span.attributes, - span.links, - ); - // After processing, clean up the context from the map - this.contextMap.delete(span.spanContext().traceId); - if (sampleResult.decision === SamplingDecision.RECORD_AND_SAMPLED) { - super.onEnd(span); - } - } - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fa019853e..2514a2461 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,14 +17,10 @@ importers: devDependencies: '@commitlint/cli': specifier: 19.4.1 -<<<<<<< HEAD - version: 19.4.1(@types/node@22.5.5)(typescript@5.7.0-dev.20241003) -======= version: 19.4.1(@types/node@22.7.4)(typescript@5.7.0-dev.20241007) ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) '@commitlint/config-conventional': - specifier: ^19.4.1 - version: 19.4.1 + specifier: ^19.5.0 + version: 19.5.0 '@pocket-tools/eslint-config': specifier: workspace:* version: link:packages/eslint-config @@ -35,8 +31,8 @@ importers: specifier: workspace:* version: link:packages/tsconfig turbo: - specifier: ^2.1.1 - version: 2.1.1 + specifier: ^2.1.3 + version: 2.1.3 infrastructure/account-data-deleter: dependencies: @@ -1065,7 +1061,7 @@ importers: version: 14.0.0-beta.11 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1114,7 +1110,7 @@ importers: version: 14.0.0-beta.11 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1154,7 +1150,7 @@ importers: version: 14.0.0-beta.11 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1215,7 +1211,7 @@ importers: version: 3.1.4 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1267,7 +1263,7 @@ importers: version: 3.1.4 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1319,7 +1315,7 @@ importers: version: 29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1365,7 +1361,7 @@ importers: version: 29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1411,7 +1407,7 @@ importers: version: 14.0.0-beta.11 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1463,7 +1459,7 @@ importers: version: 3.1.4 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1518,7 +1514,7 @@ importers: version: 14.0.0-beta.11 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1579,7 +1575,7 @@ importers: version: 14.0.0-beta.11 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1619,7 +1615,7 @@ importers: version: 14.0.0-beta.11 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1665,7 +1661,7 @@ importers: version: 14.0.0-beta.11 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1720,7 +1716,7 @@ importers: version: 14.0.0-beta.11 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1808,7 +1804,7 @@ importers: version: 8.0.2(semantic-release@24.1.0(typescript@5.5.4)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1817,7 +1813,7 @@ importers: version: link:../tsconfig tsup: specifier: 8.2.4 - version: 8.2.4(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) + version: 8.2.4(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) typescript: specifier: 5.5.4 version: 5.5.4 @@ -1845,7 +1841,7 @@ importers: version: 29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1854,7 +1850,7 @@ importers: version: link:../tsconfig tsup: specifier: 8.2.4 - version: 8.2.4(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) + version: 8.2.4(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) typescript: specifier: 5.5.4 version: 5.5.4 @@ -1891,9 +1887,6 @@ importers: packages/feature-flags-client: dependencies: - '@pocket-tools/ts-logger': - specifier: workspace:* - version: link:../ts-logger tslib: specifier: 2.7.0 version: 2.7.0 @@ -1915,7 +1908,7 @@ importers: version: 29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1924,7 +1917,7 @@ importers: version: link:../tsconfig tsup: specifier: 8.2.4 - version: 8.2.4(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) + version: 8.2.4(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) typescript: specifier: 5.5.4 version: 5.5.4 @@ -1961,7 +1954,7 @@ importers: version: 8.0.2(semantic-release@24.1.0(typescript@5.5.4)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -1970,7 +1963,7 @@ importers: version: link:../tsconfig tsup: specifier: 8.2.4 - version: 8.2.4(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) + version: 8.2.4(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) typescript: specifier: 5.5.4 version: 5.5.4 @@ -2004,7 +1997,7 @@ importers: version: 29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -2013,7 +2006,7 @@ importers: version: link:../tsconfig tsup: specifier: 8.2.4 - version: 8.2.4(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) + version: 8.2.4(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) typescript: specifier: 5.5.4 version: 5.5.4 @@ -2059,7 +2052,7 @@ importers: version: 8.0.2(semantic-release@24.1.0(typescript@5.5.4)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -2068,7 +2061,7 @@ importers: version: link:../tsconfig tsup: specifier: 8.2.4 - version: 8.2.4(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) + version: 8.2.4(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) typescript: specifier: 5.5.4 version: 5.5.4 @@ -2105,7 +2098,7 @@ importers: version: 8.0.2(semantic-release@24.1.0(typescript@5.5.4)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -2114,7 +2107,7 @@ importers: version: link:../tsconfig tsup: specifier: 8.2.4 - version: 8.2.4(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) + version: 8.2.4(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) typescript: specifier: 5.5.4 version: 5.5.4 @@ -2151,7 +2144,7 @@ importers: version: 29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -2160,7 +2153,7 @@ importers: version: link:../tsconfig tsup: specifier: 8.2.4 - version: 8.2.4(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) + version: 8.2.4(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) typescript: specifier: 5.5.4 version: 5.5.4 @@ -2230,7 +2223,7 @@ importers: version: 8.0.2(semantic-release@24.1.0(typescript@5.5.4)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -2239,7 +2232,7 @@ importers: version: link:../tsconfig tsup: specifier: 8.2.4 - version: 8.2.4(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) + version: 8.2.4(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) typescript: specifier: 5.5.4 version: 5.5.4 @@ -2249,12 +2242,18 @@ importers: '@opentelemetry/api': specifier: 1.9.0 version: 1.9.0 + '@opentelemetry/auto-instrumentations-node': + specifier: 0.50.0 + version: 0.50.0(@opentelemetry/api@1.9.0)(encoding@0.1.13) '@opentelemetry/context-async-hooks': specifier: 1.26.0 version: 1.26.0(@opentelemetry/api@1.9.0) '@opentelemetry/core': specifier: 1.26.0 version: 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-grpc': + specifier: 0.53.0 + version: 0.53.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-grpc': specifier: 0.53.0 version: 0.53.0(@opentelemetry/api@1.9.0) @@ -2264,42 +2263,18 @@ importers: '@opentelemetry/id-generator-aws-xray': specifier: 1.2.2 version: 1.2.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': - specifier: 0.53.0 - version: 0.53.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-aws-sdk': - specifier: 0.44.0 - version: 0.44.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dataloader': - specifier: 0.12.0 - version: 0.12.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-express': - specifier: 0.42.0 - version: 0.42.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-graphql': - specifier: 0.43.0 - version: 0.43.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-http': - specifier: 0.53.0 - version: 0.53.0(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation-knex': specifier: 0.40.0 version: 0.40.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql2': - specifier: 0.41.0 - version: 0.41.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-net': - specifier: 0.39.0 - version: 0.39.0(@opentelemetry/api@1.9.0) '@opentelemetry/propagator-aws-xray': specifier: 1.26.0 version: 1.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-aws': - specifier: 1.6.1 - version: 1.6.1(@opentelemetry/api@1.9.0) '@opentelemetry/resources': specifier: 1.26.0 version: 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': + specifier: 1.26.0 + version: 1.26.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-node': specifier: 0.53.0 version: 0.53.0(@opentelemetry/api@1.9.0) @@ -2312,6 +2287,9 @@ importers: '@opentelemetry/semantic-conventions': specifier: 1.27.0 version: 1.27.0 + '@opentelemetry/winston-transport': + specifier: 0.6.0 + version: 0.6.0 '@prisma/instrumentation': specifier: 5.19.1 version: 5.19.1 @@ -2348,7 +2326,7 @@ importers: version: 8.0.2(semantic-release@24.1.0(typescript@5.5.4)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -2357,7 +2335,7 @@ importers: version: link:../tsconfig tsup: specifier: 8.2.4 - version: 8.2.4(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) + version: 8.2.4(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) typescript: specifier: 5.5.4 version: 5.5.4 @@ -2397,7 +2375,7 @@ importers: version: 8.0.2(semantic-release@24.1.0(typescript@5.5.4)) ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -2406,7 +2384,7 @@ importers: version: link:../tsconfig tsup: specifier: 8.2.4 - version: 8.2.4(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) + version: 8.2.4(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) typescript: specifier: 5.5.4 version: 5.5.4 @@ -2424,7 +2402,7 @@ importers: version: 2.7.0 tsup: specifier: 8.2.4 - version: 8.2.4(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) + version: 8.2.4(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1) typescript: specifier: 5.5.4 version: 5.5.4 @@ -2500,7 +2478,7 @@ importers: version: 7.0.0 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -2745,7 +2723,7 @@ importers: version: 7.0.0 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -2854,7 +2832,7 @@ importers: version: 3.1.4 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -2948,7 +2926,7 @@ importers: version: 7.0.0 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -2988,6 +2966,9 @@ importers: '@pocket-tools/sentry': specifier: workspace:* version: link:../../packages/sentry + '@pocket-tools/tracing': + specifier: workspace:* + version: link:../../packages/tracing '@pocket-tools/ts-logger': specifier: workspace:* version: link:../../packages/ts-logger @@ -3099,7 +3080,7 @@ importers: version: 7.0.0 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -3157,6 +3138,9 @@ importers: '@pocket-tools/sentry': specifier: workspace:* version: link:../../packages/sentry + '@pocket-tools/tracing': + specifier: workspace:* + version: link:../../packages/tracing '@pocket-tools/ts-logger': specifier: workspace:* version: link:../../packages/ts-logger @@ -3280,7 +3264,7 @@ importers: version: 7.0.0 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -3338,7 +3322,7 @@ importers: version: 3.1.4 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -3462,7 +3446,7 @@ importers: version: 7.0.0 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -3532,7 +3516,7 @@ importers: version: 3.1.4 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -3641,7 +3625,7 @@ importers: version: 7.0.0 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -3666,12 +3650,18 @@ importers: '@pocket-tools/apollo-utils': specifier: workspace:* version: link:../../packages/apollo-utils + '@pocket-tools/feature-flags-client': + specifier: workspace:* + version: link:../../packages/feature-flags-client '@pocket-tools/int-mask': specifier: workspace:* version: link:../../packages/int-mask '@pocket-tools/sentry': specifier: workspace:* version: link:../../packages/sentry + '@pocket-tools/tracing': + specifier: workspace:* + version: link:../../packages/tracing '@pocket-tools/ts-logger': specifier: workspace:* version: link:../../packages/ts-logger @@ -3738,7 +3728,7 @@ importers: version: 7.0.0 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -3784,6 +3774,9 @@ importers: '@pocket-tools/sentry': specifier: workspace:* version: link:../../packages/sentry + '@pocket-tools/tracing': + specifier: workspace:* + version: link:../../packages/tracing '@pocket-tools/ts-logger': specifier: workspace:* version: link:../../packages/ts-logger @@ -3901,7 +3894,7 @@ importers: version: 7.0.0 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -3926,6 +3919,9 @@ importers: '@pocket-tools/sentry': specifier: workspace:* version: link:../../packages/sentry + '@pocket-tools/tracing': + specifier: workspace:* + version: link:../../packages/tracing '@pocket-tools/ts-logger': specifier: workspace:* version: link:../../packages/ts-logger @@ -3992,7 +3988,7 @@ importers: version: 7.0.0 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: 10.9.2 version: 10.9.2(@types/node@22.5.3)(typescript@5.5.4) @@ -4385,6 +4381,10 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.25.7': + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.24.4': resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} engines: {node: '>=6.9.0'} @@ -4393,8 +4393,8 @@ packages: resolution: {integrity: sha512-c4IM7OTg6k1Q+AJ153e2mc2QVTezTwnb4VzquwcyiEzGnW0Kedv4do/TrkU98qPeC5LNiMt/QXwIjzYXLBpyZg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.4': - resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} + '@babel/compat-data@7.25.7': + resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==} engines: {node: '>=6.9.0'} '@babel/core@7.24.5': @@ -4405,8 +4405,8 @@ packages: resolution: {integrity: sha512-6AWcmZC/MZCO0yKys4uhg5NlxL0ESF3K6IAaoQ+xSXvPyPyxNWRafP+GDbI88Oh68O7QkJgmEtedWPM9U0pZNg==} engines: {node: '>=6.9.0'} - '@babel/core@7.25.2': - resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + '@babel/core@7.25.7': + resolution: {integrity: sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==} engines: {node: '>=6.9.0'} '@babel/generator@7.24.5': @@ -4421,8 +4421,8 @@ packages: resolution: {integrity: sha512-47DG+6F5SzOi0uEvK4wMShmn5yY0mVjVJoWTphdY2B4Rx9wHgjK7Yhtr0ru6nE+sn0v38mzrWOlah0p/YlHHOQ==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.6': - resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} + '@babel/generator@7.25.7': + resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.22.5': @@ -4437,8 +4437,8 @@ packages: resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.2': - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + '@babel/helper-compilation-targets@7.25.7': + resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} engines: {node: '>=6.9.0'} '@babel/helper-create-class-features-plugin@7.24.5': @@ -4483,6 +4483,10 @@ packages: resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.25.7': + resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.24.5': resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} engines: {node: '>=6.9.0'} @@ -4495,8 +4499,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.25.2': - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + '@babel/helper-module-transforms@7.25.7': + resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -4523,6 +4527,10 @@ packages: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} + '@babel/helper-simple-access@7.25.7': + resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} @@ -4543,6 +4551,10 @@ packages: resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.5': resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} @@ -4551,6 +4563,10 @@ packages: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.23.5': resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} @@ -4559,6 +4575,10 @@ packages: resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.7': + resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} + engines: {node: '>=6.9.0'} + '@babel/helpers@7.24.5': resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} engines: {node: '>=6.9.0'} @@ -4567,8 +4587,8 @@ packages: resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.25.6': - resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} + '@babel/helpers@7.25.7': + resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.5': @@ -4579,6 +4599,10 @@ packages: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} + '@babel/highlight@7.25.7': + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.24.5': resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} engines: {node: '>=6.0.0'} @@ -4589,8 +4613,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.25.6': - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + '@babel/parser@7.25.7': + resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==} engines: {node: '>=6.0.0'} hasBin: true @@ -4829,8 +4853,8 @@ packages: resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + '@babel/template@7.25.7': + resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} '@babel/traverse@7.24.5': @@ -4841,8 +4865,8 @@ packages: resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.6': - resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} + '@babel/traverse@7.25.7': + resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} engines: {node: '>=6.9.0'} '@babel/types@7.24.5': @@ -4857,8 +4881,8 @@ packages: resolution: {integrity: sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.6': - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + '@babel/types@7.25.7': + resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -4967,68 +4991,68 @@ packages: engines: {node: '>=v18'} hasBin: true - '@commitlint/config-conventional@19.4.1': - resolution: {integrity: sha512-D5S5T7ilI5roybWGc8X35OBlRXLAwuTseH1ro0XgqkOWrhZU8yOwBOslrNmSDlTXhXLq8cnfhQyC42qaUCzlXA==} + '@commitlint/config-conventional@19.5.0': + resolution: {integrity: sha512-OBhdtJyHNPryZKg0fFpZNOBM1ZDbntMvqMuSmpfyP86XSfwzGw4CaoYRG4RutUPg0BTK07VMRIkNJT6wi2zthg==} engines: {node: '>=v18'} - '@commitlint/config-validator@19.0.3': - resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} + '@commitlint/config-validator@19.5.0': + resolution: {integrity: sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==} engines: {node: '>=v18'} - '@commitlint/ensure@19.0.3': - resolution: {integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==} + '@commitlint/ensure@19.5.0': + resolution: {integrity: sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==} engines: {node: '>=v18'} - '@commitlint/execute-rule@19.0.0': - resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==} + '@commitlint/execute-rule@19.5.0': + resolution: {integrity: sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==} engines: {node: '>=v18'} - '@commitlint/format@19.3.0': - resolution: {integrity: sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==} + '@commitlint/format@19.5.0': + resolution: {integrity: sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==} engines: {node: '>=v18'} - '@commitlint/is-ignored@19.2.2': - resolution: {integrity: sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==} + '@commitlint/is-ignored@19.5.0': + resolution: {integrity: sha512-0XQ7Llsf9iL/ANtwyZ6G0NGp5Y3EQ8eDQSxv/SRcfJ0awlBY4tHFAvwWbw66FVUaWICH7iE5en+FD9TQsokZ5w==} engines: {node: '>=v18'} - '@commitlint/lint@19.4.1': - resolution: {integrity: sha512-Ws4YVAZ0jACTv6VThumITC1I5AG0UyXMGua3qcf55JmXIXm/ejfaVKykrqx7RyZOACKVAs8uDRIsEsi87JZ3+Q==} + '@commitlint/lint@19.5.0': + resolution: {integrity: sha512-cAAQwJcRtiBxQWO0eprrAbOurtJz8U6MgYqLz+p9kLElirzSCc0vGMcyCaA1O7AqBuxo11l1XsY3FhOFowLAAg==} engines: {node: '>=v18'} '@commitlint/load@19.4.0': resolution: {integrity: sha512-I4lCWaEZYQJ1y+Y+gdvbGAx9pYPavqZAZ3/7/8BpWh+QjscAn8AjsUpLV2PycBsEx7gupq5gM4BViV9xwTIJuw==} engines: {node: '>=v18'} - '@commitlint/message@19.0.0': - resolution: {integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==} + '@commitlint/message@19.5.0': + resolution: {integrity: sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==} engines: {node: '>=v18'} - '@commitlint/parse@19.0.3': - resolution: {integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==} + '@commitlint/parse@19.5.0': + resolution: {integrity: sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==} engines: {node: '>=v18'} - '@commitlint/read@19.4.0': - resolution: {integrity: sha512-r95jLOEZzKDakXtnQub+zR3xjdnrl2XzerPwm7ch1/cc5JGq04tyaNpa6ty0CRCWdVrk4CZHhqHozb8yZwy2+g==} + '@commitlint/read@19.5.0': + resolution: {integrity: sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==} engines: {node: '>=v18'} - '@commitlint/resolve-extends@19.1.0': - resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==} + '@commitlint/resolve-extends@19.5.0': + resolution: {integrity: sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==} engines: {node: '>=v18'} - '@commitlint/rules@19.4.1': - resolution: {integrity: sha512-AgctfzAONoVxmxOXRyxXIq7xEPrd7lK/60h2egp9bgGUMZK9v0+YqLOA+TH+KqCa63ZoCr8owP2YxoSSu7IgnQ==} + '@commitlint/rules@19.5.0': + resolution: {integrity: sha512-hDW5TPyf/h1/EufSHEKSp6Hs+YVsDMHazfJ2azIk9tHPXS6UqSz1dIRs1gpqS3eMXgtkT7JH6TW4IShdqOwhAw==} engines: {node: '>=v18'} - '@commitlint/to-lines@19.0.0': - resolution: {integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==} + '@commitlint/to-lines@19.5.0': + resolution: {integrity: sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==} engines: {node: '>=v18'} - '@commitlint/top-level@19.0.0': - resolution: {integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==} + '@commitlint/top-level@19.5.0': + resolution: {integrity: sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==} engines: {node: '>=v18'} - '@commitlint/types@19.0.3': - resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} + '@commitlint/types@19.5.0': + resolution: {integrity: sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==} engines: {node: '>=v18'} '@cspotcode/source-map-support@0.8.1': @@ -6130,6 +6154,12 @@ packages: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} + '@opentelemetry/auto-instrumentations-node@0.50.0': + resolution: {integrity: sha512-LqoSiWrOM4Cnr395frDHL4R/o5c2fuqqrqW8sZwhxvkasImmVlyL66YMPHllM2O5xVj2nP2ANUKHZSd293meZA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.4.1 + '@opentelemetry/context-async-hooks@1.26.0': resolution: {integrity: sha512-HedpXXYzzbaoutw6DFLWLDket2FwLkLpil4hGCZ1xYEIMTcivdfwEOISgdbLEWyG3HW52gTq2V9mOVJrONgiwg==} engines: {node: '>=14'} @@ -6160,6 +6190,18 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 + '@opentelemetry/exporter-metrics-otlp-grpc@0.53.0': + resolution: {integrity: sha512-2wjAccaG4yBxjfPqDeeXEYymwo1OYybUmBxUutDPeu0ColVkXyHIOxKSdHdn6vAn/v20m4w9E6SrSl4jtuZdiA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/exporter-metrics-otlp-http@0.53.0': + resolution: {integrity: sha512-nvZtOk23pZOrTW10Za2WPd9pk4tWDvL6ALlHRFfInpcTjtOgCrv+fQDxpzosa5PeXvYeFFUO5aYCTnwiCX4Dzg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/exporter-trace-otlp-grpc@0.53.0': resolution: {integrity: sha512-m6KSh6OBDwfDjpzPVbuJbMgMbkoZfpxYH2r262KckgX9cMYvooWXEKzlJYsNDC6ADr28A1rtRoUVRwNfIN4tUg==} engines: {node: '>=14'} @@ -6208,18 +6250,42 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-bunyan@0.41.0': + resolution: {integrity: sha512-NoQS+gcwQ7pzb2PZFyra6bAxDAVXBMmpKxBblEuXJWirGrAksQllg9XTdmqhrwT/KxUYrbVca/lMams7e51ysg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-cassandra-driver@0.41.0': + resolution: {integrity: sha512-hvTNcC8qjCQEHZTLAlTmDptjsEGqCKpN+90hHH8Nn/GwilGr5TMSwGrlfstdJuZWyw8HAnRUed6bcjvmHHk2Xw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-connect@0.39.0': resolution: {integrity: sha512-pGBiKevLq7NNglMgqzmeKczF4XQMTOUOTkK8afRHMZMnrK3fcETyTH7lVaSozwiOM3Ws+SuEmXZT7DYrrhxGlg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-cucumber@0.9.0': + resolution: {integrity: sha512-4PQNFnIqnA2WM3ZHpr0xhZpHSqJ5xJ6ppTIzZC7wPqe+ZBpj41vG8B6ieqiPfq+im4QdqbYnzLb3rj48GDEN9g==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@opentelemetry/instrumentation-dataloader@0.12.0': resolution: {integrity: sha512-pnPxatoFE0OXIZDQhL2okF//dmbiWFzcSc8pUg9TqofCLYZySSxDCgQc69CJBo5JnI3Gz1KP+mOjS4WAeRIH4g==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-dns@0.39.0': + resolution: {integrity: sha512-+iPzvXqVdJa67QBuz2tuP0UI3LS1/cMMo6dS7360DDtOQX+sQzkiN+mo3Omn4T6ZRhkTDw6c7uwsHBcmL31+1g==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-express@0.42.0': resolution: {integrity: sha512-YNcy7ZfGnLsVEqGXQPT+S0G1AE46N21ORY7i7yUQyfhGAL4RBjnZUqefMI0NwqIl6nGbr1IpF0rZGoN8Q7x12Q==} engines: {node: '>=14'} @@ -6250,6 +6316,12 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-grpc@0.53.0': + resolution: {integrity: sha512-Ss338T92yE1UCgr9zXSY3cPuaAy27uQw+wAC5IwsQKCXL5wwkiOgkd+2Ngksa9EGsgUEMwGeHi76bDdHFJ5Rrw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-hapi@0.41.0': resolution: {integrity: sha512-jKDrxPNXDByPlYcMdZjNPYCvw0SQJjN+B1A+QH+sx+sAHsKSAf9hwFiJSrI6C4XdOls43V/f/fkp9ITkHhKFbQ==} engines: {node: '>=14'} @@ -6292,6 +6364,12 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-memcached@0.39.0': + resolution: {integrity: sha512-WfwvKAZ9I1qILRP5EUd88HQjwAAL+trXpCpozjBi4U6a0A07gB3fZ5PFAxbXemSjF5tHk9KVoROnqHvQ+zzFSQ==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-mongodb@0.47.0': resolution: {integrity: sha512-yqyXRx2SulEURjgOQyJzhCECSh5i1uM49NUaq9TqLd6fA7g26OahyJfsr9NE38HFqGRHpi4loyrnfYGdrsoVjQ==} engines: {node: '>=14'} @@ -6334,18 +6412,60 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-pino@0.42.0': + resolution: {integrity: sha512-SoX6FzucBfTuFNMZjdurJhcYWq2ve8/LkhmyVLUW31HpIB45RF1JNum0u4MkGisosDmXlK4njomcgUovShI+WA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-redis-4@0.42.0': resolution: {integrity: sha512-NaD+t2JNcOzX/Qa7kMy68JbmoVIV37fT/fJYzLKu2Wwd+0NCxt+K2OOsOakA8GVg8lSpFdbx4V/suzZZ2Pvdjg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-redis@0.42.0': + resolution: {integrity: sha512-jZBoqve0rEC51q0HuhjtZVq1DtUvJHzEJ3YKGvzGar2MU1J4Yt5+pQAQYh1W4jSoDyKeaI4hyeUdWM5N0c2lqA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-restify@0.41.0': + resolution: {integrity: sha512-gKEo+X/wVKUBuD2WDDlF7SlDNBHMWjSQoLxFCsGqeKgHR0MGtwMel8uaDGg9LJ83nKqYy+7Vl/cDFxjba6H+/w==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-router@0.40.0': + resolution: {integrity: sha512-bRo4RaclGFiKtmv/N1D0MuzO7DuxbeqMkMCbPPng6mDwzpHAMpHz/K/IxJmF+H1Hi/NYXVjCKvHGClageLe9eA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-socket.io@0.42.0': + resolution: {integrity: sha512-xB5tdsBzuZyicQTO3hDzJIpHQ7V1BYJ6vWPWgl19gWZDBdjEGc3HOupjkd3BUJyDoDhbMEHGk2nNlkUU99EfkA==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-tedious@0.14.0': + resolution: {integrity: sha512-ofq7pPhSqvRDvD2FVx3RIWPj76wj4QubfrbqJtEx0A+fWoaYxJOCIQ92tYJh28elAmjMmgF/XaYuJuBhBv5J3A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-undici@0.6.0': resolution: {integrity: sha512-ABJBhm5OdhGmbh0S/fOTE4N69IZ00CsHC5ijMYfzbw3E5NwLgpQk5xsljaECrJ8wz1SfXbO03FiSuu5AyRAkvQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.7.0 + '@opentelemetry/instrumentation-winston@0.40.0': + resolution: {integrity: sha512-eMk2tKl86YJ8/yHvtDbyhrE35/R0InhO9zuHTflPx8T0+IvKVUhPV71MsJr32sImftqeOww92QHt4Jd+a5db4g==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation@0.52.1': resolution: {integrity: sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==} engines: {node: '>=14'} @@ -6404,12 +6524,36 @@ packages: resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} engines: {node: '>=14'} + '@opentelemetry/resource-detector-alibaba-cloud@0.29.1': + resolution: {integrity: sha512-Qshebw6azBuKUqGkVgambZlLS6Xh+LCoLXep1oqW1RSzSOHQxGYDsPs99v8NzO65eJHHOu8wc2yKsWZQAgYsSw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@opentelemetry/resource-detector-aws@1.6.1': resolution: {integrity: sha512-A/3lqx9xoew7sFi+AVUUVr6VgB7UJ5qqddkKR3gQk9hWLm1R7HUXVJG09cLcZ7DMNpX13DohPRGmHE/vp1vafw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 + '@opentelemetry/resource-detector-azure@0.2.11': + resolution: {integrity: sha512-XepvQfTXWyHAoAziCfXGwYbSZL0LHtFk5iuKKN2VE2vzcoiw5Tepi0Qafuwb7CCtpQRReao4H7E29MFbCmh47g==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/resource-detector-container@0.4.1': + resolution: {integrity: sha512-v0bvO6RxYtbxvY/HwqrPQnZ4UtP4nBq4AOyS30iqV2vEtiLTY1gNTbNvTF1lwN/gg/g5CY1tRSrHcYODDOv0vw==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + + '@opentelemetry/resource-detector-gcp@0.29.11': + resolution: {integrity: sha512-07wJx4nyxD/c2z3n70OQOg8fmoO/baTsq8uU+f7tZaehRNQx76MPkRbV2L902N40Z21SPIG8biUZ30OXE9tOIg==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@opentelemetry/resources@1.26.0': resolution: {integrity: sha512-CPNYchBE7MBecCSVy0HKpUISEeJOniWqcHaAHpmasZ3j9o6V3AyBzhRc90jdmemq0HOxDr6ylhUbDhBqqPpeNw==} engines: {node: '>=14'} @@ -6456,6 +6600,10 @@ packages: peerDependencies: '@opentelemetry/api': ^1.1.0 + '@opentelemetry/winston-transport@0.6.0': + resolution: {integrity: sha512-paYrOThvm8cjSB3fQYdRzx+RVTcnTfzqInUH68SEX8frBLyn3FS0KDJJQc3Q3bamfec2J9KEkubHcAzq6OkEVw==} + engines: {node: '>=14'} + '@parcel/watcher-android-arm64@2.4.1': resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} engines: {node: '>= 10.0.0'} @@ -7135,6 +7283,9 @@ packages: '@types/body-parser@1.19.5': resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + '@types/bunyan@1.8.9': + resolution: {integrity: sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==} + '@types/cacheable-request@6.0.3': resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} @@ -7267,6 +7418,9 @@ packages: '@types/md5@2.3.5': resolution: {integrity: sha512-/i42wjYNgE6wf0j2bcTX6kuowmdL/6PE4IVitMpm2eYKBUuYCprdcWVK+xEF0gcV6ufMCRhtxmReGfc6hIK7Jw==} + '@types/memcached@2.2.10': + resolution: {integrity: sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==} + '@types/methods@1.1.4': resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==} @@ -7309,13 +7463,8 @@ packages: '@types/node@22.5.3': resolution: {integrity: sha512-njripolh85IA9SQGTAqbmnNZTdxv7X/4OYGPz8tgy5JDr8MP+uDBa921GpYEoDDnwm0Hmn5ZPeJgiiSTPoOzkQ==} -<<<<<<< HEAD - '@types/node@22.5.5': - resolution: {integrity: sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==} -======= '@types/node@22.7.4': resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==} ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -7377,6 +7526,9 @@ packages: '@types/supertest@6.0.2': resolution: {integrity: sha512-137ypx2lk/wTQbW6An6safu9hXmajAifU/s7szAHLN/FeIm5w7yR0Wkl9fdJMRSHwOn4HLAI0DaB2TOORuhPDg==} + '@types/tedious@4.0.14': + resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==} + '@types/tough-cookie@4.0.5': resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} @@ -7627,8 +7779,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} ansi-styles@2.2.1: @@ -7917,8 +8069,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - browserslist@4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -8009,8 +8161,8 @@ packages: caniuse-lite@1.0.30001641: resolution: {integrity: sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==} - caniuse-lite@1.0.30001660: - resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} + caniuse-lite@1.0.30001666: + resolution: {integrity: sha512-gD14ICmoV5ZZM1OdzPWmpx+q4GyefaK06zi8hmfHV5xe4/2nOQX3+Dw5o+fSqOws2xVwL9j+anOPFwHzdEdV4g==} capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -8112,6 +8264,9 @@ packages: cjs-module-lexer@1.3.1: resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==} + cjs-module-lexer@1.4.1: + resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} + clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -8836,8 +8991,8 @@ packages: electron-to-chromium@1.4.827: resolution: {integrity: sha512-VY+J0e4SFcNfQy19MEoMdaIcZLmDCprqvBtkii1WTCTQHpRvf5N8+3kTYCgL/PcntvwQvmMJWTuDPsq+IlhWKQ==} - electron-to-chromium@1.5.25: - resolution: {integrity: sha512-kMb204zvK3PsSlgvvwzI3wBIcAw15tRkYk+NQdsjdDtcQWTp2RABbMQ9rUBy8KNEOM+/E6ep+XC3AykiWZld4g==} + electron-to-chromium@1.5.31: + resolution: {integrity: sha512-QcDoBbQeYt0+3CWcK/rEbuHvwpbT/8SV9T3OSgs6cX1FlcUAkgrkqbg9zLnDrMM/rLamzQwal4LYFCiWk861Tg==} elliptic@6.5.5: resolution: {integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==} @@ -8846,8 +9001,8 @@ packages: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} - emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -8972,6 +9127,10 @@ packages: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} @@ -9470,6 +9629,10 @@ packages: resolution: {integrity: sha512-R9QGdv8j4/dlNoQbX3hSaK/S0rkMijqjVvW3YM06CoBdbU/VdKd159j4hePpng0KuE6Lh6JJ7UdmVGJZFcAG1w==} engines: {node: '>=14'} + gaxios@6.7.1: + resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} + engines: {node: '>=14'} + gcp-metadata@6.1.0: resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} engines: {node: '>=14'} @@ -9884,6 +10047,10 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} @@ -9906,6 +10073,9 @@ packages: import-in-the-middle@1.11.0: resolution: {integrity: sha512-5DimNQGoe0pLUHbR9qK84iWaWjjbsxiqXnw6Qz64+azRgleqv9k2kTt5fw7QsOpmaGYtuxxursnPPsnTKEx10Q==} + import-in-the-middle@1.11.2: + resolution: {integrity: sha512-gK6Rr6EykBcc6cVWRSBR5TWf8nn6hZMYSRYqCcHa0l0d1fPK7JSYo6+Mlmck76jIX9aL/IZ71c06U2VpFwl1zA==} + import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} @@ -10290,6 +10460,10 @@ packages: resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} engines: {node: '>=18'} + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + is-upper-case@2.0.2: resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==} @@ -10529,8 +10703,8 @@ packages: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true - jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + jiti@2.1.0: + resolution: {integrity: sha512-Nftp80J8poC3u+93ZxpjstsgfQ5d0o5qyD6yStv32sgnWr74xRxBppEwsUoA/GIdrJpgGRkC1930YkLcAsFdSw==} hasBin: true jmespath@0.16.0: @@ -10585,6 +10759,11 @@ packages: engines: {node: '>=4'} hasBin: true + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + jsii-pacmak@1.98.0: resolution: {integrity: sha512-p2H8IbiI3RNIUg+oRcJ9Xu1I7CgJUxCMpUl5IPzWAjz1qzhIKOzlkaAMGJfJZJQtib5kWI2OmZ6xBZScWg16+Q==} engines: {node: '>= 14.17.0'} @@ -13188,6 +13367,9 @@ packages: tiny-inflate@1.0.3: resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + tinyexec@0.3.0: + resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + title-case@3.0.3: resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} @@ -13347,38 +13529,38 @@ packages: tunnel-ssh@4.1.6: resolution: {integrity: sha512-y7+x+T3F3rkx2Zov5Tk9DGfeEBVAdWU3A/91E0Dk5rrZ/VFIlpV2uhhRuaISJUdyG0N+Lcp1fXZMXz+ovPt5vA==} - turbo-darwin-64@2.1.1: - resolution: {integrity: sha512-aYNuJpZlCoi0Htd79fl/2DywpewGKijdXeOfg9KzNuPVKzSMYlAXuAlNGh0MKjiOcyqxQGL7Mq9LFhwA0VpDpQ==} + turbo-darwin-64@2.1.3: + resolution: {integrity: sha512-ouJOm0g0YyoBuhmikEujVCBGo3Zr0lbSOWFIsQtWUTItC88F2w2byhjtsYGPXQwMlTbXwmoBU2lOCfWNkeEwHQ==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.1.1: - resolution: {integrity: sha512-tifJKD8yHY48rHXPMcM8o1jI/Jk2KCaXiNjTKvvy9Zsim61BZksNVLelIbrRoCGwAN6PUBZO2lGU5iL/TQJ5Pw==} + turbo-darwin-arm64@2.1.3: + resolution: {integrity: sha512-j2FOJsK4LAOtHQlb3Oom0yWB/Vi0nF1ljInr311mVzHoFAJRZtfW2fRvdZRb/lBUwjSp8be58qWHzANIcrA0OA==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.1.1: - resolution: {integrity: sha512-Js6d/bSQe9DuV9c7ITXYpsU/ADzFHABdz1UIHa7Oqjj9VOEbFeA9WpAn0c+mdJrVD+IXJFbbDZUjN7VYssmtcg==} + turbo-linux-64@2.1.3: + resolution: {integrity: sha512-ubRHkI1gSel7H7wsmxKK8C9UlLWqg/2dkCC88LFupaK6TKgvBKqDqA0Z1M9C/escK0Jsle2k0H8bybV9OYIl4Q==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.1.1: - resolution: {integrity: sha512-LidzTCq0yvQ+N8w8Qub9FmhQ/mmEIeoqFi7DSupekEV2EjvE9jw/zYc9Pk67X+g7dHVfgOnvVzmrjChdxpFePw==} + turbo-linux-arm64@2.1.3: + resolution: {integrity: sha512-LffUL+e5wv7BtD6DgnM2kKOlDkMo2eRjhbAjVnrCD3wi2ug0tl6NDzajnHHjtaMyOnIf4AvzSKdLWsBxafGBQA==} cpu: [arm64] os: [linux] - turbo-windows-64@2.1.1: - resolution: {integrity: sha512-GKc9ZywKwy4xLDhwXd6H07yzl0TB52HjXMrFLyHGhCVnf/w0oq4sLJv2sjbvuarPjsyx4xnCBJ3m3oyL2XmFtA==} + turbo-windows-64@2.1.3: + resolution: {integrity: sha512-S9SvcZZoaq5jKr6kA6eF7/xgQhVn8Vh7PVy5lono9zybvhyL4eY++y2PaLToIgL8G9IcbLmgOC73ExNjFBg9XQ==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.1.1: - resolution: {integrity: sha512-oFKkMj11KKUv3xSK9/fhAEQTxLUp1Ol1EOktwc32+SFtEU0uls7kosAz0b+qe8k3pJGEMFdDPdqoEjyJidbxtQ==} + turbo-windows-arm64@2.1.3: + resolution: {integrity: sha512-twlEo8lRrGbrR6T/ZklUIquW3IlFCEtywklgVA81aIrSBm56+GEVpSrHhIlsx1hiYeSNrs+GpDwZGe+V7fvEVQ==} cpu: [arm64] os: [win32] - turbo@2.1.1: - resolution: {integrity: sha512-u9gUDkmR9dFS8b5kAYqIETK4OnzsS4l2ragJ0+soSMHh6VEeNHjTfSjk1tKxCqLyziCrPogadxP680J+v6yGHw==} + turbo@2.1.3: + resolution: {integrity: sha512-lY0yj2GH2a2a3NExZ3rGe+rHUVeFE2aXuRAue57n+08E7Z7N7YCmynju0kPC1grAQzERmoLpKrmzmWd+PNiADw==} hasBin: true turndown@7.2.0: @@ -13586,6 +13768,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + upper-case-first@2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} @@ -15064,17 +15252,22 @@ snapshots: '@babel/highlight': 7.24.7 picocolors: 1.0.1 + '@babel/code-frame@7.25.7': + dependencies: + '@babel/highlight': 7.25.7 + picocolors: 1.1.0 + '@babel/compat-data@7.24.4': {} '@babel/compat-data@7.24.8': {} - '@babel/compat-data@7.25.4': + '@babel/compat-data@7.25.7': optional: true '@babel/core@7.24.5': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 '@babel/generator': 7.24.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) @@ -15094,7 +15287,7 @@ snapshots: '@babel/core@7.24.8': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 '@babel/generator': 7.24.8 '@babel/helper-compilation-targets': 7.24.8 '@babel/helper-module-transforms': 7.24.8(@babel/core@7.24.8) @@ -15111,18 +15304,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/core@7.25.2': + '@babel/core@7.25.7': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7) + '@babel/helpers': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 convert-source-map: 2.0.0 debug: 4.3.7 gensync: 1.0.0-beta.2 @@ -15153,12 +15346,12 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/generator@7.25.6': + '@babel/generator@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + jsesc: 3.0.2 optional: true '@babel/helper-annotate-as-pure@7.22.5': @@ -15181,11 +15374,11 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-compilation-targets@7.25.2': + '@babel/helper-compilation-targets@7.25.7': dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 + '@babel/compat-data': 7.25.7 + '@babel/helper-validator-option': 7.25.7 + browserslist: 4.24.0 lru-cache: 5.1.1 semver: 6.3.1 optional: true @@ -15242,6 +15435,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5)': dependencies: '@babel/core': 7.24.5 @@ -15262,13 +15463,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': + '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-simple-access': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color optional: true @@ -15297,6 +15498,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-simple-access@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': dependencies: '@babel/types': 7.24.8 @@ -15313,14 +15522,22 @@ snapshots: '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-string-parser@7.25.7': + optional: true + '@babel/helper-validator-identifier@7.24.5': {} '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-identifier@7.25.7': {} + '@babel/helper-validator-option@7.23.5': {} '@babel/helper-validator-option@7.24.8': {} + '@babel/helper-validator-option@7.25.7': + optional: true + '@babel/helpers@7.24.5': dependencies: '@babel/template': 7.24.0 @@ -15334,10 +15551,10 @@ snapshots: '@babel/template': 7.24.7 '@babel/types': 7.24.8 - '@babel/helpers@7.25.6': + '@babel/helpers@7.25.7': dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 optional: true '@babel/highlight@7.24.5': @@ -15354,6 +15571,13 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.1 + '@babel/highlight@7.25.7': + dependencies: + '@babel/helper-validator-identifier': 7.25.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.0 + '@babel/parser@7.24.5': dependencies: '@babel/types': 7.24.5 @@ -15362,9 +15586,9 @@ snapshots: dependencies: '@babel/types': 7.24.7 - '@babel/parser@7.25.6': + '@babel/parser@7.25.7': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 optional: true '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.8)': @@ -15392,9 +15616,9 @@ snapshots: '@babel/core': 7.24.8 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.5 optional: true @@ -15408,9 +15632,9 @@ snapshots: '@babel/core': 7.24.8 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.5 optional: true @@ -15424,9 +15648,9 @@ snapshots: '@babel/core': 7.24.8 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.5 optional: true @@ -15450,9 +15674,9 @@ snapshots: '@babel/core': 7.24.8 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.5 optional: true @@ -15466,9 +15690,9 @@ snapshots: '@babel/core': 7.24.8 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.5 optional: true @@ -15492,9 +15716,9 @@ snapshots: '@babel/core': 7.24.8 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.5 optional: true @@ -15508,9 +15732,9 @@ snapshots: '@babel/core': 7.24.8 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.5 optional: true @@ -15524,9 +15748,9 @@ snapshots: '@babel/core': 7.24.8 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.5 optional: true @@ -15540,9 +15764,9 @@ snapshots: '@babel/core': 7.24.8 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.5 optional: true @@ -15556,9 +15780,9 @@ snapshots: '@babel/core': 7.24.8 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.5 optional: true @@ -15572,9 +15796,9 @@ snapshots: '@babel/core': 7.24.8 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.5 optional: true @@ -15588,9 +15812,9 @@ snapshots: '@babel/core': 7.24.8 '@babel/helper-plugin-utils': 7.24.5 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@babel/helper-plugin-utils': 7.24.5 optional: true @@ -15743,16 +15967,16 @@ snapshots: '@babel/parser': 7.24.8 '@babel/types': 7.24.7 - '@babel/template@7.25.0': + '@babel/template@7.25.7': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 optional: true '@babel/traverse@7.24.5': dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 '@babel/generator': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 @@ -15767,7 +15991,7 @@ snapshots: '@babel/traverse@7.24.8': dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 '@babel/generator': 7.24.8 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 @@ -15780,13 +16004,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/traverse@7.25.6': + '@babel/traverse@7.25.7': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: @@ -15811,10 +16035,10 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - '@babel/types@7.25.6': + '@babel/types@7.25.7': dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 optional: true @@ -16016,15 +16240,6 @@ snapshots: dependencies: commander: 12.1.0 -<<<<<<< HEAD - '@commitlint/cli@19.4.1(@types/node@22.5.5)(typescript@5.7.0-dev.20241003)': - dependencies: - '@commitlint/format': 19.3.0 - '@commitlint/lint': 19.4.1 - '@commitlint/load': 19.4.0(@types/node@22.5.5)(typescript@5.7.0-dev.20241003) - '@commitlint/read': 19.4.0 - '@commitlint/types': 19.0.3 -======= '@commitlint/cli@19.4.1(@types/node@22.7.4)(typescript@5.7.0-dev.20241007)': dependencies: '@commitlint/format': 19.5.0 @@ -16032,69 +16247,59 @@ snapshots: '@commitlint/load': 19.4.0(@types/node@22.7.4)(typescript@5.7.0-dev.20241007) '@commitlint/read': 19.5.0 '@commitlint/types': 19.5.0 ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) execa: 8.0.1 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - typescript - '@commitlint/config-conventional@19.4.1': + '@commitlint/config-conventional@19.5.0': dependencies: - '@commitlint/types': 19.0.3 + '@commitlint/types': 19.5.0 conventional-changelog-conventionalcommits: 7.0.2 - '@commitlint/config-validator@19.0.3': + '@commitlint/config-validator@19.5.0': dependencies: - '@commitlint/types': 19.0.3 - ajv: 8.16.0 + '@commitlint/types': 19.5.0 + ajv: 8.17.1 - '@commitlint/ensure@19.0.3': + '@commitlint/ensure@19.5.0': dependencies: - '@commitlint/types': 19.0.3 + '@commitlint/types': 19.5.0 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 lodash.snakecase: 4.1.1 lodash.startcase: 4.4.0 lodash.upperfirst: 4.3.1 - '@commitlint/execute-rule@19.0.0': {} + '@commitlint/execute-rule@19.5.0': {} - '@commitlint/format@19.3.0': + '@commitlint/format@19.5.0': dependencies: - '@commitlint/types': 19.0.3 + '@commitlint/types': 19.5.0 chalk: 5.3.0 - '@commitlint/is-ignored@19.2.2': + '@commitlint/is-ignored@19.5.0': dependencies: - '@commitlint/types': 19.0.3 + '@commitlint/types': 19.5.0 semver: 7.6.3 - '@commitlint/lint@19.4.1': + '@commitlint/lint@19.5.0': dependencies: - '@commitlint/is-ignored': 19.2.2 - '@commitlint/parse': 19.0.3 - '@commitlint/rules': 19.4.1 - '@commitlint/types': 19.0.3 + '@commitlint/is-ignored': 19.5.0 + '@commitlint/parse': 19.5.0 + '@commitlint/rules': 19.5.0 + '@commitlint/types': 19.5.0 -<<<<<<< HEAD - '@commitlint/load@19.4.0(@types/node@22.5.5)(typescript@5.7.0-dev.20241003)': -======= '@commitlint/load@19.4.0(@types/node@22.7.4)(typescript@5.7.0-dev.20241007)': ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) dependencies: - '@commitlint/config-validator': 19.0.3 - '@commitlint/execute-rule': 19.0.0 - '@commitlint/resolve-extends': 19.1.0 - '@commitlint/types': 19.0.3 + '@commitlint/config-validator': 19.5.0 + '@commitlint/execute-rule': 19.5.0 + '@commitlint/resolve-extends': 19.5.0 + '@commitlint/types': 19.5.0 chalk: 5.3.0 -<<<<<<< HEAD - cosmiconfig: 9.0.0(typescript@5.7.0-dev.20241003) - cosmiconfig-typescript-loader: 5.0.0(@types/node@22.5.5)(cosmiconfig@9.0.0(typescript@5.7.0-dev.20241003))(typescript@5.7.0-dev.20241003) -======= cosmiconfig: 9.0.0(typescript@5.7.0-dev.20241007) cosmiconfig-typescript-loader: 5.0.0(@types/node@22.7.4)(cosmiconfig@9.0.0(typescript@5.7.0-dev.20241007))(typescript@5.7.0-dev.20241007) ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -16102,46 +16307,45 @@ snapshots: - '@types/node' - typescript - '@commitlint/message@19.0.0': {} + '@commitlint/message@19.5.0': {} - '@commitlint/parse@19.0.3': + '@commitlint/parse@19.5.0': dependencies: - '@commitlint/types': 19.0.3 + '@commitlint/types': 19.5.0 conventional-changelog-angular: 7.0.0 conventional-commits-parser: 5.0.0 - '@commitlint/read@19.4.0': + '@commitlint/read@19.5.0': dependencies: - '@commitlint/top-level': 19.0.0 - '@commitlint/types': 19.0.3 - execa: 8.0.1 + '@commitlint/top-level': 19.5.0 + '@commitlint/types': 19.5.0 git-raw-commits: 4.0.0 minimist: 1.2.8 + tinyexec: 0.3.0 - '@commitlint/resolve-extends@19.1.0': + '@commitlint/resolve-extends@19.5.0': dependencies: - '@commitlint/config-validator': 19.0.3 - '@commitlint/types': 19.0.3 + '@commitlint/config-validator': 19.5.0 + '@commitlint/types': 19.5.0 global-directory: 4.0.1 import-meta-resolve: 4.1.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 - '@commitlint/rules@19.4.1': + '@commitlint/rules@19.5.0': dependencies: - '@commitlint/ensure': 19.0.3 - '@commitlint/message': 19.0.0 - '@commitlint/to-lines': 19.0.0 - '@commitlint/types': 19.0.3 - execa: 8.0.1 + '@commitlint/ensure': 19.5.0 + '@commitlint/message': 19.5.0 + '@commitlint/to-lines': 19.5.0 + '@commitlint/types': 19.5.0 - '@commitlint/to-lines@19.0.0': {} + '@commitlint/to-lines@19.5.0': {} - '@commitlint/top-level@19.0.0': + '@commitlint/top-level@19.5.0': dependencies: find-up: 7.0.0 - '@commitlint/types@19.0.3': + '@commitlint/types@19.5.0': dependencies: '@types/conventional-commits-parser': 5.0.0 chalk: 5.3.0 @@ -16490,7 +16694,7 @@ snapshots: fast-deep-equal: 3.1.3 functional-red-black-tree: 1.0.1 google-gax: 4.3.3(encoding@0.1.13) - protobufjs: 7.2.6 + protobufjs: 7.3.2 transitivePeerDependencies: - encoding - supports-color @@ -17530,6 +17734,60 @@ snapshots: '@opentelemetry/api@1.9.0': {} + '@opentelemetry/auto-instrumentations-node@0.50.0(@opentelemetry/api@1.9.0)(encoding@0.1.13)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-amqplib': 0.42.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-aws-lambda': 0.44.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-aws-sdk': 0.44.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-bunyan': 0.41.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-cassandra-driver': 0.41.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-connect': 0.39.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-cucumber': 0.9.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-dataloader': 0.12.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-dns': 0.39.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-express': 0.42.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fastify': 0.39.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fs': 0.15.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-generic-pool': 0.39.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-graphql': 0.43.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-grpc': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-hapi': 0.41.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-http': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-ioredis': 0.43.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-kafkajs': 0.3.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-knex': 0.40.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-koa': 0.43.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-lru-memoizer': 0.40.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-memcached': 0.39.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongodb': 0.47.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongoose': 0.42.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql': 0.41.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql2': 0.41.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-nestjs-core': 0.40.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-net': 0.39.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-pg': 0.44.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-pino': 0.42.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-redis': 0.42.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-redis-4': 0.42.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-restify': 0.41.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-router': 0.40.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-socket.io': 0.42.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-tedious': 0.14.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-undici': 0.6.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-winston': 0.40.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-alibaba-cloud': 0.29.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-aws': 1.6.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-azure': 0.2.11(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-container': 0.4.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resource-detector-gcp': 0.29.11(@opentelemetry/api@1.9.0)(encoding@0.1.13) + '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-node': 0.53.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - encoding + - supports-color + '@opentelemetry/context-async-hooks@1.26.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17568,6 +17826,27 @@ snapshots: '@opentelemetry/sdk-logs': 0.53.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-grpc@0.53.0(@opentelemetry/api@1.9.0)': + dependencies: + '@grpc/grpc-js': 1.10.7 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-metrics-otlp-http': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 1.26.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/exporter-metrics-otlp-http@0.53.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-grpc@0.53.0(@opentelemetry/api@1.9.0)': dependencies: '@grpc/grpc-js': 1.10.7 @@ -17639,6 +17918,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-bunyan@0.41.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.53.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@types/bunyan': 1.8.9 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-cassandra-driver@0.41.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-connect@0.39.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17649,6 +17945,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-cucumber@0.9.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-dataloader@0.12.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17656,6 +17960,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-dns@0.39.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-express@0.42.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17696,6 +18008,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-grpc@0.53.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-hapi@0.41.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17756,6 +18076,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-memcached@0.39.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + '@types/memcached': 2.2.10 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-mongodb@0.47.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17819,6 +18148,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-pino@0.42.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.53.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-redis-4@0.42.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17828,6 +18166,49 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-redis@0.42.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-restify@0.41.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-router@0.40.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-socket.io@0.42.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-tedious@0.14.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + '@types/tedious': 4.0.14 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-undici@0.6.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17836,6 +18217,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-winston@0.40.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.53.0 + '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17906,6 +18295,12 @@ snapshots: '@opentelemetry/redis-common@0.36.2': {} + '@opentelemetry/resource-detector-alibaba-cloud@0.29.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/resource-detector-aws@1.6.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17913,6 +18308,30 @@ snapshots: '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/resource-detector-azure@0.2.11(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + + '@opentelemetry/resource-detector-container@0.4.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + + '@opentelemetry/resource-detector-gcp@0.29.11(@opentelemetry/api@1.9.0)(encoding@0.1.13)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.27.0 + gcp-metadata: 6.1.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + - supports-color + '@opentelemetry/resources@1.26.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17978,6 +18397,11 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/winston-transport@0.6.0': + dependencies: + '@opentelemetry/api-logs': 0.53.0 + winston-transport: 4.7.0 + '@parcel/watcher-android-arm64@2.4.1': optional: true @@ -18448,7 +18872,7 @@ snapshots: '@sentry/opentelemetry': 8.33.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.27.0) '@sentry/types': 8.33.0 '@sentry/utils': 8.33.0 - import-in-the-middle: 1.11.0 + import-in-the-middle: 1.11.2 transitivePeerDependencies: - supports-color @@ -18501,7 +18925,7 @@ snapshots: '@slack/logger@3.0.0': dependencies: - '@types/node': 22.5.3 + '@types/node': 22.7.4 '@slack/types@2.14.0': {} @@ -18927,7 +19351,7 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 22.5.3 + '@types/node': 22.7.4 '@types/aws-lambda@8.10.143': {} @@ -18959,18 +19383,15 @@ snapshots: '@types/connect': 3.4.38 '@types/node': 22.7.4 -<<<<<<< HEAD -======= '@types/bunyan@1.8.9': dependencies: '@types/node': 22.7.4 ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) '@types/cacheable-request@6.0.3': dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 22.5.3 + '@types/node': 22.7.4 '@types/responselike': 1.0.3 '@types/caseless@0.12.5': @@ -18980,21 +19401,17 @@ snapshots: '@types/connect@3.4.36': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 '@types/connect@3.4.38': dependencies: -<<<<<<< HEAD - '@types/node': 22.5.3 -======= '@types/node': 22.7.4 ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) '@types/content-disposition@0.5.8': {} '@types/conventional-commits-parser@5.0.0': dependencies: - '@types/node': 22.5.3 + '@types/node': 22.7.4 '@types/cookiejar@2.1.5': {} @@ -19003,7 +19420,7 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 4.17.21 '@types/keygrip': 1.0.6 - '@types/node': 22.5.3 + '@types/node': 22.7.4 '@types/cors@2.8.17': dependencies: @@ -19011,7 +19428,7 @@ snapshots: '@types/cross-spawn@6.0.2': dependencies: - '@types/node': 22.5.3 + '@types/node': 22.7.4 '@types/debug@4.1.8': dependencies: @@ -19042,11 +19459,11 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.5.5 + '@types/node': 22.7.4 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.5.3 + '@types/node': 22.7.4 '@types/graphql-depth-limit@1.1.6': dependencies: @@ -19072,14 +19489,14 @@ snapshots: '@types/ioredis-mock@8.2.5': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 ioredis: 5.4.1 transitivePeerDependencies: - supports-color '@types/is-stream@1.1.0': dependencies: - '@types/node': 22.5.3 + '@types/node': 22.7.4 '@types/istanbul-lib-coverage@2.0.6': {} @@ -19110,11 +19527,7 @@ snapshots: '@types/keyv@3.1.4': dependencies: -<<<<<<< HEAD - '@types/node': 22.5.5 -======= '@types/node': 22.7.4 ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) '@types/koa-compose@3.2.8': dependencies: @@ -19141,13 +19554,10 @@ snapshots: '@types/md5@2.3.5': {} -<<<<<<< HEAD -======= '@types/memcached@2.2.10': dependencies: '@types/node': 22.7.4 ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) '@types/methods@1.1.4': {} '@types/mime@1.3.5': {} @@ -19162,15 +19572,11 @@ snapshots: '@types/mute-stream@0.0.1': dependencies: - '@types/node': 22.5.3 + '@types/node': 22.7.4 '@types/mute-stream@0.0.4': dependencies: -<<<<<<< HEAD - '@types/node': 22.5.5 -======= '@types/node': 22.7.4 ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) '@types/mysql@2.15.26': dependencies: @@ -19200,11 +19606,7 @@ snapshots: dependencies: undici-types: 6.19.8 -<<<<<<< HEAD - '@types/node@22.5.5': -======= '@types/node@22.7.4': ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) dependencies: undici-types: 6.19.8 @@ -19232,7 +19634,7 @@ snapshots: '@types/pg@8.6.1': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.7.4 pg-protocol: 1.7.0 pg-types: 2.2.0 @@ -19243,14 +19645,14 @@ snapshots: '@types/request@2.48.12': dependencies: '@types/caseless': 0.12.5 - '@types/node': 22.5.5 + '@types/node': 22.7.4 '@types/tough-cookie': 4.0.5 form-data: 2.5.1 optional: true '@types/responselike@1.0.3': dependencies: - '@types/node': 22.5.3 + '@types/node': 22.7.4 '@types/retry@0.12.0': {} @@ -19284,13 +19686,10 @@ snapshots: '@types/methods': 1.1.4 '@types/superagent': 8.1.7 -<<<<<<< HEAD -======= '@types/tedious@4.0.14': dependencies: '@types/node': 22.7.4 ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) '@types/tough-cookie@4.0.5': optional: true @@ -19308,7 +19707,7 @@ snapshots: '@types/ws@8.5.10': dependencies: - '@types/node': 22.5.3 + '@types/node': 22.7.4 '@types/yargs-parser@21.0.3': {} @@ -19318,7 +19717,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.5.3 + '@types/node': 22.7.4 optional: true '@types/yoga-layout@1.9.2': {} @@ -19584,7 +19983,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.0.1: {} + ansi-regex@6.1.0: {} ansi-styles@2.2.1: {} @@ -19810,13 +20209,13 @@ snapshots: transitivePeerDependencies: - supports-color - babel-jest@29.7.0(@babel/core@7.25.2): + babel-jest@29.7.0(@babel/core@7.25.7): dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.25.2) + babel-preset-jest: 29.6.3(@babel/core@7.25.7) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -19875,21 +20274,21 @@ snapshots: '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.8) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.8) - babel-preset-current-node-syntax@1.0.1(@babel/core@7.25.2): - dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) + babel-preset-current-node-syntax@1.0.1(@babel/core@7.25.7): + dependencies: + '@babel/core': 7.25.7 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.7) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.7) optional: true babel-preset-fbjs@3.4.0(@babel/core@7.24.8): @@ -19938,11 +20337,11 @@ snapshots: babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.8) - babel-preset-jest@29.6.3(@babel/core@7.25.2): + babel-preset-jest@29.6.3(@babel/core@7.25.7): dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.25.2) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.25.7) optional: true balanced-match@1.0.2: {} @@ -19961,8 +20360,7 @@ snapshots: before-after-hook@3.0.2: {} - bignumber.js@9.1.2: - optional: true + bignumber.js@9.1.2: {} binary-extensions@2.3.0: {} @@ -20043,12 +20441,12 @@ snapshots: node-releases: 2.0.14 update-browserslist-db: 1.1.0(browserslist@4.23.2) - browserslist@4.23.3: + browserslist@4.24.0: dependencies: - caniuse-lite: 1.0.30001660 - electron-to-chromium: 1.5.25 + caniuse-lite: 1.0.30001666 + electron-to-chromium: 1.5.31 node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.3) + update-browserslist-db: 1.1.1(browserslist@4.24.0) optional: true bs-logger@0.2.6: @@ -20148,7 +20546,7 @@ snapshots: caniuse-lite@1.0.30001641: {} - caniuse-lite@1.0.30001660: + caniuse-lite@1.0.30001666: optional: true capital-case@1.0.4: @@ -20367,6 +20765,8 @@ snapshots: cjs-module-lexer@1.3.1: {} + cjs-module-lexer@1.4.1: {} + clean-stack@2.2.0: {} clean-stack@5.2.0: @@ -20703,17 +21103,10 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 -<<<<<<< HEAD - cosmiconfig-typescript-loader@5.0.0(@types/node@22.5.5)(cosmiconfig@9.0.0(typescript@5.7.0-dev.20241003))(typescript@5.7.0-dev.20241003): - dependencies: - '@types/node': 22.5.5 - cosmiconfig: 9.0.0(typescript@5.7.0-dev.20241003) -======= cosmiconfig-typescript-loader@5.0.0(@types/node@22.7.4)(cosmiconfig@9.0.0(typescript@5.7.0-dev.20241007))(typescript@5.7.0-dev.20241007): dependencies: '@types/node': 22.7.4 cosmiconfig: 9.0.0(typescript@5.7.0-dev.20241007) ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) jiti: 1.21.0 typescript: 5.7.0-dev.20241007 @@ -21128,7 +21521,7 @@ snapshots: electron-to-chromium@1.4.827: {} - electron-to-chromium@1.5.25: + electron-to-chromium@1.5.31: optional: true elliptic@6.5.5: @@ -21143,7 +21536,7 @@ snapshots: emittery@0.13.1: {} - emoji-regex@10.3.0: {} + emoji-regex@10.4.0: {} emoji-regex@8.0.0: {} @@ -21388,6 +21781,8 @@ snapshots: escalade@3.1.2: {} + escalade@3.2.0: {} + escape-html@1.0.3: {} escape-string-regexp@1.0.5: {} @@ -21674,8 +22069,7 @@ snapshots: dependencies: type: 2.7.3 - extend@3.0.2: - optional: true + extend@3.0.2: {} external-editor@3.1.0: dependencies: @@ -21718,7 +22112,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fast-json-patch@3.1.1: {} @@ -22049,14 +22443,24 @@ snapshots: - supports-color optional: true + gaxios@6.7.1(encoding@0.1.13): + dependencies: + extend: 3.0.2 + https-proxy-agent: 7.0.5 + is-stream: 2.0.1 + node-fetch: 2.7.0(encoding@0.1.13) + uuid: 9.0.1 + transitivePeerDependencies: + - encoding + - supports-color + gcp-metadata@6.1.0(encoding@0.1.13): dependencies: - gaxios: 6.5.0(encoding@0.1.13) + gaxios: 6.7.1(encoding@0.1.13) json-bigint: 1.0.0 transitivePeerDependencies: - encoding - supports-color - optional: true generate-function@2.3.1: dependencies: @@ -22205,7 +22609,7 @@ snapshots: dir-glob: 3.0.1 fast-glob: 3.3.2 glob: 7.2.3 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 @@ -22222,7 +22626,7 @@ snapshots: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 @@ -22231,7 +22635,7 @@ snapshots: dependencies: '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 @@ -22558,6 +22962,8 @@ snapshots: ignore@5.3.1: {} + ignore@5.3.2: {} + immediate@3.0.6: {} immutable@3.7.6: {} @@ -22583,6 +22989,13 @@ snapshots: cjs-module-lexer: 1.3.1 module-details-from-path: 1.0.3 + import-in-the-middle@1.11.2: + dependencies: + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + cjs-module-lexer: 1.4.1 + module-details-from-path: 1.0.3 + import-local@3.1.0: dependencies: pkg-dir: 4.2.0 @@ -22964,6 +23377,8 @@ snapshots: is-unicode-supported@2.0.0: {} + is-unicode-supported@2.1.0: {} + is-upper-case@2.0.2: dependencies: tslib: 2.7.0 @@ -23083,7 +23498,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.3 + '@types/node': 22.7.4 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -23208,7 +23623,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.5.3 + '@types/node': 22.7.4 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -23333,7 +23748,7 @@ snapshots: '@jest/types': 29.6.3 '@types/node': 22.7.4 chalk: 4.1.2 - cjs-module-lexer: 1.3.1 + cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 glob: 7.2.3 graceful-fs: 4.2.11 @@ -23405,7 +23820,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.5.3 + '@types/node': 22.7.4 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -23424,7 +23839,7 @@ snapshots: jiti@1.21.0: {} - jiti@1.21.6: + jiti@2.1.0: optional: true jmespath@0.16.0: {} @@ -23474,6 +23889,9 @@ snapshots: jsesc@2.5.2: {} + jsesc@3.0.2: + optional: true + jsii-pacmak@1.98.0(jsii-rosetta@5.4.14): dependencies: '@jsii/check-node': 1.98.0 @@ -23538,7 +23956,6 @@ snapshots: json-bigint@1.0.0: dependencies: bignumber.js: 9.1.2 - optional: true json-buffer@3.0.1: {} @@ -24524,7 +24941,7 @@ snapshots: cli-cursor: 4.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 - is-unicode-supported: 2.0.0 + is-unicode-supported: 2.1.0 log-symbols: 6.0.0 stdin-discarder: 0.2.2 string-width: 7.2.0 @@ -24664,14 +25081,14 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 parse-json@8.1.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 index-to-position: 0.1.2 type-fest: 4.21.0 @@ -24812,8 +25229,7 @@ snapshots: picocolors@1.0.1: {} - picocolors@1.1.0: - optional: true + picocolors@1.1.0: {} picomatch@2.3.1: {} @@ -24846,11 +25262,11 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.1): + postcss-load-config@6.0.1(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.1): dependencies: lilconfig: 3.1.1 optionalDependencies: - jiti: 1.21.6 + jiti: 2.1.0 postcss: 8.4.47 tsx: 4.19.1 yaml: 2.5.1 @@ -24985,7 +25401,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.5.3 + '@types/node': 22.7.4 long: 5.2.3 optional: true @@ -25001,11 +25417,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 -<<<<<<< HEAD - '@types/node': 22.5.3 -======= '@types/node': 22.7.4 ->>>>>>> bd2f6fa4 (feat(otel-collector): adding in the otel collector service) long: 5.2.3 protocols@2.0.1: {} @@ -25880,7 +26292,7 @@ snapshots: string-width@7.2.0: dependencies: - emoji-regex: 10.3.0 + emoji-regex: 10.4.0 get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 @@ -25928,7 +26340,7 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.1.0 strip-bom@3.0.0: {} @@ -26172,6 +26584,8 @@ snapshots: tiny-inflate@1.0.3: {} + tinyexec@0.3.0: {} + title-case@3.0.3: dependencies: tslib: 2.7.0 @@ -26268,7 +26682,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.24.8) - ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4): + ts-jest@29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(esbuild@0.23.0)(jest@29.7.0(@types/node@22.5.3)(ts-node@10.9.2(@types/node@22.5.3)(typescript@5.5.4)))(typescript@5.5.4): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 @@ -26282,10 +26696,10 @@ snapshots: typescript: 5.5.4 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.25.2) + babel-jest: 29.7.0(@babel/core@7.25.7) esbuild: 0.23.0 ts-log@2.2.5: {} @@ -26336,7 +26750,7 @@ snapshots: tsscmp@1.0.6: {} - tsup@8.2.4(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1): + tsup@8.2.4(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.5.4)(yaml@2.5.1): dependencies: bundle-require: 5.0.0(esbuild@0.23.0) cac: 6.7.14 @@ -26348,7 +26762,7 @@ snapshots: globby: 11.1.0 joycon: 3.1.1 picocolors: 1.0.1 - postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.1) + postcss-load-config: 6.0.1(jiti@2.1.0)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.1) resolve-from: 5.0.0 rollup: 4.21.1 source-map: 0.8.0-beta.0 @@ -26390,32 +26804,32 @@ snapshots: transitivePeerDependencies: - supports-color - turbo-darwin-64@2.1.1: + turbo-darwin-64@2.1.3: optional: true - turbo-darwin-arm64@2.1.1: + turbo-darwin-arm64@2.1.3: optional: true - turbo-linux-64@2.1.1: + turbo-linux-64@2.1.3: optional: true - turbo-linux-arm64@2.1.1: + turbo-linux-arm64@2.1.3: optional: true - turbo-windows-64@2.1.1: + turbo-windows-64@2.1.3: optional: true - turbo-windows-arm64@2.1.1: + turbo-windows-arm64@2.1.3: optional: true - turbo@2.1.1: + turbo@2.1.3: optionalDependencies: - turbo-darwin-64: 2.1.1 - turbo-darwin-arm64: 2.1.1 - turbo-linux-64: 2.1.1 - turbo-linux-arm64: 2.1.1 - turbo-windows-64: 2.1.1 - turbo-windows-arm64: 2.1.1 + turbo-darwin-64: 2.1.3 + turbo-darwin-arm64: 2.1.3 + turbo-linux-64: 2.1.3 + turbo-linux-arm64: 2.1.3 + turbo-windows-64: 2.1.3 + turbo-windows-arm64: 2.1.3 turndown@7.2.0: dependencies: @@ -26671,20 +27085,20 @@ snapshots: update-browserslist-db@1.0.15(browserslist@4.23.0): dependencies: browserslist: 4.23.0 - escalade: 3.1.2 - picocolors: 1.0.1 + escalade: 3.2.0 + picocolors: 1.1.0 update-browserslist-db@1.1.0(browserslist@4.23.2): dependencies: browserslist: 4.23.2 - escalade: 3.1.2 - picocolors: 1.0.1 + escalade: 3.2.0 + picocolors: 1.1.0 - update-browserslist-db@1.1.0(browserslist@4.23.3): + update-browserslist-db@1.1.1(browserslist@4.24.0): dependencies: - browserslist: 4.23.3 - escalade: 3.1.2 - picocolors: 1.0.1 + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 optional: true upper-case-first@2.0.2: @@ -26981,7 +27395,7 @@ snapshots: yargs@16.2.0: dependencies: cliui: 7.0.4 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -26991,7 +27405,7 @@ snapshots: yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 diff --git a/servers/client-api/config/router.yaml b/servers/client-api/config/router.yaml index 28412a902..af931ab75 100644 --- a/servers/client-api/config/router.yaml +++ b/servers/client-api/config/router.yaml @@ -48,19 +48,67 @@ headers: - propagate: named: 'web-request-user-agent' rename: 'gatwayUserAgent' - - propagate: - named: 'X-Amzn-Trace-Id' - propagate: named: 'transfersub' - propagate: named: 'web-request-snowplow-session-user-id' rename: 'gatewaySnowplowDomainSessionId' - # Sentry trace headers - - propagate: - named: 'sentry-trace' - - propagate: - named: 'baggage' +demand_control: + enabled: false + mode: measure + strategy: + static_estimated: + list_size: 10 + max: 1000 telemetry: + # instrumentation: + # instruments: + # router: + # http.server.active_requests: true # (default false) + # http.server.request.body.size: true # (default false) + # http.server.request.duration: true # (default false) + # subgraph: + # http.client.request.body.size: true # (default false) + # http.client.request.duration: true # (default false) + # http.client.response.body.size: true # (default false) + # # Costs are from https://www.apollographql.com/docs/graphos/routing/security/demand-control#examples + # supergraph: + # cost.estimated: + # attributes: + # cost.result: true + # graphql.operation.name: true + # cost.rejected.operations: + # type: histogram + # value: + # # Estimated cost is used to populate the histogram + # cost: estimated + # description: "Estimated cost per rejected operation." + # unit: delta + # condition: + # eq: + # # Only show rejected operations. + # - cost: result + # - "COST_ESTIMATED_TOO_EXPENSIVE" + # attributes: + # graphql.operation.name: true # Graphql operation name is added as an attribute + # events: + # supergraph: + # COST_DELTA_TOO_HIGH: + # message: "cost delta high" + # on: event_response + # level: error + # condition: + # gt: + # - cost: delta + # - 1000 + # attributes: + # graphql.operation.name: true + # cost.delta: true + # spans: + # supergraph: + # attributes: + # cost.estimated: true + apollo: send_variable_values: only: @@ -69,18 +117,66 @@ telemetry: - perPage # getCollections - slug # collectionBySlug exporters: + logging: + common: + resource: + 'environment.name': '${env.APP_ENVIRONMENT}' + 'service.name': 'client-api' + 'environment.namespace': pocket + # metrics: + # common: + # resource: + # 'environment.name': '${env.APP_ENVIRONMENT}' + # 'service.name': 'client-api' + # 'environment.namespace': pocket + # views: + # # https://www.apollographql.com/docs/graphos/routing/security/demand-control#configuring-instrument-output + # # Define a custom view because cost is different than the default latency-oriented view of OpenTelemetry + # - name: cost.* + # aggregation: + # histogram: + # buckets: + # - 0 + # - 10 + # - 100 + # - 1000 + # - 10000 + # - 100000 + # - 1000000 + # otlp: + # enabled: false + # endpoint: 'http://${env.OTLP_COLLECTOR_HOST:-localhost}:4317' + # protocol: grpc + # batch_processor: + # scheduled_delay: 10000ms # 10 secs export due to google cloud rate limits + # max_concurrent_exports: 1000 + # max_export_batch_size: 10000 + # max_export_timeout: 100s + # max_queue_size: 10000 tracing: common: resource: 'environment.name': '${env.APP_ENVIRONMENT}' - service_name: 'client-api' - sampler: always_on # (default) all requests are sampled (always_on|always_off|<0.0-1.0>) - parent_based_sampler: false + 'service.name': 'client-api' + 'environment.namespace': pocket + sampler: 0.01 # (default) all requests are sampled (always_on|always_off|<0.0-1.0>) + parent_based_sampler: true propagation: aws_xray: true + experimental_response_trace_id: enabled: true header_name: 'pocket-trace-id' + otlp: + enabled: true + endpoint: 'http://${env.OTLP_COLLECTOR_HOST:-localhost}:4317' + protocol: grpc + batch_processor: + scheduled_delay: 100ms + max_concurrent_exports: 1000 + max_export_batch_size: 10000 + max_export_timeout: 100s + max_queue_size: 10000 apq: router: cache: diff --git a/servers/list-api/package.json b/servers/list-api/package.json index 66fe18a79..1e6fb482e 100644 --- a/servers/list-api/package.json +++ b/servers/list-api/package.json @@ -29,6 +29,7 @@ "@pocket-tools/apollo-utils": "workspace:*", "@pocket-tools/int-mask": "workspace:*", "@pocket-tools/sentry": "workspace:*", + "@pocket-tools/tracing": "workspace:*", "@pocket-tools/ts-logger": "workspace:*", "@sentry/node": "8.33.0", "@snowplow/node-tracker": "3.24.3", @@ -72,4 +73,4 @@ "tsconfig": "workspace:*", "typescript": "5.5.4" } -} +} \ No newline at end of file diff --git a/servers/list-api/src/config/index.ts b/servers/list-api/src/config/index.ts index 46a462b36..7e1d0b135 100644 --- a/servers/list-api/src/config/index.ts +++ b/servers/list-api/src/config/index.ts @@ -124,10 +124,8 @@ export default { }, tracing: { host: process.env.OTLP_COLLECTOR_HOST || 'localhost', - serviceName: 'list-api', + release: process.env.GIT_SHA || '', + serviceName, graphQLDepth: 8, - samplingRatio: 0.01, - grpcDefaultPort: 4317, - httpDEfaultPort: 4318, }, }; diff --git a/servers/list-api/src/server/main.ts b/servers/list-api/src/server/main.ts index 4139b225b..f70d41171 100644 --- a/servers/list-api/src/server/main.ts +++ b/servers/list-api/src/server/main.ts @@ -1,20 +1,26 @@ import config from '../config'; import { initSentry, featureFlagTraceSampler } from '@pocket-tools/sentry'; import { getClient } from '../featureFlags'; +import { nodeSDKBuilder } from '@pocket-tools/tracing'; -const unleash = getClient(); +const unleashClient = getClient(); // Initialize sentry -initSentry({ +const sentry = initSentry({ ...config.sentry, - tracesSampler: featureFlagTraceSampler(unleash, config.sentry.samplerFlag), + skipOpenTelemetrySetup: true, + tracesSampler: featureFlagTraceSampler( + unleashClient, + config.sentry.samplerFlag, + ), debug: config.sentry.environment === 'development', }); -import { serverLogger } from '@pocket-tools/ts-logger'; -import { startServer } from './apollo'; - -startServer(config.app.port).then(() => { - serverLogger.info( - `🚀 Public server ready at http://localhost:${config.app.port}`, - ); +nodeSDKBuilder({ ...config.tracing, sentry: sentry }).then(() => { + startServer(config.app.port).then(() => { + serverLogger.info( + `🚀 Public server ready at http://localhost:${config.app.port}`, + ); + }); }); +import { serverLogger } from '@pocket-tools/ts-logger'; +import { startServer } from './apollo'; \ No newline at end of file diff --git a/servers/parser-graphql-wrapper/package.json b/servers/parser-graphql-wrapper/package.json index 3f2ecd1e8..5f021cd48 100644 --- a/servers/parser-graphql-wrapper/package.json +++ b/servers/parser-graphql-wrapper/package.json @@ -34,6 +34,7 @@ "@pocket-tools/image-utils": "workspace:*", "@pocket-tools/int-mask": "workspace:*", "@pocket-tools/sentry": "workspace:*", + "@pocket-tools/tracing": "workspace:*", "@pocket-tools/ts-logger": "workspace:*", "@sentry/node": "8.33.0", "cors": "2.8.5", @@ -81,4 +82,4 @@ "tsconfig": "workspace:*", "typescript": "5.5.4" } -} +} \ No newline at end of file diff --git a/servers/parser-graphql-wrapper/src/config/index.ts b/servers/parser-graphql-wrapper/src/config/index.ts index 34dcd6d04..8faf0d953 100644 --- a/servers/parser-graphql-wrapper/src/config/index.ts +++ b/servers/parser-graphql-wrapper/src/config/index.ts @@ -12,9 +12,7 @@ export default { serviceName: 'parser-graphql-wrapper', tracing: { graphQLDepth: 8, // very permissive limit on depth tracing - samplingRatio: 0.01, - grpcDefaultPort: 4317, - httpDefaultPort: 4318, + release: process.env.GIT_SHA || 'local', serviceName: 'parser-graphql-wrapper', host: process.env.OTLP_COLLECTOR_HOST || 'localhost', }, diff --git a/servers/parser-graphql-wrapper/src/main.ts b/servers/parser-graphql-wrapper/src/main.ts index d3da92063..580373165 100644 --- a/servers/parser-graphql-wrapper/src/main.ts +++ b/servers/parser-graphql-wrapper/src/main.ts @@ -2,23 +2,27 @@ //so open-telemetry can patch all libraries that we use import config from './config'; import { initSentry, featureFlagTraceSampler } from '@pocket-tools/sentry'; -import { unleash } from './unleash'; +import { nodeSDKBuilder } from '@pocket-tools/tracing'; +import { unleash } from './unleash'; const unleashClient = unleash(); // Initialize sentry -initSentry({ +const sentry = initSentry({ ...config.sentry, + skipOpenTelemetrySetup: true, tracesSampler: featureFlagTraceSampler( unleashClient, config.sentry.samplerFlag, ), debug: config.sentry.environment === 'development', }); -import { serverLogger } from '@pocket-tools/ts-logger'; -import { startServer } from './apollo/server'; -startServer(config.app.serverPort).then(({ url }) => { - serverLogger.info( - `🚀 Public server ready at http://localhost:${config.app.serverPort}${url}`, - ); +nodeSDKBuilder({ ...config.tracing, sentry: sentry }).then(() => { + startServer(config.app.serverPort).then(({ url }) => { + serverLogger.info( + `🚀 Public server ready at http://localhost:${config.app.serverPort}${url}`, + ); + }); }); +import { serverLogger } from '@pocket-tools/ts-logger'; +import { startServer } from './apollo/server'; diff --git a/servers/user-api/package.json b/servers/user-api/package.json index 15a96441c..ff515defa 100644 --- a/servers/user-api/package.json +++ b/servers/user-api/package.json @@ -22,8 +22,10 @@ "@apollo/subgraph": "2.9.2", "@aws-sdk/client-eventbridge": "3.637.0", "@pocket-tools/apollo-utils": "workspace:*", + "@pocket-tools/feature-flags-client": "workspace:*", "@pocket-tools/int-mask": "workspace:*", "@pocket-tools/sentry": "workspace:*", + "@pocket-tools/tracing": "workspace:*", "@pocket-tools/ts-logger": "workspace:*", "@sentry/node": "8.33.0", "dataloader": "2.2.2", @@ -52,4 +54,4 @@ "tsconfig": "workspace:*", "typescript": "5.5.4" } -} +} \ No newline at end of file diff --git a/servers/user-api/src/config/index.ts b/servers/user-api/src/config/index.ts index 849a121ee..bb539fea6 100644 --- a/servers/user-api/src/config/index.ts +++ b/servers/user-api/src/config/index.ts @@ -39,6 +39,7 @@ const localAwsEndpoint = export default { app: { + serviceName, environment: process.env.NODE_ENV || 'development', port: 4006, }, @@ -76,11 +77,19 @@ export default { dsn: process.env.SENTRY_DSN || '', release: process.env.GIT_SHA || '', environment: process.env.NODE_ENV || 'development', + samplerFlag: 'perm.backend.sentry-trace-sampler-rate', }, serviceName, tracing: { host: process.env.OTLP_COLLECTOR_HOST || 'localhost', serviceName: serviceName, + release: process.env.GIT_SHA || 'local', + }, + unleash: { + clientKey: process.env.UNLEASH_KEY || 'unleash-key-fake', + endpoint: process.env.UNLEASH_ENDPOINT || 'http://localhost:4242/api', + refreshInterval: 60 * 1000, // ms + timeout: 2 * 1000, // ms }, secrets: { contactHash: process.env.CONTACT_HASH || 'abcdefghijklmnop', diff --git a/servers/user-api/src/main.ts b/servers/user-api/src/main.ts index 409027f57..fa31cbd56 100644 --- a/servers/user-api/src/main.ts +++ b/servers/user-api/src/main.ts @@ -1,15 +1,25 @@ import config from './config'; -import { initSentry } from '@pocket-tools/sentry'; -initSentry({ +import { featureFlagTraceSampler, initSentry } from '@pocket-tools/sentry'; +import { unleash } from './unleash'; +import { nodeSDKBuilder } from '@pocket-tools/tracing'; + +const unleashClient = unleash(); +const sentry = initSentry({ ...config.sentry, + skipOpenTelemetrySetup: true, + tracesSampler: featureFlagTraceSampler( + unleashClient, + config.sentry.samplerFlag, + ), debug: config.sentry.environment === 'development', }); +nodeSDKBuilder({ ...config.tracing, sentry: sentry }).then(() => { + startServer(config.app.port).then(() => { + serverLogger.info( + `🚀 Public server ready at http://localhost:${config.app.port}`, + ); + }); +}); import { serverLogger } from '@pocket-tools/ts-logger'; import { startServer } from './apollo'; - -startServer(config.app.port).then(({ url }) => { - serverLogger.info( - `🚀 Public server ready at http://localhost:${config.app.port}${url}`, - ); -}); diff --git a/servers/user-api/src/unleash.ts b/servers/user-api/src/unleash.ts new file mode 100644 index 000000000..a9080f185 --- /dev/null +++ b/servers/user-api/src/unleash.ts @@ -0,0 +1,17 @@ +import { getUnleash } from '@pocket-tools/feature-flags-client'; +import config from './config'; +import type { Unleash } from '@pocket-tools/feature-flags-client'; + +let _unleash: Unleash; + +export function unleash(): Unleash { + if (_unleash != null) return _unleash; + _unleash = getUnleash({ + url: config.unleash.endpoint, + appName: config.app.serviceName, + customHeaders: { Authorization: config.unleash.clientKey }, + timeout: config.unleash.timeout, + refreshInterval: config.unleash.refreshInterval, + }); + return _unleash; +} diff --git a/servers/user-list-search/package.json b/servers/user-list-search/package.json index cf37aa3f2..97620e9d9 100644 --- a/servers/user-list-search/package.json +++ b/servers/user-list-search/package.json @@ -32,6 +32,7 @@ "@pocket-tools/apollo-utils": "workspace:*", "@pocket-tools/feature-flags-client": "workspace:*", "@pocket-tools/sentry": "workspace:*", + "@pocket-tools/tracing": "workspace:*", "@pocket-tools/ts-logger": "workspace:*", "@sentry/node": "8.33.0", "@smithy/node-http-handler": "3.2.0", @@ -77,4 +78,4 @@ "tsconfig": "workspace:*", "typescript": "5.5.4" } -} +} \ No newline at end of file diff --git a/servers/user-list-search/src/config/index.ts b/servers/user-list-search/src/config/index.ts index 3dddc315d..1408424d5 100644 --- a/servers/user-list-search/src/config/index.ts +++ b/servers/user-list-search/src/config/index.ts @@ -8,6 +8,8 @@ export const config = { serviceName: 'user-list-search', tracing: { host: process.env.OTLP_COLLECTOR_HOST || 'localhost', + release: process.env.GIT_SHA || '', + serviceName: 'user-list-search', }, app: { environment: process.env.NODE_ENV || 'development', diff --git a/servers/user-list-search/src/main.ts b/servers/user-list-search/src/main.ts index 6ac334aac..d46e6d7ca 100644 --- a/servers/user-list-search/src/main.ts +++ b/servers/user-list-search/src/main.ts @@ -1,11 +1,12 @@ import { config } from './config'; import { initSentry, featureFlagTraceSampler } from '@pocket-tools/sentry'; import { unleash } from './datasource/clients'; +import { nodeSDKBuilder } from '@pocket-tools/tracing'; const unleashClient = unleash(); // Initialize Sentry -initSentry({ +const sentry = initSentry({ ...config.sentry, tracesSampler: featureFlagTraceSampler( unleashClient, @@ -14,14 +15,12 @@ initSentry({ debug: config.sentry.environment === 'development', }); -import { startServer } from './server/serverUtils'; -import { serverLogger } from '@pocket-tools/ts-logger'; - -// Wait to start the server until unleash client is initialized -unleashClient.once('synchronized', () => - startServer(config.app.port).then(({ url }) => { +nodeSDKBuilder({ ...config.tracing, sentry: sentry }).then(() => { + startServer(config.app.port).then(() => { serverLogger.info( - `🚀 Public server ready at http://localhost:${config.app.port}${url}`, + `🚀 Public server ready at http://localhost:${config.app.port}`, ); - }), -); + }); +}); +import { serverLogger } from '@pocket-tools/ts-logger'; +import { startServer } from './server/serverUtils'; diff --git a/servers/v3-proxy-api/package.json b/servers/v3-proxy-api/package.json index 9ac7b18ed..fcb7cc379 100644 --- a/servers/v3-proxy-api/package.json +++ b/servers/v3-proxy-api/package.json @@ -19,6 +19,7 @@ "@pocket-tools/apollo-utils": "workspace:*", "@pocket-tools/feature-flags-client": "workspace:*", "@pocket-tools/sentry": "workspace:*", + "@pocket-tools/tracing": "workspace:*", "@pocket-tools/ts-logger": "workspace:*", "@sentry/node": "8.33.0", "express": "4.20.0", diff --git a/servers/v3-proxy-api/src/config/index.ts b/servers/v3-proxy-api/src/config/index.ts index 7ffd1a748..f95b4b9c7 100644 --- a/servers/v3-proxy-api/src/config/index.ts +++ b/servers/v3-proxy-api/src/config/index.ts @@ -15,10 +15,11 @@ export default { tracing: { host: process.env.OTLP_COLLECTOR_HOST || 'localhost', serviceName: 'v3-api-proxy', + release: process.env.GIT_SHA || 'local', }, sentry: { dsn: process.env.SENTRY_DSN || '', - release: process.env.GIT_SHA || '', + release: process.env.GIT_SHA || 'local', environment: process.env.NODE_ENV || 'development', samplerFlag: 'perm.backend.sentry-trace-sampler-rate', }, diff --git a/servers/v3-proxy-api/src/graph/graphQLClient.ts b/servers/v3-proxy-api/src/graph/graphQLClient.ts index b30fcb30a..5617ce6ae 100644 --- a/servers/v3-proxy-api/src/graph/graphQLClient.ts +++ b/servers/v3-proxy-api/src/graph/graphQLClient.ts @@ -104,7 +104,7 @@ export class GraphQLClientFactory { } public createClient(responseMiddleware?: ResponseMiddleware) { return new GraphQLClient(this.url, { - headers: { ...this.headers, ...Sentry.getTraceData() }, + headers: this.headers, fetch, responseMiddleware, errorPolicy: 'all', diff --git a/servers/v3-proxy-api/src/main.ts b/servers/v3-proxy-api/src/main.ts index 8a98d4e9b..144eea50b 100644 --- a/servers/v3-proxy-api/src/main.ts +++ b/servers/v3-proxy-api/src/main.ts @@ -1,10 +1,12 @@ import config from './config'; import { initSentry, featureFlagTraceSampler } from '@pocket-tools/sentry'; import { unleash } from './unleash'; +import { nodeSDKBuilder } from '@pocket-tools/tracing'; const unleashClient = unleash(); -initSentry({ +const sentry = initSentry({ ...config.sentry, + skipOpenTelemetrySetup: true, tracesSampler: featureFlagTraceSampler( unleashClient, config.sentry.samplerFlag, @@ -12,11 +14,12 @@ initSentry({ debug: config.sentry.environment === 'development', }); +nodeSDKBuilder({ ...config.tracing, sentry: sentry }).then(() => { + startServer(config.app.port).then(() => { + serverLogger.info( + `🚀 Public server ready at http://localhost:${config.app.port}`, + ); + }); +}); import { serverLogger } from '@pocket-tools/ts-logger'; import { startServer } from './server'; - -startServer(config.app.port).then(() => { - serverLogger.info( - `🚀 Public server ready at http://localhost:${config.app.port}`, - ); -}); diff --git a/turbo.json b/turbo.json index 6eba76fc0..dae13a9a5 100644 --- a/turbo.json +++ b/turbo.json @@ -23,7 +23,8 @@ "SALT_2", "UNLEASH_ENDPOINT", "UNLEASH_KEY", - "BRAZE_PRIVATE_KEY" + "BRAZE_PRIVATE_KEY", + "SENTRY_DSN" ], "tasks": { "build": {