NAME
OpenTelemetry::Exporter::OTLP::Encoder::Protobuf - A Protobuf encoder for the OTLP exporter
SYNOPSIS
use OpenTelemetry::Exporter::OTLP::Encoder::Protobuf;
my $encoded = OpenTelemetry::Exporter::OTLP::Encoder::Protobuf->new
->encode(\@spans);
DESCRIPTION
This is an encoder class used by OpenTelemetry::Exporter::OTLP when using the "http/protobuf" protocol. It encodes telemetry data as a Protobuf binary blob complying with the 1.0.0 version of the OTLP specification.
This encoder uses OpenTelemetry::Proto to encode data, which means it will require the availability of Google::ProtocolBuffers::Dynamic to work. Please refer to the documentation of those modules for more details.
This class is unlikely to be of use outside the OTLP exporter.
METHODS
new
$encoder = OpenTelemetry::Exporter::OTLP::Encoder::Protobuf->new;
Constructs a new instance of the OpenTelemetry::Exporter::OTLP::Encoder::Protobuf encoder. This method takes no arguments.
encode
$encoded = $encoder->encode(\@spans);
It takes a reference to a Perl data structure, and encodes it as appropriate for this encoder. In this case, it restructures the data to suit the OTLP schema, and runs it through "serialise" before returning it.
serialise
$serialised = $encoder->serialise($data);
Takes a Perl data structure and returns it as serialised data according to the format used by this encoder. For this encoder, this returns the payload as a binary Protobuf blob.
content_type
$mime = $encoder->content_type;
Returns the MIME type appropriate for the encoding used by this encoder, as a value suitable to be used as the Content-Type header in an HTTP request. For this encoder, this is equal to "application/x-protobuf".
SEE ALSO
ACKNOWLEDGEMENTS
Special thanks to CV-Library Ltd. for their support in the development of this library.
COPYRIGHT AND LICENSE
This software is copyright (c) 2023 by José Joaquín Atria.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.