How to start trace with custom trace-id and parent-id?
Les mainteneurs répondent en général sous 2 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
- Type d'issue
- Fonctionnalité
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- java, kafka
- Domaine
- distributed-systems, observability-sre
Piste de recherche
Commencez par les points d’entrée Java présentés dans l’exemple—GlobalTracer.get(), buildSpan(...).asChildOf() et CustomSpanContext—et comparez la manière dont les en-têtes Kafka stockés sont consommés dans le conteneur outbox. Déterminez quelle API prise en charge, s’il en existe une, accepte le trace-id et le parent-id tout en préservant le tracing distribué. C’est terminé lorsqu’un span provenant de publishFromOutbox apparaît dans la trace existante avec des logs corrélés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Library Name
micronaut
Library Version(s)
dd-trace:1.50.1
Describe the feature you'd like
Hi,
We are storing outbox events for Kafka in the database with current span context headers:
headers={
x-datadog-parent-id=1425649086485655485,
x-datadog-sampling-priority=1,
tracestate=dd=s:1;
o:rum;
p:13c8ec4a6e566fbd,
x-datadog-origin=rum,
traceparent=00-000000000000000024fefac4c68ae928-13c8ec4a6e566fbd-01,
x-datadog-trace-id=2665843752501438760
}
and when these outbox events are picked (by a different container), we want to trace that operation but attach those spans to an already existing trace so that we can have support for:
- distributed tracing
- distributed logs
Is your feature request related to a problem?
No response
Describe alternatives you've considered
This is what we tried
void publishFromOutbox(final Outbox outboxEvent) {
final var tracer = GlobalTracer.get();
final Span span = tracer.buildSpan(JOBS)
.withTag(DDTags.RESOURCE_NAME, OUTBOX_SCHEDULER_PUBLISH)
.ignoreActiveSpan()
.asChildOf(new CustomSpanContext(
outboxEvent.headers().get(X_DATADOG_TRACE_ID), outboxEvent.headers().get(X_DATADOG_PARENT_ID)))
.start();
tracer.activateSpan(span);
publish(outboxEvent);
tracer.activeSpan().finish();
}
but we can see this doesn't work. Trace is not created or attached to any existing trace.
How can we accomplish starting trace with custom trace-id and parent-id? For PHP services we are using this handy method that you provide
/**
* Apply the distributed tracing information on the current and future spans. That API can be called if there is no
* other currently active span.
*
* The distributed tracing context can be reset by calling 'set_distributed_tracing_context("0", "0")'
*
* @param string $traceId The unique integer (128-bit unsigned) ID of the trace containing this span
* @param string $parentId The span integer ID of the parent span
* @param string|null $origin The distributed tracing origin
* @param array|string|null $propagated_tags If provided, propagated tags from the root span will be cleared and
* replaced by the given tags and applied to existing spans
* @return bool 'true' if the distributed tracing context was properly set, else 'false' if an error occurred
*/
function set_distributed_tracing_context(
string $traceId,
string $parentId,
?string $origin = null,
array|string|null $propagated_tags = null
): bool {}
Additional context
No response
- Langage dominant
- Java
- Étoiles
- 736
- Forks
- 364
- Merge moyen
- 3 j 9 h
- PR mergées (30 j)
- 182
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de DataDog/dd-trace-java
-
Update DEFAULT_HTTP_CLIENT_ERROR_STATUSES to include 5xx status codesPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouvertetype: feature request
Difficulté 1/5 1-3 heures Accessibilité débutants 70/100
DataDog/dd-trace-java#10245 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
gRPC server instrumentations (grpc-1.5, armeria-grpc) don't make extracted W3C baggage current in the handlerPeut-être pris @mcculls l’a pris il y a 9 jours. Ouvertecomp: context propagation inst: grpc type: feature request
Difficulté 3/5 1-2 jours Accessibilité débutants 78/100
DataDog/dd-trace-java#12654 · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 62/100
DataDog/dd-trace-java#12608 ·
Les mainteneurs répondent en général sous 2 jours
-
type: bug report
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
DataDog/dd-trace-java#12597 ·
Les mainteneurs répondent en général sous 2 jours
-
Queueing-time profiler aborts the whole instrumentation install under a JDK 24+ AOT cache (zero spans); disabling that one feature is enoughPeut-être pris @mcculls l’a pris il y a 16 jours. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
DataDog/dd-trace-java#12540 · 5 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de DataDog/dd-trace-java
Issues similaires
-
GeminiUtil placeholder user turn ("Continue output. DO NOT look at this line ...") is flagged by prompt injection filtersPeut-être pris @innoprej l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour
-
Broken links in the docsOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 78/100
salesforce/multicloudj#667 ·
Les mainteneurs répondent en général sous 1 jour
-
Add ZammadPeut-être pris @Arslan-TR l’a pris aujourd’hui. Ouverterequest
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
endoflife-date/endoflife.date#11298 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
bug documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
Les mainteneurs répondent en général sous 1 jour
-
electron tech debt
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour