@@ -101,6 +101,22 @@ namespace configuration
101101// FIXME: proper sizing
102102constexpr size_t MAX_SAMPLER_DEPTH = 10 ;
103103
104+ static OtlpHttpEncoding ParseOtlpHttpEncoding (const std::string &name)
105+ {
106+ if (name == " protobuf" )
107+ {
108+ return OtlpHttpEncoding::protobuf;
109+ }
110+
111+ if (name == " json" )
112+ {
113+ return OtlpHttpEncoding::json;
114+ }
115+
116+ OTEL_INTERNAL_LOG_ERROR (" OtlpHttpEncoding: name = " << name);
117+ throw InvalidSchemaException (" Illegal OtlpHttpEncoding" );
118+ }
119+
104120static std::unique_ptr<StringArrayConfiguration> ParseStringArrayConfiguration (
105121 const std::unique_ptr<DocumentNode> &node)
106122{
@@ -199,7 +215,9 @@ ParseOtlpHttpLogRecordExporterConfiguration(const std::unique_ptr<DocumentNode>
199215 model->headers_list = node->GetString (" headers_list" , " " );
200216 model->compression = node->GetString (" compression" , " " );
201217 model->timeout = node->GetInteger (" timeout" , 10000 );
202- // FIXME: encoding
218+
219+ std::string encoding = node->GetString (" encoding" , " protobuf" );
220+ model->encoding = ParseOtlpHttpEncoding (encoding);
203221
204222 return model;
205223}
@@ -494,6 +512,9 @@ ParseOtlpHttpPushMetricExporterConfiguration(const std::unique_ptr<DocumentNode>
494512 model->default_histogram_aggregation =
495513 ParseDefaultHistogramAggregation (default_histogram_aggregation);
496514
515+ std::string encoding = node->GetString (" encoding" , " protobuf" );
516+ model->encoding = ParseOtlpHttpEncoding (encoding);
517+
497518 return model;
498519}
499520
@@ -1213,6 +1234,9 @@ static std::unique_ptr<OtlpHttpSpanExporterConfiguration> ParseOtlpHttpSpanExpor
12131234 model->compression = node->GetString (" compression" , " " );
12141235 model->timeout = node->GetInteger (" timeout" , 10000 );
12151236
1237+ std::string encoding = node->GetString (" encoding" , " protobuf" );
1238+ model->encoding = ParseOtlpHttpEncoding (encoding);
1239+
12161240 return model;
12171241}
12181242
0 commit comments