Skip to content

Commit

Permalink
fix: out of range
Browse files Browse the repository at this point in the history
  • Loading branch information
Cluas committed Mar 18, 2023
1 parent a2a52e1 commit 2a2464f
Showing 1 changed file with 10 additions and 29 deletions.
39 changes: 10 additions & 29 deletions parsers.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ let snappy = null
try {
snappy = require('snappyjs')
} catch (e) {}
const { pipeline } = require('stream')
const stream = require('stream')
const protobufjs = require('protobufjs')
const path = require('path')
Expand Down Expand Up @@ -171,41 +170,23 @@ async function prometheusPushProtoParser (req, payload) {

/**
* @param req {FastifyRequest}
* @param payload {Stream}
* @param payload {Stream} zlib.Gunzip
*/
async function otlpPushProtoParser (req, payload) {
const length = getContentLength(req, 5e6)
await shaper.register(length)
let body = []
const otelStream = stream.Readable.from(payload)

const transform = new stream.Transform({
objectMode: true,

transform (chunk, _, callback) {
try {
const decodedBody = OTLPTraceData.decode(chunk)
const parsedBody = OTLPTraceData.toObject(decodedBody, {
longs: String,
bytes: String
})
callback(null, parsedBody)
} catch (err) {
callback(err)
}
}
otelStream.on('data', data => {
body.push(data)
})

await new Promise((resolve, reject) => {
pipeline(otelStream, transform, (err) => {
if (err) {
reject(err)
} else {
resolve()
}
})
await new Promise(resolve => otelStream.once('end', resolve))
body = Buffer.concat(body)
body = OTLPTraceData.toObject(OTLPTraceData.decode(body), {
longs: String,
bytes: String
})

return transform.read()
return body
}

/**
Expand Down

0 comments on commit 2a2464f

Please sign in to comment.