Номер сергея трейсера: 22 апреля — Wikiwand

1992 год — Wikiwand

  • Введение1992 год
  • СобытияЯнварьФевральМартАпрельМайИюньИюльАвгустСентябрьОктябрьНоябрьДекабрьБез точных датПродолжающиеся события
  • Наука
  • Спорт
  • Музыка
  • Кино
  • Телевидение
  • Театр
  • Литература
  • Компьютерные игры
  • Авиация
  • Общественный транспорт
  • Метрополитен
  • Железнодорожный транспорт
  • Государственные флаги новых государств
  • Персоны года
  • РодилисьОктябрь
  • Скончались
  • Нобелевские премии
  • См. также
  • Примечания
  • Ссылки

1992 (ты́сяча девятьсо́т девяно́сто второ́й) год по григорианскому календарю — високосный год, начинающийся в среду. Это 1992 год нашей эры, 2 год 10-го десятилетия XX века 2-го тысячелетия, 3 год 1990-х годов.

Он закончился 30 лет назад.

Календарь на 1992 год
Январь
ПнВтСрЧтПтСбВс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Февраль
ПнВтСрЧтПтСбВс
1
2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29
Март
ПнВтСрЧтПтСбВс
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Апрель
ПнВтСрЧтПтСбВс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Май
ПнВтСрЧтПтСбВс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15
16
17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Июнь
ПнВтСрЧтПтСбВс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Июль
ПнВтСрЧтПтСбВс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Август
ПнВтСрЧтПтСбВс
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Сентябрь
ПнВтСрЧтПтСбВс
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Октябрь
ПнВтСрЧтПтСбВс
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Ноябрь
ПнВтСрЧтПтСбВс
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Декабрь
Пн ВтСрЧтПтСбВс
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
2-е тысячелетие
XVIII век — XIX век — XX век — XXI век — XXII век
1890-е 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899
1900-е 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909
1910-е 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919
1920-е 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929
1930-е 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939
1940-е 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949
1950-е 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959
1960-е 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969
1970-е 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979
1980-е 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989
1990-е 1990 1991 1992 1993 1994 1995 1996 1997
1998
1999
2000-е 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009
Хронологическая таблица

Объявлен ООН Международным годом космоса.

Первый год постсоветской эпохи.

Сергей Трейсер estatísticas do vídeo

Clicar para compartilhar: Confira as estatísticas de vídeo Youtube de Сергей Трейсер I encontrados no youtubers.me/5d179db3-fe41-401b-af0d-f14d2a229a36 Clique para twittar: Confira as estatísticas de vídeo Youtube de Сергей Трейсер I encontrados no youtubers.me/5d179db3-fe41-401b-af0d-f14d2a229a36

Сергей Трейсер toda a lista de vídeos Youtube

Vídeo Publicados visualizações de vídeos Comentários gostos Ódios Ganhos estimados
Восстанавливаю лесной лагерь Виталика Игнатюка 24.10.2021 64,839 493 6,901 187 $ 24 — $ 145
ЗАБРОШЕННЫЙ ГОРОД ПРИЗРАК ПОЧЕМУ ЗДЕСЬ ЖИВУТ ЛЮДИ?! | ЦУКРОВАРОВ 29. 09.2021 47,673 472 5,730 146 $ 17 — $ 107
Это круче любого клада находка 10 век Камрад и @Виталий Зеленый 03.08.2021 52,045 321 4,765 277 $ 19 — $ 117
Заблудились под землей в затопленной шахте @Виталий Зеленый @ДАНГИОН 22.07.2021 43,691 291 5,012 199 $ 16 — $ 98
300 км к заброшке на ПИТБАЙКЕ по бездорожью дальняк в Таракановский Форт 06.05.2021 61,208 799 8,282 258 $ 22 — $ 137
Откачали воду с землянки после потопа Сергей Трейсер 07.04.2021 100,080 1,039 10,023 281 $ 37 — $ 225
ДОМ ПОД ЗЕМЛЕЙ , ЗЕМЛЯНКУ НАШЛИ ВАНДАЛЫ , ЧТО С НЕЙ СЛУЧИЛОСЬ ? 28. 03.2021 119,027 3,756 14,986 290 $ 44 — $ 267
Построил дом на дереве , пол готов , начал делать стены 2ч 23.03.2021 137,553 1,502 15,064 370 $ 51 — $ 309
СТРОЮ ДОМИК НА ДЕРЕВЕ Сергей Трейсер 15.03.2021 92,268 1,353 13,864 415 $ 34 — $ 207
ИНТЕРНЕТ в ЗЕМЛЯНКУ Креосан и Супер Сус в гостях у Сергея Трейсера 23.02.2021 123,844 952 11,959 240 $ 46 — $ 278
СТРОЮ ДОМ ПОД ЗЕМЛЕЙ Сделал двухъярусную кровать Виталик Игнатюк Интересный и Фикус 09.01.2021 289,631 1,388 23,210 443 $ 108 — $ 651
Новый Год в Землянке Супер Сус Интересный и Фикус Камрад и Сергей Трейсер 31. 12.2020 234,229 1,562 21,279 645 $ 87 — $ 527
Провел свет в Землянку и сделал пол , строю дом под землей в Чернобыле 13.12.2020 536,260 6,703 56,978 1,277 $ 201 — $ 1.21K
Строю дом под землей первая ночевка в землянке 24 часа 08.12.2020 371,388 2,940 27,883 843 $ 139 — $ 835
Строим дом под землей в Чернобыле крыша землянки готова 3 часть 11.11.2020 302,031 3,321 22,897 697 $ 113 — $ 679
Восстанавливаем и крушим технику в Чернобыле смогли ЗАВЕСТИ ТРАКТОР В ЧЗО ? 07.11.2020 149,165 1,192 13,339 796 $ 55 — $ 335
Построили дом под землей в Чернобыле , лестница в землянке готова 02. 11.2020 262,671 1,554 23,397 557 $ 98 — $ 591
СТРОЮ ДОМ ПОД ЗЕМЛЕЙ НОВАЯ ЗЕМЛЯНКА В ЧЕРНОБЫЛЕ 26.10.2020 173,311 1,628 18,422 479 $ 64 — $ 389
Выживание 24 часа в Чернобыле Построили землянку в лесу 23.02.2020 205,867 1,549 28,993 659 $ 77 — $ 463
НАШЛИ В ЧЕРНОБЫЛЕ ЗАБРОШЕННУЮ ЦЕРКОВЬ КОТОРОЙ 220 ЛЕТ 15.02.2020 177,058 943 17,589 376 $ 66 — $ 398

Сергей Трейсер total de visualizações de vídeo contar estatísticas

Сергей Трейсер assinantes contagem total de estatísticas

Clicar para compartilhar: Confira as estatísticas de vídeo Youtube de Сергей Трейсер I encontrados no youtubers. me/5d179db3-fe41-401b-af0d-f14d2a229a36 Clique para twittar: Confira as estatísticas de vídeo Youtube de Сергей Трейсер I encontrados no youtubers.me/5d179db3-fe41-401b-af0d-f14d2a229a36

Контекст трассировки

Контекст трассировки

Рекомендация W3C

Подробнее об этом документе
Эта версия:
https://www.w3.org/TR/2021/REC-trace-context-1-20211123/
Последняя опубликованная версия:
https://www.w3.org/TR/trace-context-1/
Последний черновик редактора:
https://w3c.github.io/trace-context/
История:
https://www.w3.org/standards/history/trace-context-1
История коммитов
Отчет о внедрении:
https://github.com/w3c/trace-context/#reference-implementations
Редакторы:
Сергей Канжелев (Microsoft)
Морган Маклин (Google)
Алоис Рейтбауэр (Dynatrace)
Богдан Друтю (Google)
Ник Молнар (Майкрософт)
Юрий Шкуро (приглашенный эксперт)
Обратная связь:
GitHub w3c/контекст трассировки (вытягивающие запросы, новый выпуск, открытые вопросы)
public-trace-context@w3. org с темой trace-context (архивы)
Errata:
Errata существует.
Обсуждения
Мы на Гиттере.

Смотрите также перевод .

авторское право © 2021 W3C ® ( Массачусетский технологический институт , ERCIM , Кейо, Бейхан). W3C обязанность, товарный знак и применяются правила лицензирования разрешительного документа.


Abstract

Эта спецификация определяет стандартные заголовки HTTP и формат значений для распространения контекстной информации, которая позволяет использовать сценарии распределенной трассировки. Спецификация стандартизирует способ отправки и изменения контекстной информации между службами. Контекстная информация однозначно идентифицирует отдельные запросы в распределенной системе, а также определяет средства для добавления и распространения контекстной информации, специфичной для поставщика.

Статус этого документа

В этом разделе описывается статус этого документа на момент его публикации. Список текущих W3C публикации и последнюю редакцию этого технического отчета можно найти в указателе технических отчетов W3C по адресу https://www.w3.org/TR/.

Эта спецификация включает редакционные обновления после Рекомендации W3C от 6 февраля 2020 года.

Этот документ был опубликован Рабочей группой по распределенной трассировке как Рекомендация с использованием Трек рекомендаций.

W3C рекомендует широкое распространение этой спецификации в качестве стандарта для паутина.

Рекомендация W3C — это спецификация, которая после всестороннего достижения консенсуса одобрена W3C и ее членами, и содержит обязательства членов рабочей группы по бесплатному лицензированию реализации.

Этот документ был подготовлен группой действует под 1 августа 2017 г. Патент W3C Политика. W3C поддерживает публичный список любых патентных раскрытий сделанные в связи с результатами группа; эта страница также включает инструкции по раскрытию патента. Лицо, имеющее фактическое знание патента, который, по мнению человека, содержит Основные претензии обязаны раскрывать информацию в соответствии с раздел 6 Патентной политики W3C .

Настоящий документ регулируется 2 ноября 2021 W3C Рабочий документ.

1. Соответствие

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

Ключевые слова МОЖЕТ , ДОЛЖЕН , НЕ ДОЛЖЕН , СЛЕДУЕТ и НЕ ДОЛЖЕН в этом документе следует интерпретировать, как описано в ПП 14 [ RFC2119 ] [ RFC8174 ] когда и только когда они появляются во всех столицах, как показано здесь.

2. Обзор

2.1 Постановка проблемы

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

  • Трассировки, собранные разными поставщиками трассировки, не могут быть сопоставлены, так как нет общего уникального идентификатора.
  • Трассировки, которые пересекают границы между различными поставщиками трассировки, не могут быть распространены, так как не существует единого согласованного набора идентификаторов, которые пересылаются.
  • Метаданные поставщика могут быть удалены посредниками.
  • Поставщики облачных платформ, посредники и поставщики услуг не могут гарантировать поддержку распространения контекста трассировки, поскольку не существует стандарта, которому нужно следовать.

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

Это преобразование современных приложений требует стандарта распределенного распространения контекста трассировки.

2.2 Раствор

Спецификация контекста трассировки определяет универсально согласованный формат для обмена данными распространения контекста трассировки, называемый контекстом трассировки . Контекст трассировки решает проблемы, описанные выше, с помощью

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

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

2.3 Обзор дизайна

Контекст трассировки разделен на два отдельных поля распространения, поддерживающих совместимость и расширяемость в зависимости от поставщика:

  • traceparent описывает положение входящего запроса в графе трассировки в переносимом формате фиксированной длины. Его дизайн ориентирован на быстрый синтаксический анализ. Каждый инструмент трассировки ДОЛЖЕН правильно установить traceparent , даже если он полагается только на информацию, специфичную для поставщика, в tracestate
  • tracestate расширяет traceparent специфичными для поставщика данными, представленными набором пар имя/значение. Хранение информации в tracestate является необязательным.

Инструменты трассировки могут обеспечить два уровня совместимого поведения при взаимодействии с контекстом трассировки:

  • Как минимум, они ДОЛЖНЫ распространять заголовки traceparent и tracestate и гарантировать, что трассировки не нарушены. Такое поведение также называется пересылкой трассировки.
  • Кроме того, они МОГУТ принять участие в трассировке, изменив заголовок traceparent и соответствующие части заголовок tracestate , содержащий их собственную информацию. Это также называется участием в трассировке.

Средство трассировки может изменить это поведение для каждого отдельного запроса к отслеживаемому компоненту.

4. Модель обработки

Этот раздел не является нормативным.

В этом разделе приведен пошаговый пример того, как поставщик трассировки получает запрос с заголовками контекста трассировки, обрабатывает запрос и затем, возможно, пересылает его. Это описание можно использовать в качестве справочного материала при реализации системы трассировки, совместимой с контекстом трассировки, промежуточного программного обеспечения (например, прокси-сервера или шины обмена сообщениями) или облачной службы.

4.1 Модель обработки для работы с контекстом трассировки

Эта модель обработки описывает поведение поставщика, который изменяет и пересылает заголовки контекста трассировки. Работа модели зависит от того, получен ли заголовок traceparent .

4.2 No traceparent Received

Если заголовок traceparent не получен:

  1. Поставщик проверяет входящий запрос на traceparent и tracestate 9Заголовок 0186.
  2. Поскольку заголовок traceparent не получен, поставщик создает новый trace-id и parent-id , которые представляют текущий запрос.
  3. Если заголовок tracestate получен без сопутствующего заголовка traceparent , он недействителен и ДОЛЖЕН быть отброшен.
  4. Поставщику СЛЕДУЕТ создать новый заголовок tracestate и добавить новую пару ключ/значение.
  5. Поставщик устанавливает заголовок traceparent и tracestate для исходящего запроса.

4.3 Получен traceparent

Если получен заголовок traceparent :

  1. Поставщик проверяет входящий запрос на traceparent и заголовок tracestate .
  2. Поскольку присутствует заголовок traceparent , поставщик пытается проанализировать версию заголовок traceparent .
    1. Если версия не может быть проанализирована , поставщик создает новый заголовок traceparent и удаляет tracestate .
    2. Если номер версии выше , чем поддерживается трассировщиком, поставщик использует формат, определенный в этой спецификации ( 00 ), для анализа идентификатора трассировки и идентификатора родителя . Поставщик будет анализировать только значения флагов трассировки , поддерживаемые этой версией этой спецификации, и игнорировать все остальные значения. Если синтаксический анализ не удается, поставщик создает новый traceparent заголовок и удаляет tracestate . Поставщики будут устанавливать все непроанализированные/неизвестные флаги трассировки в 0 для исходящих запросов.
    3. Если поставщик поддерживает номер версии , он проверяет идентификатор трассировки и идентификатор родителя . Если trace-id , parent-id или trace-flags недействительны, поставщик создает новый заголовок traceparent и удаляет tracestate .
  3. Поставщик МАЯ проверяет заголовок tracestate . Если заголовок tracestate не может быть проанализирован, поставщик МОЖЕТ отбросить весь заголовок. Недопустимые записи tracestate MAY также будут отброшены.
  4. Для каждого исходящего запроса поставщик выполняет следующие шаги:
    1. Поставщик ДОЛЖЕН изменить заголовок traceparent :

      • Обновление идентификатор родителя : Значение свойства parent-id ДОЛЖНО быть установлено равным значению, представляющему идентификатор текущей операции.
      • Обновление выборка : Значение выборка отражает поведение записи вызывающего абонента. Значение выборки флага флагов трассировки МОЖЕТ быть установлено на 1 , если данные трассировки могут быть записаны, или на 0 в противном случае. Установка флага не гарантирует, что трасса будет записана, но повышает вероятность записи сквозных трасс.
    2. Поставщик МОЖЕТ изменить заголовок tracestate :

      • Обновление значения ключа: Значение любого ключа можно обновить. Модифицированные ключи ДОЛЖНЫ быть перемещены в начало (слева) списка.
      • Добавить новую пару «ключ-значение»: Новая пара «ключ-значение» ДОЛЖНА быть добавлена ​​в начало (слева) списка.
      • Удалить пару ключ/значение: Любая пара ключ/значение 9 МАЯ0087 удалить. Поставщики НЕ ДОЛЖНЫ удалять ключи, которые не были сгенерированы ими самими. Удаление любой пары ключ/значение МАЯ нарушит корреляцию в других системах.
    3. Поставщик устанавливает заголовок traceparent и tracestate для исходящего запроса.

4.4 Альтернативная обработка

Приведенная выше модель обработки описывает полный набор шагов для обработки заголовков контекста трассировки. Однако бывают ситуации, когда поставщик может поддерживать только подмножество шагов, описанных выше. Прокси или промежуточное ПО для обмена сообщениями МОЖЕТ принять решение не изменять заголовки traceparent , а удалить недопустимые заголовки или добавить дополнительную информацию в tracestate .

5. Другие протоколы связи

Хотя контекст трассировки определен для HTTP, авторы признают, что он применим и для других протоколов связи. Расширения этой спецификации, а также спецификации, созданные внешними организациями, определяют формат сериализации и десериализации контекста трассировки для других протоколов. Обратите внимание, что эти расширения могут иметь другой уровень зрелости, чем эта спецификация.

Пожалуйста, обратитесь к [ trace-context-protocols-registry ] для получения подробной информации о реализации контекста трассировки для других протоколов.

6. Вопросы конфиденциальности

Требования по распространению заголовков к нижестоящим службам, а также сохранение значений этих заголовков открывают потенциальные проблемы с конфиденциальностью. Поставщики трассировки НЕ ДОЛЖНЫ использовать поля traceparent и tracestate для любой личной или иной конфиденциальной информации. Единственная цель этих полей — включить корреляцию трассировки.

Поставщики ДОЛЖНЫ оценить риск злоупотребления заголовком. В этом разделе представлены некоторые соображения и первоначальная оценка риска, связанного с хранением и распространением этих заголовков. Поставщики трассировки могут выбрать проверку и удаление конфиденциальной информации из полей, прежде чем позволить системе трассировки выполнить код, который потенциально может распространять или хранить эти поля. Однако все мутации должны соответствовать списку мутаций, определенному в данной спецификации.

6.1 Конфиденциальность поля traceparent

Поле traceparent состоит из случайно сгенерированных чисел. Если генератор случайных чисел использует любую идентифицирующую пользователя информацию, такую ​​как IP-адрес, в качестве начального состояния, эта информация может быть раскрыта. Генераторы случайных чисел НЕ ДОЛЖНЫ полагаться на любую информацию, которая потенциально может быть идентифицируемой пользователем.

Другая угроза конфиденциальности поля traceparent — это возможность сопоставлять запросы, сделанные как часть одной транзакции. Нижестоящая служба может отслеживать и сопоставлять два или более запросов, сделанных в одной транзакции, и может делать предположения об идентичности инициатора запроса на основе информации из другого запроса.

Обратите внимание, что эти соображения конфиденциальности поля traceparent носят скорее теоретический, чем практический характер. Некоторые службы, инициирующие или получающие запрос МАЯ , выбирают перезапуск поля traceparent , чтобы полностью устранить эти риски. Поставщики СЛЕДУЕТ найти способ свести к минимуму количество перезапусков распределенной трассировки, чтобы повысить совместимость поставщиков трассировки. Вместо перезапусков могут использоваться различные методы. Например, службы могут определять границы доверия восходящих и нисходящих соединений, а также уровень уязвимости, которую могут принести любые запросы. Например, поставщик может перезапустить только traceparent для запросов аутентификации от внешних служб или к ним.

Службы также могут определять алгоритм и механизм аудита для проверки случайности входящих или исходящих случайных чисел в поле traceparent . Обратите внимание, что этот алгоритм зависит от службы и не является частью этой спецификации. Одним из примеров может быть временной алгоритм, в котором к текущему времени применяется обратимая хеш-функция. Получатель может подтвердить, что время находится в согласованных границах, что означает, что случайное число было сгенерировано с помощью требуемого алгоритма и фактически не содержит никакой информации, позволяющей установить личность.

6.2 Конфиденциальность поля tracestate

Поле tracestate может содержать любое непрозрачное значение в любом из ключей. Основная цель этого заголовка — предоставить дополнительную информацию об идентификации трассировки конкретного поставщика в различных распределенных системах трассировки.

Поставщики НЕ ДОЛЖНЫ включать какую-либо личную информацию в заголовок tracestate .

Поставщики, чрезвычайно чувствительные к раскрытию личной информации МАЯ реализовать выборочное удаление значений, соответствующих неизвестным ключам. Поставщики НЕ ДОЛЖНЫ изменять поле tracestate , поскольку это противоречит цели обеспечения совместной работы нескольких систем трассировки.

6.3 Другие риски

Когда поставщики включают в ответы заголовки traceparent и tracestate , эти значения могут быть непреднамеренно переданы вызывающим объектам из разных источников. Поставщики должны убедиться, что они включают только эти заголовки ответа при ответе системам, которые участвовали в трассировке.

7. Вопросы безопасности

Существует два типа потенциальных угроз безопасности, связанных с этой спецификацией: раскрытие информации и атаки типа «отказ в обслуживании» против поставщика.

Поставщики, полагающиеся на заголовки traceparent и tracestate , также должны следовать всем передовым методам разбора потенциально вредоносных заголовков, включая проверку длины заголовка и содержания значений заголовков. Эти методы помогают избежать переполнения буфера и атак с внедрением HTML.

7.1 Раскрытие информации

Как упоминалось в разделе о конфиденциальности, информация в заголовках traceparent и tracestate может содержать информацию, которую можно считать конфиденциальной. Например, traceparent может позволить сопоставить один запрос с данными, отправленными с другим запросом, или заголовок tracestate может подразумевать версию программного обеспечения для мониторинга, используемого вызывающим абонентом. Эта информация потенциально может быть использована для создания более крупной атаки.

Владельцы приложений должны либо убедиться, что в tracestate не хранится конфиденциальная информация, либо убедиться, что tracestate не присутствует в запросах к внешним системам.

7.2 Отказ в обслуживании

Когда распределенная трассировка включена в службе с общедоступным API и наивно продолжает любую трассировку с установленным флагом выборки , злоумышленник может перегрузить приложение с накладными расходами на трассировку, подделать trace-id коллизий, которые делают данные мониторинга непригодными для использования, или увеличивают ваш счет за отслеживание с вашим поставщиком отслеживания SaaS.

Поставщики и платформы трассировки должны учитывать такие ситуации и обеспечивать наличие системы сдержек и противовесов для защиты от отказа в мониторинге со стороны злонамеренных или плохо созданных вызывающих объектов.

Одним из примеров такой защиты может быть различное поведение трассировки для аутентифицированных и неаутентифицированных запросов. Также могут быть реализованы различные ограничители скорости записи данных.

7.3 Другие риски

Владельцы приложений должны проверить все пути кода, ведущие к отправке заголовков traceparent и tracestate . Например, в одностраничных браузерных приложениях обычно делаются запросы из разных источников. Если один из этих путей кода ведет к заголовкам traceparent и tracestate , отправляемым вызовами между источниками, которые ограничены с помощью Access-Control-Allow-Headers [ FETCH ], может произойти сбой.

8. Рекомендации по созданию поля идентификатора трассировки

Этот раздел не является нормативным.

В этом разделе предлагаются некоторые рекомендации, которые следует учитывать при выборе платформы или трассировки. поставщик реализует алгоритмы генерации и распространения trace-id . Эти методы обеспечат лучшую совместимость различных систем.

8.1 Уникальность trace-id

Значение trace-id СЛЕДУЕТ, чтобы был глобально уникальным. Обычно это поле используется для уникальной идентификации распределенной трассы. Это обычное дело для распределенные трассировки для охвата различных компонентов, включая, например, облачные сервисы. Облачные сервисы, как правило, обслуживают множество клиентов и имеют очень высокая пропускная способность запросов. Таким образом, важна глобальная уникальность trace-id , даже когда локальная уникальность может показаться хорошим решением.

8.2 Случайность trace-id

Случайно сгенерированное значение trace-id СЛЕДУЕТ быть предпочтительнее других алгоритмы генерации глобально уникальных идентификаторов. Случайность идентификатор трассировки касается некоторой безопасности и конфиденциальности опасения по поводу раскрытия нежелательной информации. Случайность также позволяет отслеживать поставщиков для принятия решений о выборке на основе значения поля trace-id . и избегайте распространения дополнительного контекста выборки.

Как показано в следующем разделе, это важно для идентификатор трассировки для переноса «уникальность» и «случайность» в правой части trace-id , для лучшего совместимость с некоторыми существующими системами.

8.3 Обработка trace-id для совместимых платформ с более короткими внутренними идентификаторами

Существуют системы трассировки, которые используют trace-id короче 16 байт которые все еще готовы принять эту спецификацию.

Если такая система способна распространять полностью совместимую идентификатор трассировки , даже при этом по-прежнему требуется более короткий, не соответствующий требованиям идентификатор для внутренних целей, системе рекомендуется использовать заголовок tracestate для распространения дополнительный внутренний идентификатор. Однако, если вместо этого система предпочитает использовать внутренний идентификатор в качестве основы для полностью соответствующего trace-id , он ДОЛЖЕН быть включен в самую правую часть идентификатора трассировки . Например, отслеживание система может получить 234a5bcd543ef3fa53ce929d0e0e4736 как идентификатор трассировки , однако внутри он будет использовать 53ce929d0e0e4736 в качестве идентификатора.

8.4 Взаимодействие с существующими системами, использующими более короткие идентификаторы

Существуют системы отслеживания, которые не способны распространять все 16 байтов идентификатора трассировки . Для лучшей совместимости между полностью совместимыми систем с этими существующими системами, рекомендуются следующие методы:

  1. Когда система создает исходящее сообщение и необходимо сгенерировать полностью совместимый 16 байт trace-id от более короткого идентификатора, он ДОЛЖЕН оставить площадку исходный идентификатор с нулями. Например, идентификатор 53ce929d0e0e4736 , СЛЕДУЕТ преобразовать в значение trace-id 000000000000000053ce929d0e0e4736 .
  2. Когда система получает входящее сообщение и ей необходимо преобразовать 16 байтов trace-id на более короткий идентификатор, крайняя правая часть trace-id СЛЕДУЕТ использоваться в качестве этого идентификатора. Например, если значение идентификатор трассировки был 234a5bcd543ef3fa53ce929d0e0e4736 по входящему запросу, система розыска СЛЕДУЕТ использовать идентификатор со значением 53ce929d0e0e4736 .

Аналогичные преобразования ожидаются, когда система трассировки преобразует другие распределенные форматы распространения контекста трассировки в W3C Trace Context. короче идентификаторы ДОЛЖНЫ быть оставлены заполненными нулями при преобразовании в 16 байтов идентификатор трассировки и крайняя правая часть trace-id СЛЕДУЕТ использовать как более короткий идентификатор.

Обратите внимание, что многие существующие системы не способны распространять всю trace-id также не будет распространять заголовок tracestate . Однако такая система может по-прежнему использовать заголовок tracestate для распространения дополнительных данных, которые известны эта система. Например, в некоторых системах используются два флага, указывающие, распределенная трассировка должна быть записана или нет. В этом случае можно отправить один флаг как выборка Флаг traceparent заголовка и tracestate можно использовать для отправки и получите дополнительный флаг. Совместимые системы будут распространять этот флаг все остальные пары ключ/значение. Существующие системы, не способные tracestate распространение урежет все дополнительные значения из tracestate и пройти только по этому флагу.

A. Благодарности

Спасибо Adrian Cole, Christoph Neumüller, Daniel Khan, Erika Arnold, Fabian Lange, Matthew Wear, Reiley Yang, Ted Young, Tyler Benson, Victor Soares за их вклад в эту работу.

B. Глоссарий

Этот раздел не является нормативным.

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

C. Ссылки

C.1 Нормативные ссылки
[БИТ-ПОЛЕ]
8-битное поле . Википедия. URL-адрес: https://en.wikipedia.org/wiki/Bit_field
[FETCH]
Fetch Standard . Энн ван Кестерен. WHATWG. Уровень жизни. URL: https://fetch.spec.whatwg.org/
[RFC0020]
Формат ASCII для сетевого обмена . В.Г. Серф. IETF. Октябрь 1969 г. Интернет-стандарт. URL-адрес: https://www.rfc-editor.org/rfc/rfc20
[RFC2119]
Ключевые слова для использования в RFC для обозначения уровней требований . С. Браднер. IETF. Март 1997 г. Передовая современная практика. URL: https://www.rfc-editor.org/rfc/rfc2119
[RFC5234]
Расширенный BNF для спецификаций синтаксиса: ABNF . Д. Крокер, изд.; П. Оверелл. IETF. Январь 2008 г. Интернет-стандарт. URL: https://www.rfc-editor.org/rfc/rfc5234
[RFC7230]
Протокол передачи гипертекста (HTTP/1.1): синтаксис и маршрутизация сообщений . Р. Филдинг, изд.; Дж. Решке, изд. IETF. Июнь 2014 г. Предлагаемый стандарт. URL: https://httpwg.org/specs/rfc7230.html
[RFC8174]
Неоднозначность прописных и строчных букв в ключевых словах RFC 2119 . Б. Лейба. IETF. Май 2017 г. Передовая современная практика. URL-адрес: https://www.rfc-editor.org/rfc/rfc8174
[trace-context-protocols-registry]
Реестр протоколов контекста трассировки . Сергей Канжелев; Филипп Ле Эгаре. W3C. 19 ноября 2019 г. Примечание рабочей группы W3C. URL: https://www. w3.org/TR/trace-context-protocols-registry/

Контекст трассировки

Контекст трассировки

Abstract

Распределенная трассировка — это набор инструментов и методов для мониторинга работоспособности и надежности распределенного приложения. Распределенное приложение — это приложение, состоящее из нескольких компонентов, развертываемых и работающих по отдельности. Он также известен как микросервис.

Основной концепцией распределенной трассировки является корреляция событий. Корреляция событий — это способ корреляции событий одного компонента с событиями другого. Это позволяет найти причинно-следственную связь между этими событиями. Например, найдите, какое действие пользователя в браузере вызвало сбой на уровне бизнес-логики.

Чтобы сопоставить события между компонентами, эти компоненты должны обмениваться и хранить часть информации, называемую контекстом. Обычно контекст состоит из идентификатора исходящего события, идентификатора исходного компонента и других свойств события. Контекст состоит из двух частей. Первая часть — это контекст трассировки. Контекст трассировки состоит из свойств, важных для корреляции событий. Вторая часть — корреляционный контекст. Контекст корреляции несет определяемые пользователем свойства. Эти свойства могут быть полезны для сценариев корреляции. Но они не требуются, и компоненты могут отказаться от их переноски или хранения.

Унификация формата распределенного контекста трассировки, а также согласование семантического значения значений — основная цель этой рабочей группы. Цель состоит в том, чтобы поделиться этим с сообществом, чтобы различные продукты для отслеживания и диагностики могли работать вместе.

Статус этого документа

В этом разделе описывается статус этого документа на момент его публикации. Этот документ может быть заменен другими документами. Список текущих публикаций W3C и последнюю редакцию этого технического отчета можно найти в Указатель технических отчетов W3C на https://www. w3.org/TR/.

Это первый общедоступный рабочий проект (ФПВД). Есть доступно несколько реализаций этого протокола. Экспериментальная совместимость сценарии были запущены и продемонстрировали многообещающие результаты. Спецификация будет после этого перешел в стадию кандидата-рекомендации, проекты для двоичного кода, AMQP и Протоколы MQTT будут написаны, чтобы убедиться, что концепции и структура определены в этой спецификации могут быть перенесены на другие протоколы.

Этот документ был опубликован Рабочей группы по распределенной трассировке в качестве Рабочий проект. Этот документ должен стать Рекомендацией W3C .

Гитхаб Проблемы предпочтительны для обсуждение этого Спецификация. Альтернативно, ты можешь Отправить Комментарии нашим почтовое отправление список. Пожалуйста, пришлите их к общественный-след-контекст@w3.org (архивы) с контекст трассировки в начало твой электронная почта предмет .

Публикация в качестве Рабочий проект не подразумевает одобрено членством W3C . Это проект документа и может быть обновлены, заменены или устаревшие другими документами в любое время. Это неуместно цитировать это документ, отличный от работы в прогресс.

Этот документ был подготовлен группа действует под Патентная политика W3C . W3C поддерживает общедоступный список любых патентные раскрытия сделано в связи с результаты группа; эта страница также включает инструкции по раскрытию патент. Физическое лицо, имеющее фактическое знание патента, который человек считает, содержит Основные претензии должны раскрывать информацию в в соответствии с раздел 6 из Патент W3C Политика.

Настоящий документ регулируется 1 февраля 2018 г. Технологический документ W3C .

1. Обзор

Контекст трассировки состоит из набора свойств, важных для корреляции событий в распределенных приложениях. Контекст трассировки размещает запросы в распределенной трассировке. Если вы посмотрите на распределенную трассировку как на график коррелированных запросов, то один запрос может быть частью нескольких графиков. Например, пусть компонент A вызывает компонент B , который, в свою очередь, вызывает C . Одна распределенная система трассировки может видеть компонент A , вызывающий компонент B . Другой может видеть, что все три компонента обмениваются данными. Таким образом, вызов с B на C будет нести контекст трассировки об услуге A , а также информацию о ее прямом восходящем соединении с B .

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

Контекст трассировки обеспечивает расширяемость для всех распределенных систем трассировки. Это требует от них соблюдения контекста, установленного другими системами.

Контекст трассировки представлен набором пар имя/значение, описывающих идентификатор каждого HTTP-запроса. Два поля распространения несут общие и специфичные для поставщика свойства, составляющие контекст трассировки.

  • traceparent описывает позицию входящего запроса в графе трассировки в переносимом формате фиксированной длины. Его дизайн ориентирован на быстрый синтаксический анализ.
  • tracestate сопоставляет все графы, частью которых является входящий родитель, в форматах, потенциально зависящих от поставщика. Например, если запрос пересекает системы трассировки, в tracestate будет одна запись для каждой системы.

Примечательно, что поле tracestate не зависит от данных в traceparent .

Библиотеки и платформы ДОЛЖНЫ распространять заголовки traceparent и tracestate , чтобы гарантировать, что трассировка не будет нарушена.

3. Конфиденциальность

Требования по распространению заголовков нижестоящим службам, а также сохранение значений этих заголовков открывают потенциальные проблемы с конфиденциальностью. Поставщики трассировки НЕ ДОЛЖНЫ использовать поля traceparent и tracestate для любой личной или иной конфиденциальной информации. Единственная цель этих полей — включить корреляцию телеметрии.

Поставщики трассировки ДОЛЖНЫ оценить риск злоупотребления заголовком. В этом разделе представлены некоторые соображения и первоначальная оценка риска, связанного с хранением и распространением этих заголовков. Поставщики трассировки могут выбрать проверку и удаление конфиденциальной информации из полей, прежде чем позволить платформе или системе трассировки выполнять код, который потенциально может распространять или хранить эти поля. Однако все мутации должны соответствовать списку мутаций, определенному в данной спецификации.

3.1 Конфиденциальность поля traceparent

поле traceparent имеет предопределенный набор значений. Эти значения являются случайно сгенерированными числами. Если у генератора случайных чисел есть какая-либо логика использования идентифицирующей пользователя информации, такой как IP-адрес, эта информация может быть раскрыта. Генераторы случайных чисел НЕ ДОЛЖНЫ полагаться на любую информацию, которая потенциально может быть идентифицируема пользователем.

Еще одна угроза конфиденциальности поля traceparent — это способность сопоставлять вызовы, сделанные как часть одной транзакции. Нисходящая служба может отслеживать и сопоставлять два или более вызовов, сделанных в одной транзакции, и делать предположения об идентичности вызывающего абонента одного вызова на основе информации из другого вызова. Услуга инициирования звонков МАЙ решил перезапустить трассировку при совершении вызовов, которые могут идентифицировать вызывающего абонента в нижестоящей службе.

Обратите внимание, что обе проблемы конфиденциальности поля traceparent носят скорее теоретический, чем практический характер.

3.2 Конфиденциальность поля tracestate

Поле tracestate может содержать любое непрозрачное значение в любом из ключей. Основная цель этого заголовка — предоставить дополнительную информацию о позиции запроса в нескольких распределенных графах трассировки.

Платформы и системы отслеживания НЕ ДОЛЖНЫ включать какую-либо личную информацию в заголовок tracestate .

Платформы и системы слежения, чрезвычайно чувствительные к раскрытию личной информации МАЯ реализуют выборочное удаление значений, соответствующих неизвестным ключам. Эта мутация поля tracestate не запрещена, но крайне нежелательна. Поскольку это противоречит цели этого поля для обеспечения совместной работы нескольких систем отслеживания.

4. Безопасность

Существует два типа потенциальных угроз безопасности, связанных с этой спецификацией: раскрытие информации и атаки типа «отказ в обслуживании» против системы отслеживания.

Службы и платформы, использующие заголовки traceparent и tracestate , также должны следовать всем лучшие практики разбора потенциально вредоносных заголовков. Включая проверку длины заголовка и содержимого заголовка ценности. Эти методы помогают избежать атак переполнения буфера и внедрения HTML-кода.

4.1 Раскрытие информации

Как упоминалось в разделе о конфиденциальности, информация в заголовках traceparent и tracestate может содержать информацию, которая может быть считается чувствительным. Например, traceparent может позволить сопоставить один вызов с данными, отправленными с другим вызовом. tracestate может подразумевать версию программного обеспечения для мониторинга, используемого вызывающим абонентом. Эта информация потенциально может быть использована для создать большую атаку.

Владельцы приложений должны либо убедиться, что в tracestate не хранится конфиденциальная информация, либо они должны убедиться, что tracestate не присутствует в запросах к внешним системам.

4.2 Отказ в обслуживании

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

Отслеживающие поставщики и платформы должны учитывать такие ситуации и обеспечивать наличие системы сдержек и противовесов для защиты от отказа в мониторинге со стороны злонамеренных или плохо созданных вызывающих абонентов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *