-
Notifications
You must be signed in to change notification settings - Fork 170
Promscale as the Jaeger certified storage #1621
Comments
With little bit of tinkering, I could run the upstream jaeger integration tests.
in the above list, first 3 are running(with little modification), but other tests will need some changes in promscale. |
The above test ingests 10K spans under a single trace id and get them in a single GetTraces operation. |
Here is a test result without |
Test execution summary:
|
The current find trace query does a EDIT:Event after Actually the span has an attribute with a type as "BINARY" which gets translated into base64 encoded string[1] while storing in DB, when jaeger queries it is returned as a string. |
When I use
|
Few more are passing after adding a second delay in grpc_test Refresh function. Looks like a bug in somewhere in the grpc plugin implementation(Note --- PASS: TestExternalGRPCStorage/FindTraces/Tags_in_different_spots (0.00s) EDIT:It uses Streaming Span writer which is async. |
This one fails when operationName field of Span is empty. EDIT:Following error is thrown when OperationName is empty,
EDIT:operations table has a constraint on the span_name column which prevents empty insertions. EDIT:I could think of 2 ways to fix the problem.
|
This has a tag query across span, resource and event. It fails when you have 2 events with 2 distinct tags and both of them are queried at a time. e.g.
When you query e.tags @> ANY($3::jsonb[]) AND e.tags @> ANY($5::jsonb[]) It also depends on fix from #1621 (comment) |
The problem with The same span is sent 10008 times in the test: What this means is that we end up with 10008 entries in _ps_trace.span that are identical:
If you look at the span fixture it has 2 empty (except for timestamp) entries in
When we try to get the trace we use
|
Related to If I give each Span in the test a unique ID the test passes. Maybe we can add this change to the test. We can use the following arguments to state that the current test is not very representative of a real scenario: The opentelemtry spec defines the SpanID
The Jaeger Thrift model states:
Also, Jaeger has a depuper for non unique spanIDs, because as the documentation says:
I guess the other option is handling duplicates ourselves. |
GetLargeSpans fixed by jaegertracing/jaeger#3912 |
The problems with Spans in fixture have different trace_id:This test sends a span (a) from a trace and has 3 references to 2 other spans (b and c):
The problem is with the child relationship and the fact that each span has a different traceId. This breaks the parent relationship because when the translator tries to get the parent span it cannot find a match given that all of the spans have different traces, the ParentSpanID method makes the following assertion I think for this point we can propose a fix to the test. Like we did for the OTEL doesn't have a concept of refTypeThe OTEL model doesn't define a span reference type (in the case of OTEL it would be link). When translating from otel to jaeger the parent span is assign the They explicitly say:
This is a problem for the test because it's only setting one The expected based on the fixture is:
The first 2 are The actual result we are getting because the translator sets only one
As you can see, since the translator takes the first Again, we can ask for a more realistic test which sets only one parent for the span. Aggregate for links are not returning dataThe third problem is that the the query doesn't seem to be returning all the links properly. The aggregate function filter clause doesn't seem to be working correctly. We are doing
|
The actual problem is that both |
Hmm, the expectation is to run tests in isolation. See |
Fixed in f02d9a8 |
All tests are passing now. |
Add integration tests for promscale in upstream jaeger so that we can claim promscale meets all the expectations.
EDIT
Summary
Storage integration test failures shall be broadly classified into the following categories,
Steps to run integration test
The text was updated successfully, but these errors were encountered: