Готовый перевод Graphite / Graphite: Configuring Carbon

Внимание! Этот перевод, возможно, ещё не готов, так как модераторы установили для него статус «перевод редактируется»

Настройка Carbon
================

Файлы настроек Carbon живут в ``/opt/graphite/conf/``. При первоначальной настройке файлы отсутствуют, но для каждого будет ``.conf.example``. Просто скопируйте файлы с примерами, предварительно удалив расширение .example и внеся измененя.

carbon.conf
----------------

Это главный конфигурационный файл, описывающий параметры каждого демона Carbon.

**Каждный параметр в этом файле имеет описание в виде комментариев** Параметры разбиты на группы для каждого демона - за настройку carbone-cache отвечает секция ``[cache]``, за carbon-relay - ``[relay]``, а carbon-aggregator - ``[aggregator]``. При первоначально настройке вам пока понадобится только секция ``[cache]``.

.. TIP::
Допускается запуск carbon-cache и carbon-relay на одной машине. Вы можете поменять местами номера портов `LINE_RECEIVER_PORT`` и ``PICKLE_RECEIVER_PORT`` в секциях ``[cache]`` и ``[relay]`` соответственно, что бы избежать перенастройки агентов. Задавая параметр ``DESTINATIONS`` секции ``[relay]`` следует учитывать какое значение было присвоено параметру ``PICKLE_RECEIVER_PORT`` секции ``[cache]``.

storage-schemas.conf
--------------------

Данный конфигурационный файл управляет коэффициентами детализации метрик. В нем задается соответствие шаблонов метрик частоте и длительности хранения точек, с которыми будет работать whisper.

Важные замечания

* В файле могут быть несколько секций.
* Параметры секций применяют сверхку (с первого) вниз (до последнего).
* Шаблоны представляют из себя регулярные выражения, в отличии от символов замены в URL API.
* Первый шаблон соответствует имени метрики.
* Детализация задается при первой передаче метрики.
* Изменение этого файла не повлияет на уже записанные даныне в .wsp файлах. Используйте whisper-resize.py что бы внести изменения.

Правило задается тремя строками:

* имя, задается внутри квадратных скобок;
* регулярное выражение - после "pattern=";
* строка коэффициента детализации - после "retentions=".

В строка детализации могут быть задаваны сразу несколько значений ``частота:срок хранения``, разделяемых запятой.

Частоты и сроки хранения могут включать суффиксы:

* s - сукенда,
* m - минута,
* h - час,
* d - день,
* y - год.

Ниже представлен простой пример настройки детализации:

.. code-block:: none

[garbage_collection]
pattern = garbageCollections$
retentions = 10s:14d

Имя ``[garbage_collection]`` служит в основном для аудита и будет отражено в ``creates.log`` при создании заданной метрики.

Регулярное выражение соответствует метрике заканчивающейся на ``garbageCollections``. Например ``com.acmeCorp.instance01.jvm.memory.garbageCollections`` сработает, а ``com.acmeCorp.instance01.jvm.memory.garbageCollections.full`` нет.

Строка задает соответствие каждой точки 10 секундам и сроку хранения точек а течение 14 дней.

Вот пример более сложной настройки детализации.

.. code-block:: none

[apache_busyWorkers]
pattern = ^servers\.www.*\.workers\.busyWorkers$
retentions = 15s:7d,1m:21d,15m:5y

Допустим схема именования метрик задана как ``servers.<servername>.<metrics>``. Этот шаблон будет соответствовать серверам с именами начинающимися с 'www', а метрикам завершающимися на '.workers.busyWorkers' (обратите внимание на '\' перед символами '.')

Кроме того, пример содержит несколько уровней детализации. Основное правило - выражения должны задаваться от самых свежих к самым старым, whisper будет тщательно сэмплировать метрики (По имолчанию усредняя) по достижении заданной границы.

Задавая несколько уровней детализации, вы сможете хранить данных за длительный период, экономя на дисковом пространстве и операциях ввода-вывода. Так как whisper усредняет (по-умолчанию) во время семплирования, он получает возможность рассчитывать суммарные значения, выполняя обратный процесс в будущем.

Пример: Вы храните поминутные данные о продажах за год и почасовые за 5 лет. Вам нужно вычислить продажи за 1-е Января прошлого года. Можно получить 24 точки за каждый час, запросить сырые данные. Вероятно это будут числа с плавающей точкой. Вы можете умножить каждое значение на 60 (соотношение между детализированными и недетализированными точками) и получить почасовые продажи.

Помимо описанного виже, в целях сохранения обратной совместимости поддерживается еще устаревший формат - ``секунд на точку:количество точек``

.. code-block:: none

retentions = 60:1440

60 - количество секунд на точку, 1440 - количество хранимых точек. Для работы с этим форматом требуются избыточные и запутанные математические операции, что позволит получить аналогичный результат. Однако, мы не рекомендуем пользоваться этим мехаинизмом.

storage-aggregation.conf
--------------------------------

Данный файл содержит правила агрегации данные для уменьшения детализации. Формат идентичен ``storage-schemas.conf``.
Важные заменания:

* Данный файл опционален. При его отсутствии будут использованы значения по-умолчанию.
* Здесь нет сроки ``retentions``, вместо нее используются ``xFilesFactor`` и ``aggregationMethod``.
* ``xFilesFactor`` - число с плавающей точкой в диапазоне от 0 до 1, задающее долю от предыдущего значения, которую должно иметь следующее отсутствующее значение. По-умолчанию 0.5.
* ``aggregationMethod`` задает метод агрегации значений для достижения следующего уровеня точности. Допустимые методы ``average``, ``sum``, ``min``, ``max``, and ``last``. По-умолчанию ``average``.
* Значения применяют при первой передаче метрики.
* Изменение этого файла не повлияет уже записанные даныне в .wsp файлах. Используйте whisper-set-aggregation-method.py что бы внести изменения.

Пример:

.. code-block:: none

[all_min]
pattern = \.min$
xFilesFactor = 0.1
aggregationMethod = min

Шаблон сработает для любой метрики заканчивающейся символами ``.min``.

``xFilesFactor`` задает минимум 10% слотов предыдущего уровня точности для вычисления средних значений следующего уровня.
``aggregationMethod`` задает использование минимального значения для аггрегации.

Отсутствие значение ``xFilesFactor`` и ``aggregationMethod`` приведет к поведению предусмотренному по умолчанию.

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

relay-rules.conf
--------------------

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

Пример:

.. code-block:: none

[example]
pattern = ^mydata\.foo\..+
servers = 10.1.2.3, 10.1.2.4:2004, myserver.mydomain.com

Необходмо задать минимум одну строку в качестве парамера по-умолчанию.

aggregation-rules.conf
-----------------------------

Правила аггрегации позволяют группировать метрики по мере их поступления, убирая потребность в sum() в каждой URL. Обратите внимание, что в отличии от предыдущих файлов изменения внесенные в этот файла вступят в силу автоматически. Для обеспечения необходимо запустить сервис carbon-aggregator.

Каждая строка задается следующим образом:

.. code-block:: none

output_template (frequency) = method input_pattern

Будут аггрегированны все метрики соответствующие input_pattern. Аггрегация будет выполняться через каждые 'frequency' секунд. 'method' может быть 'sum' или 'avg'. Имя агрегированной метрики будет производным имени исходной метрки и задается в 'output_template' по средством вычленения значений из 'input_pattern'.
Каждая метрика попавшая в ``carbon-aggregator`` останется неизменной если только не будет переопределена специальным правилом.

Например, если задана следующая схема именования метрик:

.. code-block:: none

<env>.applications.<app>.<server>.<metric>

Можно задать некоторую аггрегацию следующим образом:

.. code-block:: none

<env>.applications.<app>.all.requests (60) = sum <env>.applications.<app>.*.requests
<env>.applications.<app>.all.latency (60) = avg <env>.applications.<app>.*.latency

А при получении следующих метрик:

.. code-block:: none

prod.applications.apache.www01.requests
prod.applications.apache.www02.requests
prod.applications.apache.www03.requests
prod.applications.apache.www04.requests
prod.applications.apache.www05.requests

Они попадут в соответствующий буфер а по прошествии 60 секунд, метрика 'prod.applications.apache.all.requests' будет рассчитана как сумма этих значений.

Другой частый подход в использовании ``carbon-aggregator`` - аггрегация нескольких точки в одну метрику. Может быть удобно при получении одинаковых метрик с нескольких хостов, или нужно получать данные чаще чем задано наиболее детальным правилом точности.

Черо-белые списки
--------------------------

Черно-белые списки позволяют carbon принимать только заданные в белом списке или игнорировать заданные в черном. Функционал включается флагом ``USE_WHITELIST`` в carbon.conf. Может быть полезно для управления потоком избыточных или некорректных данных.

``GRAPHITE_CONF_DIR`` будет проверен на наличие ``whitelist.conf`` и ``blacklist.conf``. Каждый файл должен содержать по одному регулярному выражению на строку. Если списки пусты то все метрики будут приниматься по-умолчанию.

Внимание! Этот перевод, возможно, ещё не готов.
Его статус: перевод редактируется

Переведено на Нотабеноиде
http://notabenoid.org/book/48729/200294

Переводчики: nipman

Настройки

Готово:

100.00% КП = 1.0