pub struct V8String {
pub encoded_string: Option<EncodedString>,
}Expand description
These are the protos for the V8 data source.
All events are associated to a V8 isolate instance. There can be multiple instances associated to a given thread, although this is rare.
Generated code in V8 is allocated in the V8 heap (in a special executeable
section), this means that code can be garbage collected (when no longer used)
or can be moved around (e.g. during heap compactation). This means that a
given callsite might correspond to function A at one point in time and to
function B later on.
In addition V8 code has various levels of optimization, so a function might
have multiple associated code snippets.
V8 does not track code deletion, so we have to indirectly infer it by detecting code overlaps, if a newer code creation event overlaps with older code we need to asume that the old code was deleted. Code moves are logged, and there is an event to track those.
Strings used by V8 can have different encodings, instead of coverting to a common encoding (e.g. UTF-8) on device is expensive. Instead we send the “raw” string and do the convestion at trace ingestion time.
ATTENTION: There is some overhead in using a message (as opossed to having the `oneof encoded_string`` direcly embedded in the message), so use this message in places were these extra bytes don’t matter that much. Next id: 5
Fields§
§encoded_string: Option<EncodedString>Trait Implementations§
impl Eq for V8String
Source§impl Message for V8String
impl Message for V8String
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.