Я создаю экспортер Java для отправки журналов в коллектор. Я хочу ввести Traceid и Spanid, но в LogrecordBuilder нет прямых API. Как я могу им вводить? Использование SetatTribute помещает их в поле Logattributes в Clickhouse. < /P>
исходный код < /h3>
public static SdkLoggerProvider create(Resource resource) {
return SdkLoggerProvider.builder()
.setResource(resource)
.addLogRecordProcessor( LogRecordProcessorConfig.batchLogRecordProcessor(LogRecordExporterConfig.otlpHttpLogRecordExporter("http://localhost:4318/v1/logs")))
.setLogLimits(LogLimitsConfig::logLimits)
.build();
}
...
public static OpenTelemetrySdk create() {
Resource resource = ResourceConfig.create();
return OpenTelemetrySdk.builder()
.setLoggerProvider(SdkLoggerProviderConfig.create(resource))
.setPropagators(ContextPropagatorsConfig.create())
.build();
}
...
Severity severity = convertToCustomSeverity(level);
Logger otelLogger = otel.getLogsBridge().get("test");
LogRecordBuilder logRecordBuilder = otelLogger.logRecordBuilder();
logRecordBuilder.setTimestamp(instant)
.setSeverity(severity)
.setSeverityText(level)
.setBody(message);
logRecordBuilder.setAttribute(AttributeKey.stringKey("traceId"), otelTraceId);
logRecordBuilder.setAttribute(AttributeKey.stringKey("trace_id"), otelTraceId);
logRecordBuilder.setAttribute(AttributeKey.stringKey("trace-id"), otelTraceId);
logRecordBuilder.setAttribute(AttributeKey.stringKey("trace.id"), otelTraceId);
if (throwable != null) {
logRecordBuilder.setAttribute("exception.message", throwable.getMessage())
.setAttribute("exception.stacktrace", StackTraceUtil.getContentsOfStackTrace(throwable.getStackTrace()));
}
logRecordBuilder.emit();
< /code>
Данные, хранящиеся в Clickhouse < /h3>
[
{
"Timestamp": "2025-04-09 19:38:39.670644000",
"TimestampDate": "2025-04-09",
"TimestampTime": "2025-04-09 19:38:39",
"TraceId": "",
"SpanId": "",
"TraceFlags": 0,
"SeverityText": "INFO",
"SeverityNumber": 9,
"ServiceName": "my-service",
"Body": "error~~~~~~~~~",
"ResourceSchemaUrl": "",
"ResourceAttributes": {
"telemetry.sdk.name": "opentelemetry",
"telemetry.sdk.version": "1.49.0",
"trace.id": "traceId333",
"traceId": "traceId222",
"service.name": "my-service",
"telemetry.sdk.language": "java"
},
"ScopeSchemaUrl": "",
"ScopeName": "test",
"ScopeVersion": "",
"ScopeAttributes": {
},
"LogAttributes": {
"SpanId": "ac9ac80fd7ab426fb87f0e0b9acb29ad",
"trace-id": "ac9ac80fd7ab426fb87f0e0b9acb29ad",
"traceId": "ac9ac80fd7ab426fb87f0e0b9acb29ad",
"trace_id": "ac9ac80fd7ab426fb87f0e0b9acb29ad"
}
}
]
Подробнее здесь: https://stackoverflow.com/questions/795 ... g-exporter
Невозможно вводить Traceid и Spanid в Opentelemetry Java SDK -экспортер журнала ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Невозможно вводить Traceid и Spanid в Opentelemetry Java SDK -экспортер журнала
Anonymous » » в форуме JAVA - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Невозможно вводить Traceid и Spanid в Opentelemetry Java SDK -экспортер журнала
Anonymous » » в форуме JAVA - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-