Концепции Istio - межсервисное общение и отслеживание - PullRequest
0 голосов
/ 08 ноября 2019

РЕДАКТИРОВАТЬ: я переписываю этот вопрос, чтобы сузить область, как это предлагается в комментариях.

Под Развертывание приложения , документация гласит:

Длязапустить образец с Istio не требует никаких изменений в самом приложении . Вместо этого вам просто нужно сконфигурировать и запустить службы в среде с поддержкой Istio, с колясками Envoy, внедренными вдоль каждой службы.

У меня есть внутренний API-интерфейс NodeJS, который записывает журналы с помощью Уинстон пакет. Я бы предположил, что приложение будет необходимо изменить, чтобы журналы из пакета winston могли участвовать в распределенной трассировке. Это правильно?

Ответы [ 2 ]

3 голосов
/ 08 ноября 2019

Распределенные системы отслеживания в целом требуют добавления заголовков к исходящим запросам, чтобы сообщить системе отслеживания и последующим задачам, к которым относится данный запрос. Хотя это не характерно для Istio, Istio документирует список заголовков OpenTracing , которые необходимо передать. Если вы этого не сделаете, то каждый вызов между службами будет отображаться как отдельная трасса, а не объединяться в единую сквозную трассировку.

Это отдельно от вашей системы регистрации,Если вы не отправляете журналы по HTTP на что-то вроде Logstash или непосредственно в Elasticsearch, журналы вообще не будут отображаться в виде следов. Обратная сторона этого заключается в том, что вам не нужно ничего менять в настройках регистрации, чтобы «работать» с Istio, но в основном потому, что прямого взаимодействия не так много.

1 голос
/ 10 ноября 2019

Нет, ваше предположение неверно. Трассировка Istio не имеет ничего общего с журналами. Это все о пользовательских заголовках, управляемых Istio и автоматически изменяемых колясками, чтобы каждый трафик, обрабатывающий коляски, мог ставить отметку времени при входе трафика (запрос) и выходе (ответ). Это дает вам несколько полезную картину фактических задержек между контейнерами, участвующими в сетевом вызове.

Кроме того, вы можете изменить код своего приложения, включив в него еще более подробную трассировку на уровне методов с использованием некоторого OpenTracing-совместимая библиотека для языка вашего приложения. По сути, вы добавляете несколько строк помимо регистрации в Winston, чтобы также включить контрольные точки вашего конвейера выполнения кода. Хотя вы можете анализировать свои журналы и измерять их по математике с временными метками журналов, все еще предстоит проделать большую работу, чтобы достичь того, что уже предлагает opentracing.

...