insert_traces = {
segments_table;
return Promise.all(
traces.Traces.map(async (trace) =>
db.sql`INSERT INTO traces VALUES (${trace.Id}, ${trace.Duration})`
.then(() =>
Promise.all(
trace.Segments.map((segment) => {
const doc = JSON.parse(segment.Document);
const insert_doc = (doc, parent_id) => {
const parent_insert = db.sql`INSERT INTO segments VALUES (
${doc.id},
${doc.name},
${new Date(doc.start_time * 1000)},
${new Date(doc.end_time * 1000)},
${doc.parent_id || parent_id},
${trace.Id},
${doc?.metadata?.rum?.pageId},
${doc?.http?.request?.method?.toUpperCase()},
${doc?.http?.request?.url},
${doc?.http?.response?.status},
)`.catch((err) => {
console.error(err);
});
return parent_insert.then(
Promise.all(
(doc.subsegments || []).map((subsegment) =>
insert_doc(subsegment, segment.Id)
)
)
);
};
return insert_doc(doc);
})
)
)
.catch((err) => {
console.error(err);
})
)
);
}