为 Angular 项目设置 Opentelemetry- 导出到 Zipkin 问题

Opentelemetry set up for Angular Project- Export to Zipkin Problem

我有一个 hello-world Angular 项目,我正在尝试在其上设置 opentelemetry。没有后端,我只想看到前端的痕迹。我按照以下库提供的说明进行操作,但没有在 Zipkin 上找到痕迹: opentelemetry-angular-interceptor

我运行 ng serve 的时候没有具体错误,就是看不到痕迹。

这是我在这个项目上所做的:

Environment.ts 文件:

import { DiagLogLevel } from '@opentelemetry/api';
import {
  OpenTelemetryConfig
} from '@jufab/opentelemetry-angular-interceptor';

interface IEnvironment {
  production: boolean;
  urlTest: string;
  openTelemetryConfig: OpenTelemetryConfig;
}

// Example to configure the angular-interceptor library
export const environment: IEnvironment = {
  production: false,
  urlTest: 'http://localhost:4200',
  openTelemetryConfig: {
    commonConfig: {
      console: true, // Display trace on console
      production: true, // Send Trace with BatchSpanProcessor (true) or SimpleSpanProcessor (false)
      serviceName: 'instrumentation-example', // Service name send in trace
      probabilitySampler: '1', // 75% sampling
      logLevel: DiagLogLevel.ALL //ALL Log, DiagLogLevel is an Enum from @opentelemetry/api
    },
    zipkinConfig: {
      url: 'http://localhost:9411/api/v2/spans'
    },
    b3PropagatorConfig: {
      multiHeader: '0' //Value : 'O' (single), '1' (multi)
    },
    instrumentationConfig: {
      xmlHttpRequest: true,
      fetch: true,
      documentLoad: true,
    }
  }
};

app.module.ts 文件:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import {
  ZipkinExporterModule,
  CompositePropagatorModule,
  OtelWebTracerModule,
} from '@jufab/opentelemetry-angular-interceptor';
import { environment } from '../environments/environment';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    ZipkinExporterModule,
    BrowserModule,
    AppRoutingModule,
    //Insert propagator module
    CompositePropagatorModule,
    OtelWebTracerModule.forRoot(environment.openTelemetryConfig),
    
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

向 environment.ts 文件添加配置并将包括 ZipkinExporterModule 在内的所有必要模块导入 app.module.ts 但在 Zipkin 上看不到痕迹。

我想通了!我刚刚添加了

"<otel-instrumentation></otel-instrumentation>"

到组件!现在可以使用了。