open-telemetry / opentelemetry-collector

OpenTelemetry Collector
https://opentelemetry.io
Apache License 2.0
4.36k stars 1.44k forks source link

Pika build monorepo crush because requiere install unused dependencies #4838

Closed ccalderon9411 closed 2 years ago

ccalderon9411 commented 2 years ago

Describe the bug When I try to complie my monorepo it crush because need some dependecies that I not use. image

Steps to reproduce

  1. git clone https://github.com/tresdoce/nestjs-tracing.git
  2. git checkout feat/opentelemetry
  3. npm install
  4. npm run build
  5. see the error

What did you expect to see? Complete building of the project

What did you see instead? The error says that I have to install this dependencies:

What version did you use? Version:

"dependencies": {
    "@opentelemetry/api": "^1.0.4",
    "@opentelemetry/auto-instrumentations-node": "^0.27.3",
    "@opentelemetry/core": "^1.0.1",
    "@opentelemetry/exporter-collector": "^0.25.0",
    "@opentelemetry/exporter-collector-grpc": "^0.25.0",
    "@opentelemetry/exporter-jaeger": "^1.0.1",
    "@opentelemetry/exporter-prometheus": "^0.27.0",
    "@opentelemetry/host-metrics": "^0.27.1",
    "@opentelemetry/propagator-b3": "^1.0.1",
    "@opentelemetry/propagator-jaeger": "^1.0.1",
    "@opentelemetry/sdk-metrics-base": "^0.27.0",
    "@opentelemetry/sdk-node": "^0.27.0",
    "@opentelemetry/sdk-trace-base": "^1.0.1",
    "@opentelemetry/semantic-conventions": "^1.0.1",   
  },

What config did you use?

import {
  CompositePropagator,
  W3CBaggagePropagator,
  W3CTraceContextPropagator,
} from '@opentelemetry/core';
import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';
import { JaegerExporter } from '@opentelemetry/exporter-jaeger';
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
import { JaegerPropagator } from '@opentelemetry/propagator-jaeger';
import { B3InjectEncoding, B3Propagator } from '@opentelemetry/propagator-b3';
import { PrometheusExporter } from '@opentelemetry/exporter-prometheus';
import { NodeSDK } from '@opentelemetry/sdk-node';
import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks';
import { Resource } from '@opentelemetry/resources';
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
import { HttpInstrumentation } from '@opentelemetry/instrumentation-http';
import { OpenTelemetryConfiguration } from '../interfaces/tracing.interface';
import * as _ from 'lodash';
import { defaultTraceExcludePaths } from './tracing.constants';

export const otelSDK = (options: OpenTelemetryConfiguration) => {
  return new NodeSDK({
    metricExporter: new PrometheusExporter({
      ...options.prometheusExporterConfig,
    }),
    metricInterval: options.metricInterval || 1000,
    spanProcessor: new BatchSpanProcessor(
      new JaegerExporter({
        ...options.jaegerExporterConfig,
      }),
    ),
    contextManager: new AsyncLocalStorageContextManager(),
    textMapPropagator: new CompositePropagator({
      propagators: [
        new JaegerPropagator(),
        new W3CTraceContextPropagator(),
        new W3CBaggagePropagator(),
        new B3Propagator(),
        new B3Propagator({ injectEncoding: B3InjectEncoding.MULTI_HEADER }),
      ],
    }),
    resource: new Resource({
      ...options.resourceAttributes,
      [SemanticResourceAttributes.SERVICE_NAME]: options.serviceName,
    }),
    instrumentations: [
      getNodeAutoInstrumentations(),
      new HttpInstrumentation({
        ignoreIncomingPaths: _.union(defaultTraceExcludePaths, options.excludeTracerPaths),
      }),
    ],
  });
};

Environment OS: Windows, MacOS Compiler(if manually compiled): (e.g., "go 14.2")

Additional context I think that problem is in @opentelemetry/auto-instrumentations-node dependency

jpkrohling commented 2 years ago

This is not the right repository for this. You probably want to open an issue against https://github.com/open-telemetry/opentelemetry-js instead.

ccalderon9411 commented 2 years ago

Thanks for help