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

OSCHINA-MIRROR/OpenSkywalking-go2sky

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

Распространение контекста

Мы рассматриваем некоторые продвинутые темы, связанные с GO2Sky.

Распространение контекста

Связи трассировки принадлежат ему с помощью распространения контекста, которое варьируется в зависимости от сценария.

В процессе

Мы используем пакет context для связывания промежутков. Корневой промежуток обычно выбирает context.Background(), а дочерние промежутки будут внедрять контекст, созданный его родителем.

// Создать новый контекст
entrySpan, entryCtx, err := tracer.CreateEntrySpan(context.Background(), ...)

// Некоторая операция
...

// Связать два промежутка путём внедрения контекста entrySpan в exitSpan
exitSpan, err := tracer.CreateExitSpan(entryCtx, ...)

Между процессами

Мы используем промежуток Entry для извлечения контекста из нижестоящего сервиса и используем промежуток Exit для внедрения контекста в вышестоящий сервис.

Промежутки Entry и Exit имеют смысл для анализа OAP, который генерирует топологическую карту и метрики сервисов.

// Извлечь контекст из заголовка HTTP-запроса sw8
span, ctx, err := tracer.CreateEntrySpan(r.Context(), "/api/login", func(key string) (string, error) {
        return r.Header.Get(key), nil
})

// Некоторая операция
...

// Внедрить контекст в заголовок HTTP-запроса sw8
span, err := tracer.CreateExitSpan(req.Context(), "/service/validate", "tomcat-service:8080", func(key, value string) error {
        req.Header.Set(key, value)
        return nil
})

Тег

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

Они определены как константы в корневом пакете с префиксом Tag.

Журнал x Контекст трассировки

Внедрите контекст трассировки в текст журнала. Механизм LAL (язык анализа журналов) SkyWalking может извлечь контекст из текста и соотнести трассировку и журналы.

// Получить данные контекста трассировки
import go2skylog "github.com/SkyAPM/go2sky/log"
logContext = go2skylog.FromContext(ctx)

// Построить строку данных контекста
// Ввести строку контекста в журнал
// Формат строки контекста: [$serviceName,$instanceName,$traceId,$traceSegmentId,$spanId]
contextString := logContext.String()

Плагины

Перейдите в репозиторий go2sky-plugins, чтобы увидеть все плагины, нажмите здесь.

Поддерживаемые переменные среды

Ниже приведён полный список поддерживаемых переменных среды, которые вы можете установить для настройки поведения агента. Пожалуйста, ознакомьтесь с описаниями того, чего они могут достичь.

Переменная среды Описание По умолчанию
SW_AGENT_NAME Название службы Go unset
SW_AGENT_LAYER Имя слоя экземпляра, определённое в бэкэнде unset
SW_AGENT_INSTANCE_NAME Название экземпляра службы Go
------------------------------------------------------------------------------------------------------------- ----------------------
SW_AGENT_SAMPLE Примерная частота, 1 означает полный сбор данных 1
SW_AGENT_COLLECTOR_BACKEND_SERVICES Адрес бэкенд-сервера OAP unset
SW_AGENT_AUTHENTICATION Токен аутентификации для проверки доверия агента к бэкенду OAP. Конфигурацию бэкенда см. в yaml. unset
SW_AGENT_COLLECTOR_HEARTBEAT_PERIOD Период отчёта пульса агента. Единица измерения — секунда 20
SW_AGENT_COLLECTOR_GET_AGENT_DYNAMIC_CONFIG_INTERVAL Интервал получения динамической конфигурации агента сниффером. Единица измерения — секунда 20
SW_AGENT_COLLECTOR_MAX_SEND_QUEUE_SIZE Длина буфера очереди отправки 30000
SW_AGENT_PROCESS_STATUS_HOOK_ENABLE Включение функции Process Status Hook false
SW_AGENT_PROCESS_LABELS Метки процесса, несколько меток разделяются "," unset

CDS - Configuration Discovery Service

Configuration Discovery Service предоставляет динамическую конфигурацию для агента, определённую в gRPC и хранящуюся на бэкенде.

Доступные ключи и значения в Golang Agent.

Golang agent поддерживает следующие динамические конфигурации.

Конфиг ключ Описание значения Формат значения (пример)
agent.sample_rate Процент выборки трассировки. Это [0, 1], аналогично параметру WithSampler. 0.1

Process Status Hook

Эта функция используется в сотрудничестве с проектом skywalking-rover.

Когда go2sky остаётся в рабочем состоянии с бэкендом, он будет... Напишите файл с метаданными в локальный (временный каталог) одновременно, который описывает информацию о текущем процессе.

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

Файл с метаданными

Файл с метаданными используется для сохранения метаданных текущего процесса, он сохраняется по пути {TMPDIR}/apache_skywalking/process/{pid}/metadata.properties.

Также, когда go2sky поддерживает соединение с бэкэндом, время изменения и открытия файла с метаданными будет обновляться.

Ключ Тип Описание
layer string этот слой процесса.
service_name string имя службы этого процесса.
instance_name string это имя экземпляра процесса.
process_name string название процесса, оно совпадает с именем экземпляра.
properties json свойства экземпляра, метки процесса также находятся в значении свойств.
labels string метки процесса, несколько меток разделены «,».
language string язык текущего процесса — это golang.

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

Лицензия

Apache License 2.0. Смотрите файл LICENSE для получения подробной информации.

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

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

Введение

Скай Вулкинг Гоу Агент. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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