Tempo cannot receive trace in Windows

I configuring a service to send tracing data to Tempo on Windows. The service is a Java Rest API embedded with opentelemetry agent, as below:

-Dotel.traces.exporter=jaeger -Dotel.exporter.jaeger.endpoint=http://{tempo_host}:14250 -Dotel.metrics.exporter=none -javaagent:{path_to_otel}/opentelemetry-javaagent.jar

When I tried invoking an API, Tempo produced this error:

level=info ts=2022-09-12T02:19:10.4598065Z caller=distributor.go:550 msg=received spanid=5ac32a67f04742e3 traceid=ceafe0bf1df78d377f2a9bdbb6706445
level=warn ts=2022-09-12T02:19:10.4609167Z caller=grpc_logging.go:43 method=/tempopb.Pusher/PushBytesV2 duration=0s err=“open E:\Monitoring\tempo\wal\c84069fc-c0d6-4078-bb46-0c55032b0296:single-tenant:v2:snappy:v2: The filename, directory name, or volume label syntax is incorrect.” msg=gRPC
level=error ts=2022-09-12T02:19:10.4624738Z caller=rate_limited_logger.go:27 msg=“pusher failed to consume trace data” err=“rpc error: code = Unknown desc = open E:\Monitoring\tempo\wal\c84069fc-c0d6-4078-bb46-0c55032b0296:single-tenant:v2:snappy:v2: The filename, directory name, or volume label syntax is incorrect.”

On the service side, I saw this error log:

[otel.javaagent 2022-09-11 22:19:10:462 -0400] [OkHttp http://localhost:14250/…] WARN io.opentelemetry.exporter.internal.grpc.OkHttpGrpcExporter - Failed to export spans. Server responded with gRPC status code 2. Error message: open E:\Monitoring\tempo\wal\c84069fc-c0d6-4078-bb46-0c55032b0296:single-tenant:v2:snappy:v2: The filename, directory name, or volume label syntax is incorrect.

Looks like some path error, but I try many ways like absolute or relative path, still same problem.

Might want to change things so that paths are

E:/Monitoring/tempo/wal

Hi, thanks for reporting this. We just found that this is a known issue with Windows filename compatibility. Tempo doesn’t work on Windows because it uses the colon : character in the wal file names, which is not allowed. We are discussing a fix and some options on this Github pull request.

Do you know if Tempo works on Windows in Docker?

I did not try Docker in Windows, but Docker in Mac is ok.