Невозможно увидеть следы в стекдрайвере
Я использую следующий код Java для отправки тестовой трассировки в стекдрайвер
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
GoogleCredential cred = GoogleCredential
.fromStream(
getClass().getClassLoader().getResourceAsStream("appengineServiceAccountKey.json"),
httpTransport,
jsonFactory)
.createScoped(CloudTraceScopes.all());
CloudTrace gceTrace = new CloudTrace.Builder(httpTransport, jsonFactory, cred)
.setApplicationName("Google Cloud Trace test app")
.build();
TraceSpan span = new TraceSpan();
span.setName("foo-bar");
span.setSpanId(new BigInteger("1"));
span.setStartTime("2017-04-02T16:12:03.636Z");
span.setEndTime("2017-04-02T16:12:04.636Z");
Trace trace = new Trace();
trace.setTraceId(UUID.randomUUID().toString().replaceAll("-","")); // Mandatory
trace.setSpans(Collections.singletonList(span));
Traces traces = new Traces();
traces.setTraces(Collections.singletonList(trace)); // Mandatory
cloudTraceService.projects().patchTraces("myproject", traces);
Однако я не вижу ничего, когда я получаю доступ к трассировке с консоли.
https://console.cloud.google.com/traces/details/8289f38bcb6e44c5b30c98953bee0018?project=myproject
Я что-то упускаю из виду?
Примечание. Я следую коду, упомянутому в разделе Как выполнить простой запрос Google Cloud Trace в Java
ОБНОВИТЬ
Я попробовал эквивалентную полезную нагрузку из проводника API, и он дал мне 200 ответов, но никаких признаков трассировки в консоли Stackdriver не было.
Следующим был мой груз
PATCH https://cloudtrace.googleapis.com/v1/projects/myproject/traces?key={YOUR_API_KEY}
{
"traces": [
{
"projectId": "myproject",
"spans": [
{
"startTime": "2017-04-03T16:12:03.636Z",
"endTime": "2017-04-03T16:12:04.636Z",
"spanId": "2"
"name": "bar-foo"
}
],
"traceId": "8289f38bcb6e44c5b30c98953bee0018"
}
]
}
отклик
200
- Show headers -
{
}
Приставка
Обновить:
Спасибо кому-то из слабого сообщества GCP, который указал, что имя Span отсутствует в полезной нагрузке, чтобы увидеть его в консоли трассировки. Я обновил код здесь. Однако я все еще не могу увидеть трассировку, когда отправляю ее из кода Java даже после установки имени диапазона.
Есть ли способ проверить, какая полезная нагрузка отправляется при запуске вышеуказанного Java-кода?
1 ответ
Наконец, я понял, что я не вызывал pt.execute() запрос после его сборки
PatchTraces pt =cloudTraceService.projects().patchTraces("myproject", traces);
pt.execute()
ссылка patchTraces# примеры