Coldstart Processor creating broken traces for cold start and next invocation
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 38/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- aws, nodejs
- Ambito
- cloud, observability
Direzione di ricerca
Inizia riproducendo lo scenario a quattro richieste con i layer Node.js e collector 0.19.0, usando la configurazione coldstart di collector.yaml mostrata. Confronta le trace risultanti e l’output del collector, incluso lo span di init della prima invocation; il lavoro è completato quando arrivano quattro trace complete e distinte e la trace coldstart include i dati di inizializzazione previsti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
I was unable to get the coldstart processor to do what is says that it does on the tin. If i submit 4 requests to a helloworld function behind an api gateway I only end up with 3 traces in my observability platform. Two of these traces will use the same internal spans, have missing spans and appears to be related to the cold start. One trace goes missing. Invocations from coldstart + 3 appear normal.
Steps to reproduce
- Create a hello world Lambda function fronted by either a REST or HTTP api in AWS
- Deploy the api and function with the otel collector and nodejs layers bundled with a custom collector.yaml that enables the coldstart processor. ie.
processors:
coldstart:
resource:
attributes:
- key: deployment.environment.name
value: '${env:ENVIRONMENT_NAME}'
action: upsert
Additional configure the collector.yaml to send to your observability platform of choice.
I had the following env variables set for the function:
// OpenTelemetry configuration
AWS_LAMBDA_EXEC_WRAPPER: '/opt/otel-handler',
OPENTELEMETRY_COLLECTOR_CONFIG_URI: '/var/task/collector.yaml',
OTEL_TRACES_SAMPLER: 'always_on',
OTEL_PROPAGATORS: 'tracecontext,baggage',
OTEL_LAMBDA_DISABLE_AWS_CONTEXT_PROPAGATION: 'true',
OTEL_NODE_ENABLED_INSTRUMENTATIONS: 'aws-sdk,aws-lambda,http,undici',
OTEL_SERVICE_NAME: serviceName,
OPENTELEMETRY_EXTENSION_LOG_LEVEL: 'INFO',
I tried active tracing on, passthrough and off.
I tried the insights layer on and off.
- Manually trigger a http get request to the api/function endpoint four times
- Check traces that arrive in the observability platform
What did you expect to see?
I expected to see 4 traces arrive in my observability platform (grafana cloud). I expected the first trace that would have triggered a cold start to have a trace that includes a span for the init phase and be of a longer duration than the other three.
What did you see instead?
- Only three traces arrived.
-
One trace went missing
-
The first two traces are broken
- trace 1
- trace 2
- trace 3
What version of collector/language SDK version did you use?
- 0.19.0 (collector layer)
- 0.19.0 (nodejs layer)
What language layer did you use?
nodejs
Additional context
I tried a few different things to try and get this to work:
- bundling to commonjs and esm
- using a http or rest api gateway
- removing the batch and decouple processors
- putting the coldstart processor first/last in order of execution
- setting the function active tracing to on, passthrough and off.
- removing the insight lambda layer
Tip: React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.
- Lingua principale
- Go
- Stelle
- 433
- Fork
- 249
- Merge medio
- 1g 12h
- PR unite (30g)
- 39
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di open-telemetry/opentelemetry-lambda
-
enhancement ruby
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
open-telemetry/opentelemetry-lambda#2741 ·
I maintainer di solito rispondono entro 2 giorni
-
processor/cold_start
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
open-telemetry/opentelemetry-lambda#2738 ·
I maintainer di solito rispondono entro 2 giorni
-
Fix install-toolsApertago
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
open-telemetry/opentelemetry-lambda#2736 ·
I maintainer di solito rispondono entro 2 giorni
-
enhancement javascript
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
open-telemetry/opentelemetry-lambda#2744 ·
I maintainer di solito rispondono entro 2 giorni
-
enhancement python
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
open-telemetry/opentelemetry-lambda#2742 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di open-telemetry/opentelemetry-lambda
Issue simili
-
Support kubevirt CRDsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
rancher/rancher-ai-mcp#206 ·
I maintainer di solito rispondono entro 1 giorno
-
test: make command and stdio startup tests portableForse già presa @dajiaohuang l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
mark3labs/mcp-go#1220 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
open-telemetry/opentelemetry-go-compile-instrumentation#1743 ·
I maintainer di solito rispondono entro 2 giorni
-
FindInBatches panics for non-positive batch sizesForse già presa @Dazhou-del l’ha presa oggi. Apertatype:with reproduction steps
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno