Создайте основанные на журнале метрики, которые отслеживают дельту между 2 журналами - PullRequest
2 голосов
/ 19 апреля 2019

Допустим, у меня есть 3 приложения, которые работают вместе, и я использую pub-sub для отправки сообщений для «управления». Предположим, что в начале создается «идентификатор транзакции», который пропускается через приложения и записывается в журналы.

У меня будут логи, подобные следующим:

app1 - transactionIdX - started - timestamp01
app1 - transactionIdX - ended - timestamp02
app2 - transactionIdX - started - timestamp03
app1 - transactionIdY - started - timestamp04
app1 - transactionIdY - ended - timestamp05
app2 - transactionIdX - ended - timestamp06
app3 - transactionIdX - started - timestamp07
app2 - transactionIdY - started - timestamp08
app2 - transactionIdY - ended - timestamp09
app3 - transactionIdX - ended - timestamp10
app3 - transactionIdY - started - timestamp11
app3 - transactionIdY - ended - timestamp12

Я хотел бы иметь метрики, которые предоставляют такую ​​информацию:

  • actionIdX - на временной отметке 10

    • в приложении 1 - необходимо (timestamp02-timestamp01) секунд
    • в приложении 2 - необходимо (timestamp06-timestamp03) секунд
    • в приложении 3 - необходимо (timestamp10-timestamp07) секунд

actionIdY - на временной отметке 12

  • в приложении 1 - необходимо (timestamp05-timestamp04) секунд
  • в приложении 2 - необходимо (timestamp09-timestamp08) секунд
  • в приложении 3 - необходимо (timestamp12-timestamp11) секунд

Есть ли способ построить метрики на основе журнала, которые предлагают такую ​​информацию?

Ответы [ 2 ]

1 голос
/ 26 апреля 2019

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

Я вижу два возможных обходных пути:

  1. Инструментарий вашего приложения для ведения статистики о задержке транзакций, вывода ее в журналах и регистрации ее с использованием метрик на основе журналов.
  2. Выполнять такие вычисления во время запроса с помощью сценариев, используя что-то вроде Cloud Datalab , которое интегрируется со Stackdriver.

Отказ от ответственности: я инженер в Google Stackdriver.

0 голосов
/ 30 апреля 2019

С инструментами, которые GCP предоставляет прямо из коробки, вы можете делать только следующее:

1) Выберите все свои приложения в выпадающем списке:

enter image description here

2) Фильтрация журналов по вашему transactionIdX, поэтому вы увидите журналы всех служб для этой транзакции:

enter image description here

3)Или вы можете использовать расширенный фильтр и создавать более сложные фильтры:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...