![GCP StackDriver: ¿Cómo correlaciono (y anido) registros de información con registros de seguimiento?](https://rvso.com/image/1606675/GCP%20StackDriver%3A%20%C2%BFC%C3%B3mo%20correlaciono%20(y%20anido)%20registros%20de%20informaci%C3%B3n%20con%20registros%20de%20seguimiento%3F.png)
Por favor ayuda, no he tenido éxito durante 3 días :/
Estoy implementando varios servicios en Google Cloud Run y me gustaría rastrear las solicitudes y correlacionar los registros con esas solicitudes a medida que las solicitudes pasan por los servicios. StackDriver tiene una gran plataforma para esto en "StackDriver Trace". Estoy usando la biblioteca Google.Cloud.Diagnostics en mis API web principales de asp.net. Puedo rastrear solicitudes con éxito, iniciar intervalos y ver los intervalos anidados dentro del seguimiento en StackDriver Trace Timeline. Sin embargo, no sé cómo hacer que mis registros se correlacionen con las trazas y los tramos.
LogEntry
Los documentos de StackDriver indican que la API de registro reconocerá la escritura de "campos especiales" en el objeto.
Dice específicamente esto sobre el trace
campo:
The value of this field should be formatted as projects/[PROJECT-ID]/traces/[TRACE-ID], so it can be used by the Logs Viewer and the Trace Viewer to group log entries and display them in line with traces.
fuente:https://cloud.google.com/logging/docs/agent/configuration#special-fields
Probé muchas cosas diferentes con mi JSON estructurado, pero Stackdriver Trace View no reconoce mis registros y los anida dentro del seguimiento de la solicitud. Actualmente estoy incluyendo tanto el trace como el spanId en el JSON.
Este es uno de mis registros que StackDriver Trace no anidará en el seguimiento:
{
insertId: "5da6c3a200j0923bx23x2"
jsonPayload: {
ConnectionId: "0HLQI121N94JM"
CorrelationId: null
RequestId: "0HLQI121N94JM:00000001"
RequestPath: "/graphql"
message: "Getting Collection of type: FakeItem in GetCollectionOfItemsAsync"
messageTemplate: "Getting Collection of type: FakeItem in GetCollectionOfItemsAsync"
spanId: "4560986706170855936"
timestamp: "2019-10-16T07:15:46.8713740Z"
trace: "projects/myProject/traces/04b4a840df0289bb9fddcd62235d3ee4"
}
labels: {
instanceId: "00bf4bf02d34e072dc1c49x8dj943x4b5609mubm0409u566ad08acf6283d2b5135651fd8f2633e7b06e7dde4b96cfddbf5373a642da0b65fb21cf87a5aad"
}
logName: "projects/myProject/logs/run.googleapis.com%2Fstdout"
receiveTimestamp: "2019-10-16T07:15:47.113845061Z"
resource: {
labels: {
configuration_name: "baseproject-graphql"
location: "us-central1"
project_id: "myProject"
revision_name: "baseproject-graphql-vhglp"
service_name: "baseproject-graphql"
}
type: "cloud_run_revision"
}
timestamp: "2019-10-16T07:15:46.871489Z"
}
Aquí hay un registro generado por gcp que sí es reconocido:
{
httpRequest: {
latency: "0.026068056s"
protocol: "HTTP/1.1"
remoteIp: "73.158.189.48"
requestMethod: "POST"
requestSize: "1950"
requestUrl: "https://baseproject-api.myUrl.com/graphql"
responseSize: "2768"
serverIp: "152.289.4.125"
status: 200
userAgent: "PostmanRuntime/7.18.0"
}
insertId: "5da6c3a8j90kjo9db8346"
labels: {
instanceId: "00bf4bf02d34e072dc1cfda1073f2f5ec6888d75e1d75f26259006ad08acf6283d2b5135651fd8f26398n9hu0h9h09gm08g76f67f567fb21cf87a5aad"
}
logName: "projects/myProject/logs/run.googleapis.com%2Frequests"
receiveTimestamp: "2019-10-16T07:15:47.207098181Z"
resource: {
labels: {
configuration_name: "baseproject-graphql"
location: "us-central1"
project_id: "myProject"
revision_name: "baseproject-graphql-vhglp"
service_name: "baseproject-graphql"
}
type: "cloud_run_revision"
}
severity: "INFO"
timestamp: "2019-10-16T07:15:46.877387Z"
trace: "projects/myProject/traces/04b4a840df0289bb9fddcd62235d3ee4"
}
¿¿¿Alguna idea???