Как запросить трассировку с Google Cloud-трассировки

Google Cloud имеет мощный инструмент трассировки для анализа задержки запросов и RPC. Но, кажется, просто выбрать некоторые запросы, которые он считает заслуживающими следов. Иногда это достаточно хорошо, вы можете просто просмотреть существующие следы. Но если вы работаете над повышением производительности, вам нужна трассировка для вашего конкретного запроса прямо сейчас, вы не хотите ждать, пока он не будет сочтен интересным.

Вопросы

  • Какие правила вмешиваются в решение, какие запросы отслеживаются?

  • Есть ли способ запросить трассировки для определенного URI?

Либо из консоли разработчика, либо путем вызова некоторого API из нашего приложения? Или через какую-то конфигурацию app.yaml? Или мы должны просто подождать и помолиться за отличный алгоритм, чтобы выбрать наш запрос?

3 ответа

Вы можете принудительно отследить HTTP-запрос, правильно настроив заголовок контекста облачной трассировки:

$ curl -H "X-Cloud-Trace-Context: 01234567890123456789012345678901;o=1" http://<your-app>.appspot.com/<path>

01234567890123456789012345678901 (32 шестнадцатеричных символа) - это идентификатор трассы. Вы хотите использовать другой каждый раз.o=1 позволяет отслеживать.

Используйте следующий URL для просмотра трассировки (последняя часть - идентификатор трассировки): http://console.developer.google.com/traces/details/01234567890123456789012345678901

Поскольку вас интересует конкретный запрос, почему бы вам не использовать appstats? https://cloud.google.com/appengine/docs/python/tools/appstats?hl=en вы можете повысить производительность, включить приложения и развернуть их в другой версии, а также получить некоторый контроль над appengine_config.py

Я использую облачную трассировку для получения совокупного анализа, чтобы получить более подробную информацию по каждому запросу, я всегда использую appstats, так как он содержит больше информации.

Какие правила вмешиваются в решение, какие запросы отслеживаются?

В настоящее время существует частота выборки, которая определяет, какой запрос отслеживается. Запросы отбираются с небольшим количеством запросов в секунду на каждый экземпляр.

Есть ли способ запросить трассировки для определенного URI?

Следующее может помочь в зависимости от вашего сценария.

Вы можете добавить контекст трассировки, чтобы заставить запрос принудительно выполнять трассировку по запросу. Trace Context - это, по сути, HTTP-заголовок (X-Cloud-Trace-Context)

Вот указатель, который поможет ввести контекст трассировки: https://github.com/liqianluo/gcloud-trace-java/blob/master/cloud-trace-sdk-java-core/src/main/java/com/google/cloud/trace/sdk/TraceContext.java

Другие вопросы по тегам