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

OSCHINA-MIRROR/mirrors-Molten

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

molten

Readme in Chinese 中文

Build Status

molten — это инструмент прозрачности для трассировки вызовов модулей в приложениях.

Он отслеживает основные вызовы PHP-приложений и выводит журналы трассировок в формате zipkin/opentracing.

Предоставляет функции, связанные с несколькими типами трассировки SAPI, несколькими типами выборки, статусом загрузки трассировки, управлением модулями и несколькими типами приёмников.

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

Содержание


  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.

Если вы хотите, чтобы molten поддерживал метод POST, на этапе компиляции вы должны проверить, установлен ли libcurl-devel.

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

cd example
sh run.sh

Откройте http://127.0.0.1:9411/zipkin/ в браузере, и вы увидите детали трассировки.

Если вам кажется, что это слишком просто, вы также можете сделать это.

cd example
sh complex.sh

Это круто, правда?

ВНИМАНИЕ: если вы не видите трассировку, выберите EndTime +1 час.

Настройка

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

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

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

molten.tracing_cli устанавливается в 1, чтобы включить трассировку CLI SAPI, 0 — не включать трассировку, а использовать только для модульного тестирования, по умолчанию — 0.

molten.open_report устанавливается в 1 для открытия отчёта об ошибке PHP, по умолчанию — 0.

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

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

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

molten.sampling_rate определяет, будет ли запрос выбран по скорости, по умолчанию — 64.

Контрольная конфигурация

molten.notify_uri — это URI, который molten использует для уведомления менеджера.

Отчётная конфигурация

Тип вывода модуля отчёта такой же, как у модуля приёмника.

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

molten.report_limit — текущий предел списка ошибок, по умолчанию — 100.

Конфигурация приёмника

molten.sink_type — тип приёмника, 1 — запись в журнал (путь зависит от molten.sink_log_path), 2 — запись в стандартный вывод, 3 — запись в системный журнал, 4 — использование curl для отправки журнала трассировки (HTTP URI зависит от molten.sink_http_uri).

molten.output_type — вывод диапазонов в одной строке (1) или один диапазон в одной строке (2).

molten.sink_log_path — путь к журналу.

molten.sink_http_uri — HTTP URI журнала.

molten.sink_syslog_unix_socket — преобразование журнала в системный журнал UDP Unix Domain Collector.

Конфигурация диапазонов

molten.span_format — формат диапазона, можно выбрать zipkin или zipkin_v2 или opentracing для разных систем отслеживания.

Функции

molten_span_format() — получает текущий формат диапазона и возвращает строку zipkin или opentraceing.

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

molten_set_traceid($trace_id) — устанавливает текущий контекстный traceid, возвращает void.

Проверка

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);'

Вы можете увидеть вывод ниже:


В блоке Config выше вы можете увидеть, какие функции мы поддерживаем.

## Перехватчик

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

Span_format — это способ настроить формат диапазона для двух популярных видов (zipkin и opentracing).

## Выборка

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

## Приёмник

Приёмник — это вывод, который вы определяете. Molten поддерживает стандартные FD, файл, HTTP и другие (продолжение), таким образом, мы можем выбрать, куда выводить журнал трассировки.

## Управление

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

Чтобы увидеть статус molten, запросите `http://domain/molten/status` с помощью метода GET.

Вывод представлен ниже, он уже адаптирован под стиль [prometheus](https://prometheus.io).

HELP molten_request_all Количество всех запросов.

TYPE molten_request_all счётчик

molten_request_all %d

HELP molten_request_capture Количество захваченных запросов.

TYPE molten_request_capture счётчик

molten_request_capture %d

HELP molten_sampling_type тип выборки.

TYPE molten_sampling_type датчик

molten_sampling_type %d

HELP molten_sampling_rate частота выборки.

TYPE molten_sampling_rate датчик

molten_sampling_rate %d

HELP molten_sampling_request количество захваченных запросов за одну минуту.

TYPE molten_sampling_request датчик

molten_sampling_request %d


Измените выборку molten, запросив `http://domain/molten/status`, используя метод POST.

Тело в формате JSON, поле имеет то же значение, что и в конфигурации.

{"enable":1,"samplingType":2,"samplingRate":20,"samplingRequest":100}


## Отчёт

Отчёт основан на импортированной информации, которую мы не выбирали, например, список ошибок.

# Вклад

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

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

phobosw@gmail.com
silkcutbeta@gmail.com

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

* [Перепостить проблемы и отзывы](https://github.com/chuan-yun/Molten/issues).
* Отправить исправления и функции через запрос на вытягивание.

# Лицензия

Apache License Version 2.0 см. http://www.apache.org/licenses/LICENSE-2.0.html

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

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

Введение

Molten — это инструмент для отслеживания прозрачных звеньев в приложениях. Развернуть Свернуть
Apache-2.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