// prometheusPushClient pushs metrics to Prometheus Pushgateway. func prometheusPushClient(job, addr string, interval time.Duration) { for { err := push.FromGatherer( job, push.HostnameGroupingKey(), addr, prometheus.DefaultGatherer, ) if err != nil { log.Errorf("could not push metrics to Prometheus Pushgateway: %v", err) } time.Sleep(interval) } }
func ExampleCollectors() { completionTime := prometheus.NewGauge(prometheus.GaugeOpts{ Name: "db_backup_last_completion_timestamp_seconds", Help: "The timestamp of the last succesful completion of a DB backup.", }) completionTime.Set(float64(time.Now().Unix())) if err := push.Collectors( "db_backup", push.HostnameGroupingKey(), "http://pushgateway:9091", completionTime, ); err != nil { fmt.Println("Could not push completion time to Pushgateway:", err) } }
// PrometheusPushClient pushs metrics to Prometheus Pushgateway. func prometheusPushClient(addr string, interval time.Duration) { // TODO: TiDB do not have uniq name, so we use host+port to compose a name. job := "tidb" for { err := push.AddFromGatherer( job, push.HostnameGroupingKey(), addr, prometheus.DefaultGatherer, ) if err != nil { log.Errorf("could not push metrics to Prometheus Pushgateway: %v", err) } time.Sleep(interval) } }
// pushMetrics attempts to send some new metrics to the server. It returns the new number of errors. func (m *metrics) pushMetrics() int { if !m.newMetrics { return m.errors } start := time.Now() m.newMetrics = false if err := deadline(func() error { return push.AddFromGatherer("please", push.HostnameGroupingKey(), m.url, prometheus.DefaultGatherer) }, 500*time.Millisecond); err != nil { log.Warning("Could not push metrics to the repository: %s", err) m.newMetrics = true return m.errors + 1 } m.pushes += 1 log.Debug("Push #%d of metrics in %0.3fs", m.pushes, time.Since(start).Seconds()) return 0 }
func ExampleRegistry() { registry := prometheus.NewRegistry() completionTime := prometheus.NewGauge(prometheus.GaugeOpts{ Name: "db_backup_last_completion_timestamp_seconds", Help: "The timestamp of the last succesful completion of a DB backup.", }) registry.MustRegister(completionTime) completionTime.Set(float64(time.Now().Unix())) if err := push.FromGatherer( "db_backup", push.HostnameGroupingKey(), "http://pushgateway:9091", registry, ); err != nil { fmt.Println("Could not push completion time to Pushgateway:", err) } }