"زجاجات البوب." - بيردمان
مجموعات الجرافيت رائعة جدًا. فيما يلي بعض الأدوات البدائية لمساعدتك في إدارة مجموعات الجرافيت الخاصة بك.
تدعم كافة الأدوات حجتين شائعتين؛ المسار إلى ملف التكوين، واسم المجموعة. باستخدام هذه الأدوات إلى جانب ملف التكوين الذي يصف مجموعات الجرافيت الخاصة بك، يمكنك إنشاء برامج نصية لإدارة المقاييس الخاصة بك. يمكن بسهولة استبدال بعض الأدوات بسطور واحدة في الغلاف، ولكنها موجودة هنا من أجل الراحة وسهولة القراءة. الهدف هو توفير أدوات مساعدة سريعة ويمكن التنبؤ بها ويمكن تجميعها بسهولة في أدوات أكثر تقدمًا.
يتوفر Carbonate من مستودع Python الرسمي لجهة خارجية (المعروف أيضًا باسم PyPi) وبالتالي يمكن تثبيته عبر مديري حزم Python العاديين. لاحظ أنه قد يتعين عليك تثبيت مدير حزم python (على سبيل المثال apt-get install python-setuptools على مضيف ubuntu)
pip install carbonate
تتوقع Carbonate ملف تكوين يحدد المجموعات الموجودة في بيئتك. يوجد ملف التكوين الافتراضي في /opt/graphite/conf/carbonate.conf
أو يمكن توفيره في سطر الأوامر. المجموعة الافتراضية تسمى "الرئيسية". يمكن تجاوز كلا الافتراضين عن طريق الإعداد في البيئة CARBONATE_CONFIG
و CARBONATE_CLUSTER
على التوالي.
[main]
DESTINATIONS = 192.168.9.13:2004:carbon01, 192.168.9.15:2004:carbon02, 192.168.6.20:2004:carbon03
REPLICATION_FACTOR = 2
SSH_USER = carbon
[agg]
DESTINATIONS = 192.168.9.13:2004:carbon01, 192.168.9.15:2004:carbon02, 192.168.6.20:2004:carbon03
RELAY_METHOD = aggregated-consistent-hashing
REPLICATION_FACTOR = 2
SSH_USER = carbon
[fnv]
DESTINATIONS = 192.168.9.13:2004:ba603c36342304ed77953f84ac4d357b, 192.168.9.15:2004:5dd63865534f84899c6e5594dba6749a, 192.168.6.20:2004:866a18b81f2dc4649517a1df13e26f28
REPLICATION_FACTOR = 2
SSH_USER = carbonate
HASHING_TYPE = fnv1a_ch
يجب أن تهتم بمطابقة قائمة عناوين IP الوجهة أو أسماء المضيفين مع العقد الموجودة في مجموعتك (أي يجب أن تتطابق مع تكوين التوجيه الخاص بمرحل الكربون الخاص بك). الترتيب مهم بسبب كيفية إنشاء حلقة التجزئة المتسقة.
يمكنك تكوين طريقة الترحيل لتكون إحدى "التجزئة المتسقة" أو "التجزئة المتسقة المجمعة". إذا تم حذفه، فسيتم استخدام "التجزئة المتسقة" افتراضيًا. يتطلب استخدام "التجزئة المجمعة المتسقة" عادةً توفير ملف قواعد للأوامر ذات الصلة.
يجب أن يتطابق عامل النسخ المتماثل مع عامل النسخ المتماثل للمجموعة.
يمكنك أيضًا اختيار توفير مستخدم SSH الذي سيتم استخدامه عندما يتطلب الكربونات الاتصال بعقدة أخرى في المجموعة لإجراء عملية ما. إذا لم يتم توفير ذلك، فسيتم اختيار المستخدم الحالي الذي ينفذ الأمر.
أخيرًا، يمكنك تقديم HASHING_TYPE لمجموعتك. الافتراضي هو carbon_ch
، كما يتم دعم fnv1a_ch
. يرجى ملاحظة أنه لاستخدام تجزئة fnv1a_ch
فإنك تحتاج إلى تثبيت carbon
1.0.2 أو إصدار أحدث (أو تحتاج إلى استخدام مرحل Carbon-c-relay بدلاً من ذلك).
usage: carbon-hosts [-h] [-c CONFIG_FILE] [-C CLUSTER]
Return the addresses for all nodes in a cluster
optional arguments:
-h, --help show this help message and exit
-c CONFIG_FILE, --config-file CONFIG_FILE
Config file to use (default:
/opt/graphite/conf/carbonate.conf)
-C CLUSTER, --cluster CLUSTER
Cluster name (default: main)
usage: carbon-lookup [-h] [-c CONFIG_FILE] [-C CLUSTER] [-s] METRIC
Lookup where a metric lives in a carbon cluster
positional arguments:
METRIC Full metric name to search for
optional arguments:
-h, --help show this help message and exit
-c CONFIG_FILE, --config-file CONFIG_FILE
Config file to use (default:
/opt/graphite/conf/carbonate.conf)
-C CLUSTER, --cluster CLUSTER
Cluster name (default: main)
-a AGGREGATION_RULES, --aggregation-rules AGGREGATION_RULES
File containing rules used in conjunction with the
"aggregated-consistent-hashing" relay method (default:
/opt/graphite/conf/aggregation-rules.conf)
-s, --short Only display the address, without port and cluster
name (default: False)
usage: carbon-list [-h] [-c CONFIG_FILE] [-C CLUSTER] [-d STORAGE_DIR]
List the metrics this carbon node contains
optional arguments:
-h, --help show this help message and exit
-c CONFIG_FILE, --config-file CONFIG_FILE
Config file to use (default:
/opt/graphite/conf/carbonate.conf)
-C CLUSTER, --cluster CLUSTER
Cluster name (default: main)
-d STORAGE_DIR, --storage-dir STORAGE_DIR
Storage dir (default: /opt/graphite/storage/whisper)
usage: carbon-sieve [-h] [-c CONFIG_FILE] [-C CLUSTER] [-f METRICS_FILE]
[-n NODE] [-I]
Given a list of metrics, output those that belong to a node
optional arguments:
-h, --help show this help message and exit
-c CONFIG_FILE, --config-file CONFIG_FILE
Config file to use (default:
/opt/graphite/conf/carbonate.conf)
-C CLUSTER, --cluster CLUSTER
Cluster name (default: main)
-a AGGREGATION_RULES, --aggregation-rules AGGREGATION_RULES
File containing rules used in conjunction with the
"aggregated-consistent-hashing" relay method (default:
/opt/graphite/conf/aggregation-rules.conf)
-f METRICS_FILE, --metrics-file METRICS_FILE
File containing metric names to filter, or '-' to read
from STDIN (default: -)
-n NODE, --node NODE Filter for metrics belonging to this node (default:
self)
-I, --invert Invert the sieve, match metrics that do NOT belong to
a node (default: False)
usage: carbon-sync [-h] [-c CONFIG_FILE] [-C CLUSTER] [-f METRICS_FILE] -s
SOURCE_NODE [-d STORAGE_DIR] [-b BATCH_SIZE]
[--source-storage-dir SOURCE_STORAGE_DIR]
[--rsync-options RSYNC_OPTIONS] [--rsync-disable-copy-dest]
[--tmpdir TMP_STAGING_DIR] [--rsync-max-retries MAX_RETRIES]
[--rsync-retries-interval SECONDS] [--dirty] [-l] [-o]
Sync local metrics using remote nodes in the cluster
optional arguments:
-h, --help show this help message and exit
-c CONFIG_FILE, --config-file CONFIG_FILE
Config file to use (env: CARBONATE_CONFIG) (default:
/opt/graphite/conf/carbonate.conf)
-C CLUSTER, --cluster CLUSTER
Cluster name (env: CARBONATE_CLUSTER) (default: main)
-f METRICS_FILE, --metrics-file METRICS_FILE
File containing metric names to filter, or '-' to read
from STDIN (default: -)
-s SOURCE_NODE, --source-node SOURCE_NODE
Override the source for metrics data (default: None)
-d STORAGE_DIR, --storage-dir STORAGE_DIR
Storage dir (default: /opt/graphite/storage/whisper)
-b BATCH_SIZE, --batch-size BATCH_SIZE
Batch size for the rsync job (default: 1000)
--source-storage-dir SOURCE_STORAGE_DIR
Source storage dir (default:
/opt/graphite/storage/whisper)
--rsync-options RSYNC_OPTIONS
Pass option(s) to rsync. Make sure to use "--rsync-
options=" if option starts with '-' (default: -azpS)
--rsync-disable-copy-dest
Avoid --copy-dest, transfer all whisper data between
nodes. (default: False)
--rsync-max-retries RETRIES
Number of times rsync will attempt to copy each batch
of metrics before moving on. If all retry attempts are
unsuccessful, carbon-sync will write a file containing
the name of each metric in the failed batch so they can
be easily retried at a later time. (Default: 3)
--rsync-retries-interval SECONDS
How long to wait in between each rsync retry attempt
(see --rsync-max-retries). (default: 5)
-t TMP_STAGING_DIR, --tmpdir TMP_STAGING_DIR
Specify an alternate location in which the temporary
rsync staging dirs will be created. This can be useful
for large syncs where the default location (as chosen
by mkdtemp) resides on a filesystem that's too small
to store all the metrics being copied from the remote
host.
--dirty If set, don't clean temporary rsync directory
(default: False)
-l, --lock Lock whisper files during filling (default: False)
-o, --overwrite Write all non nullpoints from src to dst (default:
False)
usage: carbon-path [-h] [-c CONFIG_FILE] [-C CLUSTER] [-f METRICS_FILE] [-r]
[-p] [-d STORAGE_DIR]
Transform metric paths to (or from) filesystem paths
optional arguments:
-h, --help show this help message and exit
-c CONFIG_FILE, --config-file CONFIG_FILE
Config file to use (default:
/opt/graphite/conf/carbonate.conf)
-C CLUSTER, --cluster CLUSTER
Cluster name (default: main)
-f METRICS_FILE, --metrics-file METRICS_FILE
File containing metric names to transform to file
paths, or '-' to read from STDIN (default: -)
-r, --reverse Transform from file paths to metric paths (default:
False)
-p, --prepend Prepend storage dir to file paths (default: False)
-d STORAGE_DIR, --storage-dir STORAGE_DIR
Whisper storage directory to prepend when -p given
(default: /opt/graphite/storage/whisper)
usage: carbon-stale [-h] [-c CONFIG_FILE] [-C CLUSTER] [-f METRICS_FILE] [-r]
[-d STORAGE_DIR] [-l HOURS] [-o HOURS] [-w] [-p]
Find and list potentially stale metrics.
optional arguments:
-h, --help show this help message and exit
-c CONFIG_FILE, --config-file CONFIG_FILE
Config file to use (default:
/opt/graphite/conf/carbonate.conf)
-C CLUSTER, --cluster CLUSTER
Cluster name (default: main)
-f METRICS_FILE, --metrics-file METRICS_FILE
File containing metric names to transform to file
paths, or '-' to read from STDIN (default: -)
-r, --reverse Output metrics which are not stale instead (default:
False)
-d STORAGE_DIR, --storage-dir STORAGE_DIR
Whisper storage directory to prepend when -p given
(default: /opt/graphite/storage/whisper)
-l HOURS, --limit HOURS
Definition of staleness, in hours (default: 24)
-o HOURS, --offset HOURS
Use a whisper data window ending HOURS ago (implies
-w) (default: 0)
-w, --whisper Use whisper data instead of filesystem stat() call
(default: False)
-p, --paths Print filesystem paths instead of metric names
(default: False)
usage: whisper-aggregate [-h] [-f METRICS_FILE] [-d STORAGE_DIR]
Set aggregation for whisper-backed metrics this carbon instance contains
optional arguments:
-h, --help show this help message and exit
-f METRICS_FILE, --metrics-file METRICS_FILE
File containing metric names and aggregation modes, or
'-' to read from STDIN (default: -)
-d STORAGE_DIR, --storage-dir STORAGE_DIR
Whisper storage directory (default:
/opt/graphite/storage/whisper)
usage: whisper-fill [-h] [-l] [-o] SRC DST
Backfill datapoints from one whisper file into another
positional arguments:
SRC Whisper source file
DST Whisper destination file
optional arguments:
-h, --help show this help message and exit
-l, --lock Lock whisper files during filling (default: False)
-o, --overwrite Write all non nullpoints from src to dst (default: False)
#!/bin/sh
#
# Resync a node from other nodes in the cluster
#
LOCAL_IP="$1"
for h in $(carbon-hosts) ; do
(
ssh $h -- carbon-list |
carbon-sieve -n $LOCAL_IP |
carbon-sync -s $h
) &
done
#!/bin/sh
#
# Rebalance a cluster from one size to another. Remember to cleanup metrics
# that no longer belong when all nodes are rebalanced!
#
LOCAL_IP="$1"
OLD_CLUSTER="old"
NEW_CLUSTER="main"
for h in $(carbon-hosts -C "$OLD_CLUSTER") ; do
ssh $h -- carbon-list |
carbon-sieve -C "$NEW_CLUSTER" -n $LOCAL_IP |
carbon-sync -s $h
done
#!/bin/sh
#
# List metrics from disk that don't belong
#
LOCAL_IP="$1"
carbon-list | carbon-sieve -I -n $LOCAL_IP
المقاييس ذات البيانات الهامسة الفارغة تمامًا خلال الساعتين الأخيرتين (ربما تكون مفيدة إذا كنت تشك في وجود مشكلات تتعلق بالطوابع الزمنية للخدمة أو عملاء الكربون الذين يكتبون في "المستقبل"):
carbon-list | carbon-stale --whisper --limit=2
المقاييس التي تظهر ملفات مقاييسها دون تغيير لمدة 48 ساعة أو أكثر (متطابقة وظيفيًا find /your/data/dir -type f -mtime +2
):
carbon-list | carbon-stale --limit=48
الأكثر إثارة للاهتمام هو إذا كنت تستخدم carbon-stale
، ثم غربل لتحديد المقاييس التي لا تنتمي إلى هنا (مقابل المقاييس غير القديمة التي تنتمي إلى هنا ولكن تم الإبلاغ عنها بشكل خاطئ في منخل الكربون بسبب أشياء مثل الفترات المضاعفة في المسارات المترية بسبب جامعي مكسورة إنه شيء.)
carbon-list | carbon-stale --limit=48 | carbon-sieve -I -n $LOCAL_IP
لطباعة مسارات الملفات لاستخدامها مع xargs rm
أو غيرها، استخدم -p
:
carbon-list | carbon-stale -p | xargs -n 100 rm
الرمز متاح بموجب ترخيص MIT.