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

OSCHINA-MIRROR/mirrors-Molten

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_ZH.md 8.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 13:53 0477d1f

Molten — это инструмент для отслеживания прозрачных звеньев цепи.

Molten отслеживает информацию о работе основной библиотеки PHP во время выполнения и выводит информацию в формате zipkin/optracing.

Molten предлагает множество SAPI, типов выборки, состояния отслеживания, управления модулями и различных типов данных.

На основе языка PHP легко построить распределённую систему отслеживания полной цепочки (ссылка на статью Google Research). В настоящее время система работает в производственной среде на тысячах машин.

Содержание

  1. Установка.
  2. Быстрый старт.
  3. Конфигурация.
  4. Функции.
  5. Проверка.
  6. Функциональность.
  7. Вклад.
  8. Лицензия.

Установка

Для установки molten на вашей системе выполните следующие шаги:

phpize
./configure
make && make install

Команда make install копирует molten.so в нужное место. Однако вам также необходимо включить модуль в конфигурации PHP, отредактировав свой собственный файл php.ini или добавив molten.ini в /etc/php5/conf.d, и добавить следующее содержимое: extension=molten.so.

Во время этапа ./configure вы также можете добавить --enable-zipkin-header=yes для поддержки zipkin B3 header.

Быстрый старт

cd example
sh run.sh

В браузере по адресу http://127.0.0.1:9411/zipkin/ можно увидеть информацию о цепочке.

Если вы считаете, что приведённое выше слишком просто, вы можете выполнить следующие действия:

cd example
sh complex.sh

Ну как, круто?

Примечание: Если вы не видите подробную информацию, добавьте 1 час в опцию EndTime.

Подробная информация о примере

Конфигурация

Базовая конфигурация

molten.enable 1 включает, 0 выключает, по умолчанию 1.

molten.service_name устанавливает имя службы приложения, по умолчанию — default. Теперь поддерживается добавление ini_set('molten.service_name', 'YOUR_PROJECT_NAME'); в код для разделения разных проектов в одной и той же среде PHP.

molten.tracing_cli 1 отслеживает информацию в режиме CLI, 0 выключено, по умолчанию 0.

Конфигурация выборки

molten.sampling_type тип выборки, 1 — управление выборкой, 2 — выборка по количеству запросов в минуту, по умолчанию — 1.

molten.sampling_request тип выборки — количество выборок по запросу в минуту, по умолчанию — 10.

molten.sampling_rate_base тип выборки — вероятность выборки для каждого запроса, по умолчанию — 256.

Настройка модуля управления

molten.notify_uri URI для уведомления центра управления.

Настройки модуля отчётности

Модуль отчётности использует тот же выходной тип, что и модуль данных.

molten.report_interval интервал вызова модуля данных, по умолчанию — 60.

molten.report_limit верхний предел запроса модуля данных, по умолчанию — 100.

Модуль данных

molten.sink_type тип данных — запись в файл (1), запись в стандартный вывод (2), запись в syslog (3), отправка через curl (4), адрес отправки зависит от molten.sink_http_uri.

molten.output_type вывод всех блоков отслеживания (span) (1) или вывод одной строки на блок (2).

molten.sink_log_path путь записи файла.

molten.sink_http_uri URL отправки HTTP.

molten.sink_syslog_unix_socket отправка журнала в системный журнал UDP unixdomain.

Блок отслеживания

molten.span_format формат блока отслеживания (span), выбор формата отслеживания для разных систем: zipkin, zipkin_v2 или opentracing.

Функции

molten_span_format() получает текущий формат отслеживания блока, возвращает строку zipkin или opentracing.

molten_get_traceid() получает текущий контекстный traceiid, возвращает шестнадцатеричную строку.

molten_set_traceid($trace_id) устанавливает текущий контекстный traceiid без возврата.

Проверка

php -d extension=molten.so -d molten.enable=1 -d molten.sink_type=2 -d molten.tracing_cli=1 -d molten.sampling_rate=1 -r '$c=curl_init("http://localhost:12345");curl_exec($c);'

Вы увидите следующий вывод:

[{"traceId":"%s","name":"php_curl","version":"php-4","id":"1.1","parentId":"1","timestamp":%d,"duration":%d,"annotations":[{"value":"cs","timestamp":%d,"endpoint":{"serviceName":"%s","ipv4":"%s"}},{"value":"cr","timestamp":%d,"endpoint":{"serviceName":"%s","ipv4":"%s"}}],"binaryAnnotations":[{"key":"http.url","value":"http:\/\/localhost:12345\/","endpoint":{"serviceName":"%s","ipv4":"%s"}},{"key":"error","value":"Failed
connect to localhost:12345; Connection
refused","endpoint":{"serviceName":"%s","ipv4":"%s"}}]},{"traceId":"%s","name":"cli","version":"php-4","id":"1","timestamp":%d,"duration":%d,"annotations":[{"value":"sr","timestamp":%d,"endpoint":{"serviceName":"%s","ipv4":"%s"}},{"value":"ss","timestamp":%d,"endpoint":{"serviceName":"%s","ipv4":"%s"}}],"binaryAnnotations":[{"key":"path","value":"-","endpoint":{"serviceName":"%s","ipv4":"%s"}}]}]

Функциональность

Из приведённой выше конфигурации видно, какие функции мы предоставляем.

Перехватчик

molten перехватывает расширения curl, pdo, mysqli, redis, mongodb, memcached, строит информацию отслеживания времени выполнения. Поддерживает функцию полного отслеживания цепочки, molten заменяет функции curl_exec, curl_setopt, curl_setopt_array, а также добавляет заголовки ссылок (x-w-traceid, x-w-spanid и т. д.) в запрос.

Персонализированный формат цепочки поддерживает два популярных формата (zipkin и opentracing).

Выборка

Два метода выборки и возможность изменения с помощью модуля управления.

Данные на земле

В настоящее время molten поддерживает три способа размещения данных: стандартный вывод, файл и HTTP, и может выбирать местоположение вывода.

Управление

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

Проверьте состояние molten, запросив GET http://domain/molten/status.

Вывод выглядит следующим образом и уже адаптирован к формату prometheus.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/mirrors-Molten.git
git@api.gitlife.ru:oschina-mirror/mirrors-Molten.git
oschina-mirror
mirrors-Molten
mirrors-Molten
master