26.5.2 • Published 4 days ago

@mwcp/otel v26.5.2

Weekly downloads
-
License
MIT
Repository
github
Last release
4 days ago

@mwcp/otel

Open Telemetry Component for Midway.js

GitHub tag Version License npm.io ci codecov Conventional Commits lerna

Note

ESM build only, requires @midwayjs >= 3.12 and set "type": "module" in packages.json

安装依赖

npm i @mwcp/otel

更新配置

Update project src/configuration.ts

import { Configuration } from '@midwayjs/decorator'
import * as koa from '@midwayjs/koa'
import * as otel from '@mwcp/otel'

@Configuration({
  imports: [
    koa,
    otel,
  ],
  importConfigs: [join(__dirname, 'config')],
})
export class ContainerConfiguration implements ILifeCycle {
}

使用

使用 Jaeger 容器快速启动一个 OTLPTraceExporter 服务:

docker run -d --name jaeger \
  -e COLLECTOR_OTLP_ENABLED=true \
  -p 4317:4317 \
  -p 4318:4318 \
  -p 5778:5778 \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 16686:16686 \
  jaegertracing/all-in-one:latest

启动项目:

export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
npm start

Jaeger Web UI address:

http://localhost:16686/

Trace 装饰器

import { Trace } from '@mwcp/otel'

@Controller('/')
export class FooController {

  @Inject() readonly svc: FooService

  /* span name will be `{class name}/{method name}` => "FooController/hello" */
  @Trace()
  async hello(): Promise<string> {
    return 'hello'
  }

  /* span name will be "hello" */
  @Trace('hello')
  async world(): Promise<string> {
    return 'world'
  }

  @Trace({
    spanName: 'hello'
  })
  async world2(): Promise<string> {
    return 'world'
  }
}

TraceInit 装饰器

// src/configuration.ts
import { TraceInit } from '@mwcp/otel'

export class AutoConfiguration implements ILifeCycle {
  @TraceInit({ namespace: 'Foo' })
  async onReady(container: IMidwayContainer): Promise<void> {
    // some code
  }
}

装饰器泛型参数

从泛型参数自动获取方法调用参数类型

@Controller('/')
export class FooController {

  @Inject() readonly svc: FooService

  hello(): string {
    // spanName should be 'foo-124-abc'
    const msg = this.svc.concat(123, 'abc')
    return msg
  }
}

@Provide()
export class FooService {
  @Trace<FooService['concat']>({
    spanName: ([v1, v2]) => `foo-${v1 + 1}-${v2}`,
  })
  concat(v1: number, v2: string): string {
    return `${v1.toString()}-${v2}`
  }

  @Trace<FooService['concat2']>({
    spanName: (args) => `foo-${args[0] + 1}-${args[1]}`,
  })
  concat2(v1: number, v2: string): string {
    return `${v1.toString()}-${v2}`
  }
}

License

MIT

Languages

26.5.2

4 days ago

26.5.1

18 days ago

26.3.2

19 days ago

26.5.0

19 days ago

26.4.0

19 days ago

26.3.1

20 days ago

26.3.0

20 days ago

26.2.0

21 days ago

26.1.0

21 days ago

26.0.2

21 days ago

26.0.0

22 days ago

25.2.3

29 days ago

25.1.0

1 month ago

25.2.0

1 month ago

25.2.2

1 month ago

25.2.1

1 month ago

25.0.2

1 month ago

25.0.1

1 month ago

25.0.0

1 month ago

24.2.3

1 month ago

24.2.4

1 month ago

24.2.2

1 month ago

24.2.1

1 month ago

24.2.0

1 month ago

24.1.0

1 month ago

23.1.0

1 month ago

24.0.0

1 month ago

23.0.0

2 months ago

22.1.2

2 months ago

22.1.0

2 months ago

20.11.0

3 months ago

21.0.0

3 months ago

22.0.1

3 months ago

22.0.0

3 months ago

20.12.0

3 months ago

20.10.0

3 months ago

20.10.1

3 months ago

20.9.0

4 months ago

20.6.0

4 months ago

20.3.0

4 months ago

20.7.0

4 months ago

20.8.0

4 months ago

20.5.0

4 months ago

20.0.0

4 months ago

19.0.0

8 months ago

19.0.3

8 months ago

10.11.0

10 months ago

15.0.0

8 months ago

10.12.0

10 months ago

19.2.1

8 months ago

19.2.0

8 months ago

10.13.3

9 months ago

10.13.4

9 months ago

10.13.1

9 months ago

10.13.2

9 months ago

10.13.0

9 months ago

10.13.5

8 months ago

19.1.0

8 months ago

19.1.1

8 months ago

10.8.0

1 year ago

10.7.0

1 year ago

10.6.1

1 year ago

10.9.0

1 year ago

10.9.1

1 year ago

10.9.2

1 year ago

10.9.3

12 months ago

10.9.4

12 months ago

10.10.2

11 months ago

10.10.0

12 months ago

10.10.1

12 months ago

10.6.0

1 year ago

5.1.0

1 year ago

10.0.0

1 year ago

10.0.1

1 year ago

10.2.0

1 year ago

10.0.2

1 year ago

7.3.0

1 year ago

7.1.2

1 year ago

7.1.1

1 year ago

7.1.0

1 year ago

10.5.0

1 year ago

5.2.1

1 year ago

5.2.0

1 year ago

5.0.0

1 year ago

6.0.0

1 year ago

10.1.0

1 year ago

10.3.0

1 year ago

7.0.0

1 year ago

7.4.0

1 year ago

7.0.3

1 year ago

7.2.0

1 year ago

7.0.2

1 year ago

7.0.1

1 year ago

8.0.1

1 year ago

8.0.0

1 year ago

9.0.1

1 year ago

9.0.0

1 year ago

4.0.7

1 year ago

4.1.3

1 year ago

4.1.0

1 year ago

4.1.2

1 year ago

4.1.1

1 year ago

3.17.0

1 year ago

3.17.1

1 year ago

4.0.5

1 year ago

4.0.4

1 year ago

4.0.6

1 year ago

4.0.1

1 year ago

4.0.0

1 year ago

4.0.3

1 year ago

4.0.2

1 year ago

3.16.7

1 year ago

3.16.6

1 year ago

3.16.3

1 year ago

3.16.5

1 year ago

3.16.4

1 year ago

3.15.0

1 year ago

3.14.0

1 year ago

3.16.1

1 year ago

3.16.0

1 year ago

3.9.0

2 years ago

3.8.8

2 years ago

3.16.2

1 year ago

3.11.0

2 years ago

3.10.1

2 years ago

3.10.0

2 years ago

3.13.0

1 year ago

3.11.2

2 years ago

3.12.0

2 years ago

3.11.1

2 years ago

3.8.7

2 years ago

3.8.6

2 years ago

3.8.5

2 years ago

3.8.4

2 years ago

3.8.3

2 years ago

3.8.2

2 years ago

3.8.1

2 years ago

3.8.0

2 years ago

3.7.0

2 years ago

3.6.0

2 years ago

3.5.0

2 years ago

3.4.1

2 years ago

3.4.0

2 years ago

3.3.0

2 years ago

3.2.5

2 years ago

3.2.4

2 years ago

3.2.3

2 years ago

3.2.2

2 years ago

3.2.1

2 years ago

3.2.0

2 years ago

3.1.0

2 years ago

3.0.0

2 years ago

2.1.1

2 years ago

2.0.0

2 years ago

1.3.0

2 years ago

1.2.0

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago