Skip to content

Latest commit

 

History

History
67 lines (45 loc) · 3.96 KB

README.md

File metadata and controls

67 lines (45 loc) · 3.96 KB

External

Предоставляет HTTP клиент со следующими функциями:

  • Таймауты на запросы,
  • Повторные запросы в случае таймаутов,
  • Сбор метрик OpenTracing,
  • Сбор метрик в формате Prometheus.

Смотрите пример использования HTTP клиента вместе с OT + Jaeger.

Сбор метрик в формате Prometheus

По умолчанию выключено. Чтобы собирать метрики, нужно:

  1. В конфигурации указать уникальное имя клиента, которое будет использоваться в качестве префикса к именам метрик.
  2. Установить опцию Metrics.Collect в значение true.
  3. Важно: если URL запросы строятся динамически, то необходимо настроить свою функцию формирования значения для метки path, иначе метрика будет иметь высокое значение cardinality, что плохо скажется на производительности Prometheus. Настраивается через опцию promlib.InstrumentWithPath. Опции передаются через конфигурацию Metrics.Options.

Список структур и методов

Config

Конфигурация для HTTP клиента. Пример yaml конфигурации смотрите в config.yml.

Список полей

Поле Тип Стандартное значение Описание
Name string "" Уникальное имя клиента (обязательно при сборе метрик Prometheus)
DialTimeout time.Duration 5 секунд Таймаут на установление TCP соединения для HTTP
KeepAlive time.Duration 30 секунд Интервал времени, после которого закрывается постоянное TCP соединение
MaxIdleConns integer 100 Максимальное количество соединений к внешнему сервису
IdleTimeout time.Duration 15 минут Время, после которого закрывается висящее TCP соединение
RequestTimeout time.Duration 500 миллисекунд Таймаут на выполнение запроса
NoHTTPS boolean true Выключение HTTPS
RetryConfig *retry.Config 5 попыток выполнить запрос с фиксированной задержкой в 10мс Стратегия выполнения повторных запросов
OnRetry func(n uint, err error) Логирует номер попытки и ошибку в stdout Callback, вызываемый перед каждым повторным запросом
MinVersionTLS VersionTLS 1.2 Минимальная допустимая версия TLS
PublicCert string "" Путь к публичному сертификату TLS
PrivateCert string "" Путь к приватному сертификату TLS
Metrics ConfigMetrics Конфигурация сбора метрик в формате Prometheus

Client: описание методов

SetCustomTransport

Устанавливает пользовательский HTTP транспорт для клиента.

Get

Выполняет GET запрос с заранее заготовленным HTTP запросом.

Post

Выполняет POST запрос с заранее заготовленным HTTP запросом.

Do

Выполняет заранее заготовленный HTTP запрос.

New

Создаёт новый инстанс Client.