Class BinarySerializationUtils
java.lang.Object
io.opencensus.implcore.tags.propagation.BinarySerializationUtils
Methods for serializing and deserializing
TagContext
s.
The format defined in this class is shared across all implementations of OpenCensus. It allows tags to propagate across requests.
OpenCensus tag context encoding:
- Tags are encoded in single byte sequence. The version 0 format is:
<version_id><encoded_tags>
<version_id> == a single byte, value 0
<encoded_tags> == (<tag_field_id><tag_encoding>)*
<tag_field_id>
== a single byte, value 0<tag_encoding>
:<tag_key_len><tag_key><tag_val_len><tag_val>
<tag_key_len>
== varint encoded integer<tag_key>
== tag_key_len bytes comprising tag key name<tag_val_len>
== varint encoded integer<tag_val>
== tag_val_len bytes comprising UTF-8 string
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final TagMetadata
(package private) static final int
(package private) static final int
(package private) static final int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static final TagKey
createTagKey
(String name) private static final TagValue
createTagValue
(TagKey key, String value) private static final String
decodeString
(ByteBuffer buffer) (package private) static TagMapImpl
deserializeBinary
(byte[] bytes) private static final void
encodeString
(String input, com.google.common.io.ByteArrayDataOutput byteArrayDataOutput) private static final void
private static Map
<TagKey, TagValueWithMetadata> parseTags
(ByteBuffer buffer) private static final void
putVarInt
(int input, com.google.common.io.ByteArrayDataOutput byteArrayDataOutput) (package private) static byte[]
serializeBinary
(TagContext tags)
-
Field Details
-
METADATA_UNLIMITED_PROPAGATION
-
VERSION_ID
static final int VERSION_ID- See Also:
-
TAG_FIELD_ID
static final int TAG_FIELD_ID- See Also:
-
TAGCONTEXT_SERIALIZED_SIZE_LIMIT
static final int TAGCONTEXT_SERIALIZED_SIZE_LIMIT- See Also:
-
-
Constructor Details
-
BinarySerializationUtils
private BinarySerializationUtils()
-
-
Method Details
-
serializeBinary
- Throws:
TagContextSerializationException
-
deserializeBinary
-
parseTags
private static Map<TagKey,TagValueWithMetadata> parseTags(ByteBuffer buffer) throws TagContextDeserializationException -
createTagKey
-
createTagValue
private static final TagValue createTagValue(TagKey key, String value) throws TagContextDeserializationException -
encodeTag
private static final void encodeTag(Tag tag, com.google.common.io.ByteArrayDataOutput byteArrayDataOutput) -
encodeString
private static final void encodeString(String input, com.google.common.io.ByteArrayDataOutput byteArrayDataOutput) -
putVarInt
private static final void putVarInt(int input, com.google.common.io.ByteArrayDataOutput byteArrayDataOutput) -
decodeString
-