Tengo una función en la nube (nodo 10) que envía métricas usando (@google-cloud/monitoring) MetricServiceClient .
Envío 25 métricas usando la sintaxis async-await una vez al día (hay una tarea similar en otro proyecto al mismo tiempo).
const request = { name: client.projectPath(projectId), timeSeries: [timeSeriesData], }; const options = { timeout: 120000 }; try { await client.createTimeSeries(request, options); return Promise.resolve(); } catch (error) { console.error(error); throw error;Pero de vez en cuando aparece un error en el entorno (pero no puedo reproducirlo localmente)
{ Error: 14 UNAVAILABLE: Deadline expired before operation could complete. at Object.callErrorFromStatus (/workspace/node_modules/@grpc/grpc-js/build/src/call.js:31:26) at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client.js:179:52) at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:336:141) at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:299:181) at process.nextTick (/workspace/node_modules/@grpc/grpc-js/build/src/call-stream.js:145:78) at process._tickCallback (internal/process/next_tick.js:61:11) code: 14, details: 'Deadline expired before operation could complete.', metadata: Metadata {internalRepr: Map { 'grpc-server-stats-bin' => [Array] }, options: {} } }Verifiqué diferentes valores para la opción de tiempo de espera, pero parece que no está conectado:
Error: 4 DEADLINE_EXCEEDED: Deadline exceeded la fecha límite que rastreé por el código fuente. Supongo que los detalles del error probablemente provengan del lado del servidor @grpc/grpc-js/src/call-stream.ts línea 592.
if (this.internalError.code === 'ECONNRESET') { code = Status.UNAVAILABLE; details = this.internalError.message;¿Alguien sabe de dónde puede venir?