1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/inlym-egg-apigw-tracer

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Эгг-апигв-трейсер

Адаптация HTTP-запросов API-шлюза для Egg.js.

Введение

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

Этот «уникальный идентификатор запроса» (Unique Request ID) иногда также называют «идентификатором трассировки» (trace ID). Простой способ — использовать UUID для создания строки и включить эту строку в ответ. Некоторые веб-сервисы используют облачные шлюзы API в качестве уровня доступа, а затем перенаправляют запросы на сервер разработчика. В этом случае мы обычно хотим использовать идентификатор запроса, предоставленный шлюзом API, в качестве идентификатора трассировки. Этот плагин был создан для решения этой проблемы.

Плагин идеально адаптирован к Egg.js и может использоваться без какой-либо конфигурации.

Установка

Используйте npm для загрузки и установки в свой проект:

npm i egg-apigw-tracer

Использование

Перед использованием убедитесь, что вы ознакомились с документацией Egg.js о плагинах.

Далее описывается, как настроить и использовать плагин.

  • Включение плагина В файле config/plugin.js объявите включение плагина:

    exports.tracer = {
      // enable — атрибут, указывающий, включён ли плагин, true — включён, false — выключен
      enable: true,
    
      // Указывает пакет плагина, 'egg-apigw-tracer'
      package: 'egg-apigw-tracer',
    };
  • Конфигурация Плагину не требуется конфигурация. Однако рассмотрим следующий сценарий использования:

    Шлюз API используется в производственной среде для доступа к сети, и идентификатор запроса шлюза API используется в качестве идентификатора отслеживания. Но в локальной среде разработки нет этого уровня доступа. Чтобы сохранить согласованность функций, также необходим аналогичный идентификатор отслеживания. Поэтому UUID используется в качестве идентификатора отслеживания.

    Настройте плагин в файле config/config.${env}.js (следующее является конфигурацией по умолчанию):

    exports.tracer = {
      mode: 'apigw',
      idHeaders: 'x-ca-request-id',
    }
    Свойство Тип Значение по умолчанию Требуется Описание
    mode string 'apigw' Нет Режим, используйте 'apigw', чтобы указать, что есть уровень доступа шлюза API, используйте 'uuid', чтобы использовать uuid для генерации идентификатора отслеживания
    idHeaders string 'x-ca-request-id' Нет Применяется только тогда, когда режим установлен на 'apigw'. Указывает, что идентификатор запроса извлекается из указанного заголовка запроса и используется в качестве идентификатора отслеживания
  • Использование Есть два основных способа использования: один — напрямую через ctx.traceId для получения идентификатора отслеживания, другой — при использовании ctx.logger для печати журнала, фреймворк автоматически добавит префикс идентификатора отслеживания перед журналом, формат префикса: [$userId/$ip/$traceId/${cost}ms $method $url] . Подробности см. в документации.

Пример

Мы имитируем следующий сценарий использования, чтобы продемонстрировать, как настраивать и использовать этот плагин:

Шлюз API Alibaba Cloud используется в рабочей среде для доступа в Интернет, и этот уровень доступа не используется в среде локальной разработки.

В файле config/plugin.js объявлено включение плагина:

exports.tracer = {
  enable: true,
  package: 'egg-apigw-tracer',
};

Настройте содержимое файла config.local.js следующим образом:

exports.tracer = {
  mode: 'uuid',
}

Содержимое файла config.prod.js настроено следующим образом:

exports.tracer = {
  mode: 'apigw',
}

Связанные

  • egg-aliyun-tablestore — плагин Tablestore для Egg.js, рекомендуется
  • egg-load — инструмент для автоматической загрузки сторонних модулей в Egg.js, рекомендуется
  • egg-user — плагин управления состоянием входа пользователя для Egg.js, рекомендуется
  • egg-miniprogram — набор инструментов для сервера мини-программ WeChat для Egg.js, рекомендуется

Автор

Я inlym, менеджер по продукту и разработчик полного стека.

Если у вас есть какие-либо вопросы или предложения, пожалуйста, свяжитесь со мной. Вот мои контактные данные:

— Электронная почта: inlym@qq.com — Домашняя страница: www.inlym.com

Участие

Приглашаем вас принять участие в разработке и обслуживании этого проекта.

Вы можете участвовать в проекте следующими способами:

  1. Предложите идеи и требования. Если вы можете чётко выразить свои мысли несколькими предложениями, вы можете напрямую создать новую проблему.
  2. Непосредственно разветвите весь проект и отправьте запрос на объединение после завершения. (Пожалуйста, обязательно проверьте с помощью ESLint перед отправкой.)

Лицензия

Этот плагин использует лицензию MIT.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Трассировщик HTTP-запросов, адаптированный для API-шлюза, для фреймворка Egg.js. Расширить Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/inlym-egg-apigw-tracer.git
git@gitlife.ru:oschina-mirror/inlym-egg-apigw-tracer.git
oschina-mirror
inlym-egg-apigw-tracer
inlym-egg-apigw-tracer
master