feat(bottlecap): add Step Functions trace extraction#449
Conversation
…to jordan.gonzalez/bottlecap/step-functions
| DatadogHeaderPropagator, DATADOG_PARENT_ID_KEY, DATADOG_SPAN_ID_KEY, | ||
| DATADOG_TRACE_ID_KEY, | ||
| }, | ||
| DatadogCompositePropagator, Propagator, |
There was a problem hiding this comment.
At point in the invocation is this happening? Is this extracting context from the inbound event? Or is it getting it from the start invocation request headers?
Just asking cuz it doesn't look like we have support for w3c headers. Is that correct?
There was a problem hiding this comment.
I'm not sure which line you're talking about, you left the comment in the import
There was a problem hiding this comment.
Just asking cuz it doesn't look like we have support for w3c headers. Is that correct?
We do, the composite propagator does that
There was a problem hiding this comment.
Ahhh, didn't realize this is just the import. Thanks for answering the question!
avedmala
left a comment
There was a problem hiding this comment.
Live tests and unit tests look good, thanks Jordan!! 🚢
| String::new() | ||
| } | ||
|
|
||
| fn get_carrier(&self) -> HashMap<String, String> { |
There was a problem hiding this comment.
No carrier, we generate the span context. The decision behind this is that the customer might be using W3C or other style, and we cannot just generate a carrier based on that, its easier to just return a SpanContext
| } | ||
|
|
||
| #[test] | ||
| fn test_generate_parent_id() { |
There was a problem hiding this comment.
These tests are the ones from the Go Agent, so we can see that data is generated as expected.
81d2e4f
into
jordan.gonzalez/bottlecap/universal-instrumentation
* add step functions events payloads * make some methods public * add `StepFunctionEvent` * adapt `SpanInferrer` for generated `SpanContext` * adapt `InvocationProcessor` for generated `SpanContext` * resolve merge conflicts * resolve clippy issues * add allow clippy * do not serialize the `entered_time` * set `None` for inferred span when `generated_span_context` exists * tidy code for last trace context update * fix unit test
* add step functions events payloads * make some methods public * add `StepFunctionEvent` * adapt `SpanInferrer` for generated `SpanContext` * adapt `InvocationProcessor` for generated `SpanContext` * resolve merge conflicts * resolve clippy issues * add allow clippy * do not serialize the `entered_time` * set `None` for inferred span when `generated_span_context` exists * tidy code for last trace context update * fix unit test
What?
Allows Step Function invokes to Lambda to appear in the same trace
How
Generating trace context data through deterministic methods
Notes