({
trace,
dataset,
logger,
}: {
trace: Trace
dataset?: string
logger: Logger
})
| 196 | } |
| 197 | |
| 198 | export async function insertTrace({ |
| 199 | trace, |
| 200 | dataset, |
| 201 | logger, |
| 202 | }: { |
| 203 | trace: Trace |
| 204 | dataset?: string |
| 205 | logger: Logger |
| 206 | }) { |
| 207 | const resolvedDataset = dataset ?? DATASET |
| 208 | try { |
| 209 | // Create a copy of the trace and stringify payload if needed |
| 210 | const traceToInsert = { |
| 211 | ...trace, |
| 212 | payload: |
| 213 | trace.payload && typeof trace.payload !== 'string' |
| 214 | ? JSON.stringify(trace.payload) |
| 215 | : trace.payload, |
| 216 | } |
| 217 | |
| 218 | await getClient() |
| 219 | .dataset(resolvedDataset) |
| 220 | .table(TRACES_TABLE) |
| 221 | .insert(traceToInsert) |
| 222 | |
| 223 | // Note (James): This log was too noisy. |
| 224 | // logger.debug( |
| 225 | // { traceId: trace.id, type: trace.type }, |
| 226 | // 'Inserted trace into BigQuery', |
| 227 | // ) |
| 228 | return true |
| 229 | } catch (error) { |
| 230 | logger.warn( |
| 231 | { error: getErrorObject(error), traceId: trace.id }, |
| 232 | 'Failed to insert trace into BigQuery', |
| 233 | ) |
| 234 | return false |
| 235 | } |
| 236 | } |
| 237 | |
| 238 | export async function insertRelabel({ |
| 239 | relabel, |
nothing calls this directly
no test coverage detected