Middle
Ինչպես կարգավորել հաճախորդները՝ մետրիկաները Prometheus-ին փոխանցելու համար։
sobes.tech AI
Պատասխան AI-ից
Տեղափոխելու համար մետաղական տվյալները Prometheus-ին, անհրաժեշտ է օգտագործել արտահանողներ (Exporters): Արտահանողներն են փոքր ծառայություններ, որոնք բացում են HTTP-էնդպոինտ, որը պարունակում է մետաղական տվյալներ այն ձևաչափով, որը հասկանալի է Prometheus-ին:
Հիմնական եղանակները՝
-
Անձնական և երրորդ կողմի արտահանողների օգտագործում:
- Կան պատրաստի արտահանողներ շատ հանրահայտ ծառայությունների և համակարգերի համար՝
node_exporter(ՕՀ մետաղական տվյալներ),mysqld_exporter(MySQL մետաղական տվյալներ),kube-state-metrics(Kubernetes մետաղական տվյալներ) և այլն: - Կանխատեսում է, որ կոնֆիգուրացիան ներառում է արտահանողի տեղադրումը նպատակային սերվերում և նրա հասցեի նշումը Prometheus կոնֆիգուրացիայում:
- Կան պատրաստի արտահանողներ շատ հանրահայտ ծառայությունների և համակարգերի համար՝
-
Ծրագրերի ինստրումենտացիա:
- Ծրագրավորողները կարող են ավելացնել կոդ իրենց ծրագրերին՝ ուղղակի մետաղական տվյալներ ներկայացնելու համար:
- Prometheus նախագիծը տրամադրում է հաճախորդային գրադարաններ տարբեր ծրագրավորման լեզուների համար՝ Go, Java, Python, Ruby և այլն:
- Այս գրադարանները թույլ են տալիս ստեղծել հաշվողականիչներ (counters), սենսորներ (gauges), հիստոգրամներ (histograms) և ամփոփումներ (summaries), և ապա բացել HTTP-էնդպոինտ՝ Prometheus-ից տվյալներ հավաքելու համար:
-
Textfile Collector (
node_exporterհամար):node_exporterունիtextfileհավաքիչ, որը կարող է կարդալ մետաղական տվյալներ ֆայլերից՝ որոշակի ձևաչափով:- Սա օգտակար է պարբերական սցենարների կամ գործառույթների համար, որոնք ստեղծում են մետաղական տվյալներ:
-
Pushgateway:
Pushgatewayօգտագործվում է կարճաժամկետ կամ խմբային առաջադրանքների համար, որոնք չեն կարող ուղիղ հավաքագրվել Prometheus-ով՝ քանի որ կարող է չլինել դրանց ժամանակը հավաքագրման պահին:- Ծրագիրը ուղարկում է իր մետաղական տվյալները
Pushgateway-ին, և Prometheus հավաքում է տվյալներըPushgateway-ից:
# Prometheus կոնֆիգուրացիայի օրինակ (prometheus.yml)
scrape_configs:
- job_name: 'node_exporter_servers' # Աշխատանքի անվանում
static_configs:
- targets: ['server1:9100', 'server2:9100'] # Հոստեր/պորտեր, որտեղ աշխատում է `node_exporter`
- job_name: 'application_metrics' # Ծրագիր մետաղական տվյալների հավաքագրման համար
metrics_path: /metrics # Փողոց, որով ծրագիրը ներկայացնում է մետաղական տվյալներ
static_configs:
- targets: ['application-host:8080'] # Ծրագրի հասցե
- job_name: 'pushgateway' # Pushgateway- ի մետաղական տվյալների հավաքագրման համար
honor_labels: true # Կարևոր է Pushgateway- ի նշանների ճիշտ մշակման համար
static_configs:
- targets: ['pushgateway-host:9091'] # Pushgateway- ի հասցե
Հետո, երբ կոնֆիգուրացվում են արտահանողներն կամ ծրագրերի ինստրումենտացիան, Prometheus-ը պարբերաբար հարցում է նշված endpoinտները՝ մետաղական տվյալներ հավաքելու համար։