GCP StackDriver: как сопоставить (и вложить) журналы информации с журналами трассировки?

GCP StackDriver: как сопоставить (и вложить) журналы информации с журналами трассировки?

Пожалуйста, помогите, у меня уже 3 дня ничего не получается :/

Я развертываю несколько сервисов в Google Cloud Run и хотел бы отслеживать запросы и сопоставлять журналы с этими запросами, когда запросы проходят через сервисы. У StackDriver есть отличная платформа для этого в "StackDriver Trace". Я использую библиотеку Google.Cloud.Diagnostics в моих основных веб-API asp.net. Я могу успешно отслеживать запросы, запускать интервалы и видеть интервалы, вложенные в трассировку, в StackDriver Trace Timeline. Однако я в тупике, как заставить мои журналы сопоставляться с трассировками и интервалами.

В документации StackDriver указано, что запись «специальных полей» в LogEntryобъект будет распознана API ведения журнала.

В нем конкретно говорится следующее об этой traceобласти:

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. 

источник:https://cloud.google.com/logging/docs/agent/configuration#special-fields

Я пробовал много разных вещей для моего структурированного JSON, но Stackdriver Trace View не распознает мои логи и не вкладывает их в трассировку запроса. В настоящее время я включаю и трассировку, и spanId в JSON.

Вот один из моих журналов, который StackDriver Trace не вкладывает в трассировку:

{
 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"  
}

Вот журнал, сгенерированный gcp, который распознается:

{
 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"  
}

Есть идеи???

Связанный контент