Ablaufverfolgung: Bereichs- und Ablaufverfolgungs-IDs von übergeordneten zu untergeordneten Objekten durch Prozeduraufrufe¶
Achtung
Diese Verhaltensänderung ist im Bundle 2024_06 enthalten.
Den aktuellen Status des Bundles finden Sie unter Bundle-Verlauf.
In der Ablaufverfolgung verhalten sich Bereichs- und Ablaufverfolgungs-IDs wie folgt:
- Vor der Änderung:
Wenn der Handler in JavaScript oder Snowflake Scripting geschrieben ist, ist die
trace_id
für jeden der durch verkettete gespeicherte Prozeduren oder UDFs erstellten Bereiche eindeutig.Das Feld
parent_span_id
ist nicht in der RECORD-Spalte der Ereignistabelle vorhanden.Anbietern und Verbrauchern von Native Apps werden unterschiedliche
trace_id
-Werte für freigegeben Ereignisse angezeigt. Anbietern wird die Hash-Version angezeigt.- Nach der Änderung:
Mit dieser Änderung wird die Ablaufverfolgungs-ID für Handler, die in JavaScript und Snowflake Scripting geschrieben wurden, unterstützt. Für Handler, die in Python, Java und Scala geschrieben wurden, gibt es dies bereits. Die neue Verhaltensweise gilt sowohl für gespeicherte Prozeduren und UDFs, deren Handler in JavaScript geschrieben sind, als auch für Handler für gespeicherte Prozeduren, die in Snowflake Scripting geschrieben sind.
Bereiche, die durch verkettete Prozeduren oder UDFs mit JavaScript oder Snowflake Scripting Handlern erzeugt werden, haben die gleiche
trace_id
. Die RECORD-Spalte kann einparent_span_id
-Attribut enthalten.Bereiche, die durch verkettete Prozeduren oder UDFs mit JavaScript oder Snowflake Scripting Handlern erzeugt werden, haben eine Übergeordnet/Untergeordnet-Beziehung zwischen
parent_span_id
undspan_id
. Gespeicherte Prozeduren mit JavaScript- oder Snowflake Scripting-Handlern können andere gespeicherte Prozeduren in einer beliebig langen Kette aufrufen. UDFs können keine SQL-Anweisungen ausführen, sodass der Aufruf einer UDF die Kette beendet. Die Ablaufverfolgungsinformationen werden jedoch weiterhin an den Bereich (Span) der UDF weitergegeben.Wenn die gespeicherte Prozedur oder UDF mit einem JavaScript- oder Snowflake Scripting-Handler vom Benutzer direkt (der Stamm) aufgerufen wurde, dann ist die
trace_id
eine zufällige ID und es gibt keineparent_span_id
. Wenn die Ablaufverfolgung für eine gespeicherte Prozedur deaktiviert ist und diese eine andere gespeicherte Prozedur oder UDF aufruft, dann ist dertrace_id
-Wert der untergeordneten Bereiche (Spans) zufällig und es gibt keinenparent_span_id
-Wert. Mit anderen Worten: Die Ablaufverfolgung wird beim untergeordneten Element neu gestartet.Native Apps-Anbieter und -Verbraucher sehen dieselbe
trace_id
für gemeinsam genutzte gespeicherte JavaScript- oder Snowflake Scripting-Prozeduren oder UDF-Ereignisse, sodass sie einfacher zu debuggen sind.
Diese Änderung wurde vorgenommen, um das Debugging zu verbessern.
Ref.: 1683