我正在使用Open Telemetry手动检测发送设备数据。
我正在创建这样的SdkMeterProvider
私有OpenTelemetry initOpenTelemetrySDK(){
Resource resource = Resource.getDefault() .merge(Resource.create(Attributes.of(ResourceAttributes.SERVICE_NAME, "MyResource"))); OtlpGrpcMetricExporter otlpGrpcMetricExporter = OtlpGrpcMetricExporter.builder() .setEndpoint(getOtelEndPoint()) .setAggregationTemporalitySelector(AggregationTemporalitySelector.deltaPreferred()).build(); SdkMeterProvider sdkMeterProvider = SdkMeterProvider.builder() .registerMetricReader(PeriodicMetricReader.builder(otlpGrpcMetricExporter).build()).setResource(resource) //.registerView(InstrumentSelector.builder().setType(InstrumentType.OBSERVABLE_UP_DOWN_COUNTER).build(), // View.builder().setAggregation(Aggregation.defaultAggregation()).build()) .build(); OpenTelemetrySdk openTelemetrySdk = OpenTelemetrySdk.builder().setMeterProvider(sdkMeterProvider) .buildAndRegisterGlobal(); return openTelemetrySdk;
}
同时使用下线发送度量并构建属性。
Meter meter = openTelemetrySdk.meterBuilder("DeviceData").build(); LongCounter counter = meter.counterBuilder(123).build(); counter.add((Long) record.getValue(), attributes);
我在这里面临的问题是,即使在关闭了设备之后,我也可以看到仪表仍在为关闭的设备发送数据。如果我再次重新启动服务器,那么我就不会再看到关闭的设备。有人观察到这个问题吗?请在这里提供任何指示。