21 const std::vector<OtlpLogItem>& batch,
23 std::size_t max_payload_bytes) {
24 if (max_payload_bytes == 0) {
25 std::vector<std::string> chunks;
34 std::vector<std::string> chunks;
35 std::vector<OtlpLogItem> current_payload;
37 for (std::size_t i = 0; i < batch.size(); ++i) {
38 std::vector<OtlpLogItem> candidate_payload = current_payload;
39 candidate_payload.push_back(batch[i]);
43 if (candidate_json.size() <= max_payload_bytes) {
44 current_payload = std::move(candidate_payload);
45 }
else if (current_payload.empty()) {
47 chunks.push_back(std::move(candidate_json));
51 current_payload.clear();
52 current_payload.push_back(batch[i]);
56 if (!current_payload.empty()) {
std::vector< std::string > build_otlp_logs_json_payload_chunks(const std::vector< OtlpLogItem > &batch, const OtlpJsonFormatConfig &format, std::size_t max_payload_bytes)
Builds OTLP JSON payload chunks from a batch, splitting when a chunk would exceed max_payload_bytes.