@sentio/runtime 2.44.0-rc.3 → 2.44.0-rc.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/{chunk-HC2LNKZM.js → chunk-6FTIOVPD.js} +4 -4
- package/lib/{chunk-HC2LNKZM.js.map → chunk-6FTIOVPD.js.map} +1 -1
- package/lib/index.js +1 -1
- package/lib/processor-runner.d.ts +0 -3
- package/lib/processor-runner.js +20 -20
- package/lib/processor-runner.js.map +1 -1
- package/package.json +1 -1
- package/src/metrics.ts +17 -7
- package/src/otlp.ts +9 -2
- package/src/processor-runner.ts +2 -54
package/package.json
CHANGED
package/src/metrics.ts
CHANGED
@@ -1,13 +1,18 @@
|
|
1
1
|
import { Attributes, Counter, metrics, Gauge } from '@opentelemetry/api'
|
2
2
|
|
3
|
-
const
|
3
|
+
const getMeter = () => metrics.getMeter('processor')
|
4
4
|
|
5
5
|
class C {
|
6
|
-
private
|
6
|
+
private _counter: Counter<Attributes>
|
7
7
|
private value: number = 0
|
8
8
|
|
9
|
-
constructor(name: string) {
|
10
|
-
|
9
|
+
constructor(private name: string) {}
|
10
|
+
|
11
|
+
get counter(): Counter<Attributes> {
|
12
|
+
if (!this._counter) {
|
13
|
+
this._counter = getMeter().createCounter(this.name)
|
14
|
+
}
|
15
|
+
return this._counter
|
11
16
|
}
|
12
17
|
|
13
18
|
add(value: number, attributes?: Attributes) {
|
@@ -21,11 +26,16 @@ class C {
|
|
21
26
|
}
|
22
27
|
|
23
28
|
class G {
|
24
|
-
private
|
29
|
+
private _gauge: Gauge<Attributes>
|
25
30
|
private value: number = 0
|
26
31
|
|
27
|
-
constructor(name: string) {
|
28
|
-
|
32
|
+
constructor(private name: string) {}
|
33
|
+
|
34
|
+
get gauge(): Gauge<Attributes> {
|
35
|
+
if (!this._gauge) {
|
36
|
+
this._gauge = getMeter().createGauge(this.name)
|
37
|
+
}
|
38
|
+
return this._gauge
|
29
39
|
}
|
30
40
|
|
31
41
|
record(value: number, attributes?: Attributes) {
|
package/src/otlp.ts
CHANGED
@@ -5,9 +5,13 @@ import { PrometheusExporter } from '@opentelemetry/exporter-prometheus'
|
|
5
5
|
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node'
|
6
6
|
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc'
|
7
7
|
import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base'
|
8
|
-
import { metrics, trace, ProxyTracerProvider } from '@opentelemetry/api'
|
8
|
+
import { diag, DiagConsoleLogger, DiagLogLevel, metrics, trace, ProxyTracerProvider } from '@opentelemetry/api'
|
9
|
+
|
10
|
+
export async function setupOTLP(debug?: boolean) {
|
11
|
+
if (debug) {
|
12
|
+
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG)
|
13
|
+
}
|
9
14
|
|
10
|
-
export async function setupOTLP() {
|
11
15
|
const resource = await envDetector.detect()
|
12
16
|
|
13
17
|
const meterProvider = new MeterProvider({
|
@@ -29,12 +33,15 @@ export async function setupOTLP() {
|
|
29
33
|
const exporter = new OTLPTraceExporter() // new ConsoleSpanExporter();
|
30
34
|
const processor = new BatchSpanProcessor(exporter)
|
31
35
|
traceProvider.addSpanProcessor(processor)
|
36
|
+
traceProvider.register()
|
32
37
|
|
33
38
|
metrics.setGlobalMeterProvider(meterProvider)
|
34
39
|
trace.setGlobalTracerProvider(traceProvider)
|
35
40
|
;['SIGINT', 'SIGTERM'].forEach((signal) => {
|
36
41
|
process.on(signal as any, () => shutdownProvider())
|
37
42
|
})
|
43
|
+
|
44
|
+
metrics.getMeter('processor').createGauge('up').record(1)
|
38
45
|
}
|
39
46
|
|
40
47
|
export async function shutdownProvider() {
|
package/src/processor-runner.ts
CHANGED
@@ -21,15 +21,7 @@ import { FullProcessorServiceImpl } from './full-service.js'
|
|
21
21
|
import { ChainConfig } from './chain-config.js'
|
22
22
|
import { setupLogger } from './logger.js'
|
23
23
|
|
24
|
-
|
25
|
-
import { envDetector } from '@opentelemetry/resources'
|
26
|
-
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-grpc'
|
27
|
-
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc'
|
28
|
-
import { PeriodicExportingMetricReader, MeterProvider } from '@opentelemetry/sdk-metrics'
|
29
|
-
import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base'
|
30
|
-
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node'
|
31
|
-
import { diag, DiagConsoleLogger, DiagLogLevel, metrics, trace } from '@opentelemetry/api'
|
32
|
-
import { PrometheusExporter } from '@opentelemetry/exporter-prometheus'
|
24
|
+
import { setupOTLP } from './otlp.js'
|
33
25
|
|
34
26
|
// const mergedRegistry = Registry.merge([globalRegistry, niceGrpcRegistry])
|
35
27
|
|
@@ -58,51 +50,7 @@ const logLevel = process.env['LOG_LEVEL']?.toUpperCase()
|
|
58
50
|
setupLogger(options['log-format'] === 'json', logLevel === 'debug' ? true : options.debug)
|
59
51
|
console.debug('Starting with', options.target)
|
60
52
|
|
61
|
-
|
62
|
-
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.DEBUG)
|
63
|
-
}
|
64
|
-
|
65
|
-
const resource = await envDetector.detect()
|
66
|
-
|
67
|
-
const meterProvider = new MeterProvider({
|
68
|
-
resource,
|
69
|
-
readers: [
|
70
|
-
new PeriodicExportingMetricReader({
|
71
|
-
exporter: new OTLPMetricExporter()
|
72
|
-
}),
|
73
|
-
new PrometheusExporter({
|
74
|
-
// http://localhost:4041/metrics
|
75
|
-
port: 4041
|
76
|
-
})
|
77
|
-
]
|
78
|
-
})
|
79
|
-
|
80
|
-
const traceProvider = new NodeTracerProvider({
|
81
|
-
resource: resource
|
82
|
-
})
|
83
|
-
const exporter = new OTLPTraceExporter() // new ConsoleSpanExporter();
|
84
|
-
const processor = new BatchSpanProcessor(exporter)
|
85
|
-
traceProvider.addSpanProcessor(processor)
|
86
|
-
traceProvider.register()
|
87
|
-
|
88
|
-
metrics.setGlobalMeterProvider(meterProvider)
|
89
|
-
trace.setGlobalTracerProvider(traceProvider)
|
90
|
-
;['SIGINT', 'SIGTERM'].forEach((signal) => {
|
91
|
-
process.on(signal as any, () => shutdownProvider())
|
92
|
-
})
|
93
|
-
|
94
|
-
export async function shutdownProvider() {
|
95
|
-
const traceProvider = trace.getTracerProvider()
|
96
|
-
if (traceProvider instanceof NodeTracerProvider) {
|
97
|
-
traceProvider.shutdown().catch(console.error)
|
98
|
-
}
|
99
|
-
const meterProvider = metrics.getMeterProvider()
|
100
|
-
if (meterProvider instanceof MeterProvider) {
|
101
|
-
meterProvider.shutdown().catch(console.error)
|
102
|
-
}
|
103
|
-
}
|
104
|
-
|
105
|
-
metrics.getMeter('processor').createGauge('up').record(1)
|
53
|
+
await setupOTLP(options.debug)
|
106
54
|
|
107
55
|
Error.stackTraceLimit = 20
|
108
56
|
|