SchwarzIT / terraform-provider-stackit

Community-maintained STACKIT Terraform provider
Apache License 2.0
18 stars 6 forks source link

Extend output for all "Acceptance Tests" with the traceID from the response's "Traceparent" header #153

Closed TC-AVNP closed 1 year ago

TC-AVNP commented 1 year ago

Hello team,

in order to enable STACKIT to dig deeper into the current issues you are experiencing in the "Acceptance Tests" github actions pipeline, I would like to ask the team to extend the content of logs with the Traceparent header value from the response.

All requests made to STACKIT APIs extract the request's Traceparent header traceID and use it for request tracing, or, in the absence of such header value, create their own. In both cases the response contains the traceID which was used for the corresponding request.

I would like it to be possible that all requests, failed or successful, to output the Traceparent header.

If you have any questions, please reach out to pedro.condeco@freiheit.com Cheers

TC-AVNP commented 1 year ago

Hello again guys, I think I need to make for feature request a little bit more clear. I see all test runs already contain one tracID which is outputted when the test starts. The problem is that the traceID is used for all of the product's tests. This leads to an extremely hard to consume trace, which contains the spans for all tests, here is an example from DSA #396 run: image It contains over 13k spans.

The feature request is meant to extend the test pipeline, each test should contain it's own traceID, so that it's easier for STACKIT to consume and identify the root cause of the the ones that are failing.

do87 commented 1 year ago

i need a little bit of clarification here currently the trace IDs are unique in each test, as you can see here: https://github.com/SchwarzIT/terraform-provider-stackit/actions/runs/5501600095/jobs/10025300410 https://github.com/SchwarzIT/terraform-provider-stackit/actions/runs/5501600095/jobs/10025300352

do you want that instead of a trace ID per test a new one will be created for every client call that happens during the test?

TC-AVNP commented 1 year ago

Hello @do87 ,

Currently, as you stated, each batch of tests has it's own traceID, the problem is, each test performs multiple requests, this makes it hard to pinpoint the issues.

Concrete example, the data-services instance resource performs multiple tests, and all of them share the same trace. image

Ideally it would be as you stated:

a new one will be created for every client call that happens during the test Not for every Client call since I imagine a single tests has multiple http requests, but rather per test.

In the example above, take the first test, TestAcc_ResourceElasticSearchInstanceJob, would have it's own traceID, TestAcc_ResourceLogMeInstanceJob would then have a different one, so on and so forth.

Let me know if this is feasible.

Cheers

do87 commented 1 year ago

currently being tested as part of v1.22.0-rc0