2016-06-03 4 views
3

Я еще не смог найти несколько хороших примеров использования калибратора, счетчика и гистограммы в прометее. Любая помощь по этому поводу будет выполнена. Я попытался использовать документацию, но мне не удалось успешно создать рабочее приложение.Как подтолкнуть метрики к прометею с помощью client_golang?

+1

Ваш вопрос непонятен, так как prometheus - система контроля на основе тягового усилия. – caskey

+0

Я нашел документацию для клиента python намного проще, чем golang. – Efox

ответ

3

Прометей - это система с тяговым механизмом, если вы хотите осуществлять контроль на основе нажатия, вам нужно использовать какой-либо шлюз. Минимальный пример (фактически не делает ничего полезного, как начиная НТТР слушателя, или на самом деле делать что-нибудь к метрике) следующим образом:

import (
     "github.com/prometheus/client_golang/prometheus" 
     "net/http" 
) 

var responseMetric = prometheus.NewHistogram(
     prometheus.HistogramOpts{ 
       Name: "request_duration_milliseconds", 
       Help: "Request latency distribution", 
       Buckets: prometheus.ExponentialBuckets(10.0, 1.13, 40), 
     }) 

func main() { 
     prometheus.MustRegister(responseMetric) 
     http.Handle("/metrics", prometheus.Handler()) 
     // Any other setup, then an http.ListenAndServe here 
} 

Затем нужно настроить Прометея, чтобы очистить /metrics страницу бинарный файл обеспечивает.

+0

Образец содержит ошибку. – Efox

+0

@ Efox Да, я скопировал неправильную строку, где он сказал «requestCounter», он должен (как это сейчас делает) сказать «responseMetric». – Vatine

+0

Он уже что-то измеряет? Как добавить к нему примерные показатели? – Efox

5

Я нашел это

`

package main 

import (
    "net/http" 

    "github.com/prometheus/client_golang/prometheus" 
) 

var (
cpuTemp = prometheus.NewGauge(prometheus.GaugeOpts{ 
    Name: "cpu_temperature_celsius", 
    Help: "Current temperature of the CPU.", 
}) 
hdFailures = prometheus.NewCounter(prometheus.CounterOpts{ 
    Name: "hd_errors_total", 
    Help: "Number of hard-disk errors.", 
}) 
) 

func init() { 
    prometheus.MustRegister(cpuTemp) 
    prometheus.MustRegister(hdFailures) 
} 

func main() { 
    cpuTemp.Set(65.3) 
    hdFailures.Inc() 

    http.Handle("/metrics", prometheus.Handler()) 
    http.ListenAndServe(":8080", nil) 
} 

`

Это может быть полезно для некоторых.