本文整理汇总了Golang中github.com/prometheus/client_golang/prometheus.MustNewConstMetric函数的典型用法代码示例。如果您正苦于以下问题:Golang MustNewConstMetric函数的具体用法?Golang MustNewConstMetric怎么用?Golang MustNewConstMetric使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了MustNewConstMetric函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Collect
// Collect implements prometheus.Collector.
func (s *memorySeriesStorage) Collect(ch chan<- prometheus.Metric) {
s.persistence.Collect(ch)
s.mapper.Collect(ch)
ch <- s.persistErrors
ch <- prometheus.MustNewConstMetric(
maxChunksToPersistDesc,
prometheus.GaugeValue,
float64(s.maxChunksToPersist),
)
ch <- prometheus.MustNewConstMetric(
numChunksToPersistDesc,
prometheus.GaugeValue,
float64(s.getNumChunksToPersist()),
)
ch <- s.numSeries
s.seriesOps.Collect(ch)
ch <- s.ingestedSamplesCount
ch <- s.outOfOrderSamplesCount
ch <- s.nonExistentSeriesMatchesCount
ch <- prometheus.MustNewConstMetric(
numMemChunksDesc,
prometheus.GaugeValue,
float64(atomic.LoadInt64(&numMemChunks)),
)
s.maintainSeriesDuration.Collect(ch)
ch <- s.persistenceUrgencyScore
ch <- s.rushedMode
}
开发者ID:yershalom,项目名称:prometheus,代码行数:30,代码来源:storage.go
示例2: Collect
// Collect implements prometheus.Collector.
func (c *viewCollector) Collect(ch chan<- prometheus.Metric) {
for _, v := range c.stats.Views {
for _, s := range v.Cache {
ch <- prometheus.MustNewConstMetric(
resolverCache, prometheus.GaugeValue, float64(s.Gauge), v.Name, s.Name,
)
}
for _, s := range v.ResolverQueries {
ch <- prometheus.MustNewConstMetric(
resolverQueries, prometheus.CounterValue, float64(s.Counter), v.Name, s.Name,
)
}
for _, s := range v.ResolverStats {
if desc, ok := resolverMetricStats[s.Name]; ok {
ch <- prometheus.MustNewConstMetric(
desc, prometheus.CounterValue, float64(s.Counter), v.Name,
)
}
if desc, ok := resolverLabelStats[s.Name]; ok {
ch <- prometheus.MustNewConstMetric(
desc, prometheus.CounterValue, float64(s.Counter), v.Name, s.Name,
)
}
}
if buckets, count, err := histogram(v.ResolverStats); err == nil {
ch <- prometheus.MustNewConstHistogram(
resolverQueryDuration, count, math.NaN(), buckets, v.Name,
)
} else {
log.Warn("Error parsing RTT:", err)
}
}
}
开发者ID:soundcloud,项目名称:bind_exporter,代码行数:34,代码来源:bind_exporter.go
示例3: ScrapePerfEventsWaits
// ScrapePerfEventsWaits collects from `performance_schema.events_waits_summary_global_by_event_name`.
func ScrapePerfEventsWaits(db *sql.DB, ch chan<- prometheus.Metric) error {
// Timers here are returned in picoseconds.
perfSchemaEventsWaitsRows, err := db.Query(perfEventsWaitsQuery)
if err != nil {
return err
}
defer perfSchemaEventsWaitsRows.Close()
var (
eventName string
count, time uint64
)
for perfSchemaEventsWaitsRows.Next() {
if err := perfSchemaEventsWaitsRows.Scan(
&eventName, &count, &time,
); err != nil {
return err
}
ch <- prometheus.MustNewConstMetric(
performanceSchemaEventsWaitsDesc, prometheus.CounterValue, float64(count),
eventName,
)
ch <- prometheus.MustNewConstMetric(
performanceSchemaEventsWaitsTimeDesc, prometheus.CounterValue, float64(time)/picoSeconds,
eventName,
)
}
return nil
}
开发者ID:roman-vynar,项目名称:mysqld_exporter,代码行数:31,代码来源:perf_schema_events_waits.go
示例4: Collect
func (self *podAndContainerCollector) Collect(ch chan<- prometheus.Metric) {
runningContainers, err := self.containerCache.RunningContainers()
if err != nil {
glog.Warning("Failed to get running container information while collecting metrics: %v", err)
return
}
// Get a set of running pods.
runningPods := make(map[types.UID]struct{})
for _, cont := range runningContainers {
_, uid, _, _, err := dockertools.ParseDockerName(cont.Names[0])
if err != nil {
continue
}
runningPods[uid] = struct{}{}
}
ch <- prometheus.MustNewConstMetric(
runningPodCountDesc,
prometheus.GaugeValue,
float64(len(runningPods)))
ch <- prometheus.MustNewConstMetric(
runningContainerCountDesc,
prometheus.GaugeValue,
float64(len(runningContainers)))
}
开发者ID:vrosnet,项目名称:kubernetes,代码行数:26,代码来源:metrics.go
示例5: Update
func (c *filesystemCollector) Update(ch chan<- prometheus.Metric) (err error) {
stats, err := c.GetStats()
if err != nil {
return err
}
for _, s := range stats {
ch <- prometheus.MustNewConstMetric(
c.sizeDesc, prometheus.GaugeValue,
s.size, s.labelValues...,
)
ch <- prometheus.MustNewConstMetric(
c.freeDesc, prometheus.GaugeValue,
s.free, s.labelValues...,
)
ch <- prometheus.MustNewConstMetric(
c.availDesc, prometheus.GaugeValue,
s.avail, s.labelValues...,
)
ch <- prometheus.MustNewConstMetric(
c.filesDesc, prometheus.GaugeValue,
s.files, s.labelValues...,
)
ch <- prometheus.MustNewConstMetric(
c.filesFreeDesc, prometheus.GaugeValue,
s.filesFree, s.labelValues...,
)
}
return nil
}
开发者ID:wrouesnel,项目名称:node_exporter,代码行数:29,代码来源:filesystem_common.go
示例6: scrape
func (e *Exporter) scrape(ch chan<- prometheus.Metric) {
e.up.Set(1)
e.totalScrapes.Inc()
if time.Now().Sub(tempUpdated) < staleInterval {
ch <- prometheus.MustNewConstMetric(
prometheus.NewDesc(prometheus.BuildFQName(namespace, "sensor", "temperature"),
"Current temperature.", []string{"metric"}, nil),
prometheus.GaugeValue, celsius, "celsius",
)
ch <- prometheus.MustNewConstMetric(
prometheus.NewDesc(prometheus.BuildFQName(namespace, "sensor", "temperature"),
"Temperature in C and F.", []string{"metric"}, nil),
prometheus.GaugeValue, fahrenheit, "fahrenheit",
)
}
if time.Now().Sub(soundUpdated) < staleInterval {
ch <- prometheus.MustNewConstMetric(
prometheus.NewDesc(prometheus.BuildFQName(namespace, "sensor", "sound"),
"Sound (noise) level.", nil, nil),
prometheus.GaugeValue, float64(sound),
)
}
if time.Now().Sub(lightUpdated) < staleInterval {
ch <- prometheus.MustNewConstMetric(
prometheus.NewDesc(prometheus.BuildFQName(namespace, "sensor", "light"),
"Luminous flux per unit area.", nil, nil),
prometheus.GaugeValue, float64(light),
)
}
}
开发者ID:roman-vynar,项目名称:edison_exporter,代码行数:31,代码来源:edison_exporter.go
示例7: Collect
// Collect implements prometheus.Collector.
func (s *memorySeriesStorage) Collect(ch chan<- prometheus.Metric) {
s.persistence.Collect(ch)
s.mapper.Collect(ch)
ch <- s.persistErrors
ch <- prometheus.MustNewConstMetric(
maxChunksToPersistDesc,
prometheus.GaugeValue,
float64(s.maxChunksToPersist),
)
ch <- prometheus.MustNewConstMetric(
numChunksToPersistDesc,
prometheus.GaugeValue,
float64(s.getNumChunksToPersist()),
)
ch <- s.numSeries
s.seriesOps.Collect(ch)
ch <- s.ingestedSamplesCount
ch <- s.invalidPreloadRequestsCount
ch <- prometheus.MustNewConstMetric(
numMemChunksDesc,
prometheus.GaugeValue,
float64(atomic.LoadInt64(&numMemChunks)),
)
s.maintainSeriesDuration.Collect(ch)
}
开发者ID:bluecmd,项目名称:prometheus,代码行数:27,代码来源:storage.go
示例8: scrapeInformationSchema
func scrapeInformationSchema(db *sql.DB, ch chan<- prometheus.Metric) error {
autoIncrementRows, err := db.Query(infoSchemaAutoIncrementQuery)
if err != nil {
return err
}
defer autoIncrementRows.Close()
var (
schema, table, column string
value, max uint64
)
for autoIncrementRows.Next() {
if err := autoIncrementRows.Scan(
&schema, &table, &column, &value, &max,
); err != nil {
return err
}
ch <- prometheus.MustNewConstMetric(
globalInfoSchemaAutoIncrementDesc, prometheus.GaugeValue, float64(value),
schema, table, column,
)
ch <- prometheus.MustNewConstMetric(
globalInfoSchemaAutoIncrementMaxDesc, prometheus.GaugeValue, float64(max),
schema, table, column,
)
}
return nil
}
开发者ID:Dnile,项目名称:mysqld_exporter,代码行数:29,代码来源:mysqld_exporter.go
示例9: scrapeBinlogSize
func scrapeBinlogSize(db *sql.DB, ch chan<- prometheus.Metric) error {
masterLogRows, err := db.Query(binlogQuery)
if err != nil {
return err
}
defer masterLogRows.Close()
var (
size uint64
count uint64
filename string
filesize uint64
)
size = 0
count = 0
for masterLogRows.Next() {
if err := masterLogRows.Scan(&filename, &filesize); err != nil {
return nil
}
size += filesize
count++
}
ch <- prometheus.MustNewConstMetric(
binlogSizeDesc, prometheus.GaugeValue, float64(size),
)
ch <- prometheus.MustNewConstMetric(
binlogFilesDesc, prometheus.GaugeValue, float64(count),
)
return nil
}
开发者ID:Dnile,项目名称:mysqld_exporter,代码行数:33,代码来源:mysqld_exporter.go
示例10: GenericCollect
func GenericCollect(be *BaseExporter, ch chan<- prometheus.Metric) {
for _, name := range be.Store.MetricNames() {
m, err := be.Store.Get(name)
if err != nil {
log.Printf("[ERROR] exporter %v unable to get metric %v during GenericCollect due to error: %v", be.Name, name, err)
continue
}
var metric prometheus.Metric
if m.PromLabels() != nil {
metric = prometheus.MustNewConstMetric(
m.PromDescription(be.Name),
m.PromType(),
m.PromValue(),
m.PromLabels()...,
)
} else {
metric = prometheus.MustNewConstMetric(
m.PromDescription(be.Name),
m.PromType(),
m.PromValue(),
)
}
ch <- metric
}
}
开发者ID:Zumata,项目名称:exporttools,代码行数:25,代码来源:generic_collector.go
示例11: scrape
func (e *exporter) scrape(ch chan<- prometheus.Metric) {
defer close(ch)
now := time.Now().UnixNano()
defer func() {
e.duration.Set(float64(time.Now().UnixNano()-now) / 1000000000)
}()
recordErr := func(err error) {
glog.Warning(err)
e.errors.Inc()
}
url, err := e.f.leaderURL()
if err != nil {
recordErr(err)
return
}
varsURL := fmt.Sprintf("%s/vars.json", url)
resp, err := httpClient.Get(varsURL)
if err != nil {
recordErr(err)
return
}
defer resp.Body.Close()
var vars map[string]interface{}
if err = json.NewDecoder(resp.Body).Decode(&vars); err != nil {
recordErr(err)
return
}
for name, v := range vars {
v, ok := v.(float64)
if !ok {
continue
}
if desc, ok := counters[name]; ok {
ch <- prometheus.MustNewConstMetric(
desc,
prometheus.CounterValue,
v, noLables...,
)
}
if desc, ok := gauges[name]; ok {
ch <- prometheus.MustNewConstMetric(
desc,
prometheus.GaugeValue,
v, noLables...,
)
}
labelVars(ch, name, v)
}
}
开发者ID:jbripley,项目名称:aurora_exporter,代码行数:59,代码来源:main.go
示例12: ScrapeClientStat
// ScrapeClientStat collects from `information_schema.client_statistics`.
func ScrapeClientStat(db *sql.DB, ch chan<- prometheus.Metric) error {
var varName, varVal string
err := db.QueryRow(userstatCheckQuery).Scan(&varName, &varVal)
if err != nil {
log.Debugln("Detailed client stats are not available.")
return nil
}
if varVal == "OFF" {
log.Debugf("MySQL @@%s is OFF.", varName)
return nil
}
informationSchemaClientStatisticsRows, err := db.Query(clientStatQuery)
if err != nil {
return err
}
defer informationSchemaClientStatisticsRows.Close()
// The client column is assumed to be column[0], while all other data is assumed to be coerceable to float64.
// Because of the client column, clientStatData[0] maps to columnNames[1] when reading off the metrics
// (because clientStatScanArgs is mapped as [ &client, &clientData[0], &clientData[1] ... &clientdata[n] ]
// To map metrics to names therefore we always range over columnNames[1:]
columnNames, err := informationSchemaClientStatisticsRows.Columns()
if err != nil {
return err
}
var (
client string // Holds the client name, which should be in column 0.
clientStatData = make([]float64, len(columnNames)-1) // 1 less because of the client column.
clientStatScanArgs = make([]interface{}, len(columnNames))
)
clientStatScanArgs[0] = &client
for i := range clientStatData {
clientStatScanArgs[i+1] = &clientStatData[i]
}
for informationSchemaClientStatisticsRows.Next() {
if err := informationSchemaClientStatisticsRows.Scan(clientStatScanArgs...); err != nil {
return err
}
// Loop over column names, and match to scan data. Unknown columns
// will be filled with an untyped metric number. We assume other then
// cient, that we'll only get numbers.
for idx, columnName := range columnNames[1:] {
if metricType, ok := informationSchemaClientStatisticsTypes[columnName]; ok {
ch <- prometheus.MustNewConstMetric(metricType.desc, metricType.vtype, float64(clientStatData[idx]), client)
} else {
// Unknown metric. Report as untyped.
desc := prometheus.NewDesc(prometheus.BuildFQName(namespace, informationSchema, fmt.Sprintf("client_statistics_%s", strings.ToLower(columnName))), fmt.Sprintf("Unsupported metric from column %s", columnName), []string{"client"}, nil)
ch <- prometheus.MustNewConstMetric(desc, prometheus.UntypedValue, float64(clientStatData[idx]), client)
}
}
}
return nil
}
开发者ID:roman-vynar,项目名称:mysqld_exporter,代码行数:59,代码来源:info_schema_clientstats.go
示例13: Collect
// Collect implements prometheus.Collector.
func (server *Server) Collect(ch chan<- prometheus.Metric) {
status := server.Status()
for id, res := range status.Resources {
ch <- prometheus.MustNewConstMetric(server.descs.has, prometheus.GaugeValue, res.SumHas, id)
ch <- prometheus.MustNewConstMetric(server.descs.wants, prometheus.GaugeValue, res.SumWants, id)
ch <- prometheus.MustNewConstMetric(server.descs.subclients, prometheus.GaugeValue, float64(res.Count), id)
}
}
开发者ID:youtube,项目名称:doorman,代码行数:10,代码来源:server.go
示例14: Update
func (c *drbdCollector) Update(ch chan<- prometheus.Metric) (err error) {
statsFile := procFilePath("drbd")
file, err := os.Open(statsFile)
if err != nil {
if os.IsNotExist(err) {
log.Debugf("Not collecting DRBD statistics, as %s does not exist: %s", statsFile, err)
return nil
}
return err
}
defer file.Close()
scanner := bufio.NewScanner(file)
scanner.Split(bufio.ScanWords)
device := "unknown"
for scanner.Scan() {
field := scanner.Text()
if kv := strings.Split(field, ":"); len(kv) == 2 {
if id, err := strconv.ParseUint(kv[0], 10, 64); err == nil && kv[1] == "" {
device = fmt.Sprintf("drbd%d", id)
} else if metric, ok := drbdNumericalMetrics[kv[0]]; ok {
// Numerical value.
value, err := strconv.ParseFloat(kv[1], 64)
if err != nil {
return err
}
ch <- prometheus.MustNewConstMetric(
metric.desc, metric.valueType,
value*metric.multiplier, device)
} else if metric, ok := drbdStringPairMetrics[kv[0]]; ok {
// String pair value.
values := strings.Split(kv[1], "/")
ch <- prometheus.MustNewConstMetric(
metric.desc, prometheus.GaugeValue,
metric.isOkay(values[0]), device, "local")
ch <- prometheus.MustNewConstMetric(
metric.desc, prometheus.GaugeValue,
metric.isOkay(values[1]), device, "remote")
} else if kv[0] == "cs" {
// Connection state.
var connected float64
if kv[1] == "Connected" {
connected = 1
}
ch <- prometheus.MustNewConstMetric(
drbdConnected, prometheus.GaugeValue,
connected, device)
} else {
log.Debugf("Don't know how to process key-value pair [%s: %q]", kv[0], kv[1])
}
} else {
log.Debugf("Don't know how to process string %q", field)
}
}
return scanner.Err()
}
开发者ID:prometheus,项目名称:node_exporter,代码行数:56,代码来源:drbd_linux.go
示例15: collectMachineInfo
func (c *PrometheusCollector) collectMachineInfo(ch chan<- prometheus.Metric) {
machineInfo, err := c.infoProvider.GetMachineInfo()
if err != nil {
c.errors.Set(1)
glog.Warningf("Couldn't get machine info: %s", err)
return
}
ch <- prometheus.MustNewConstMetric(machineInfoCoresDesc, prometheus.GaugeValue, float64(machineInfo.NumCores))
ch <- prometheus.MustNewConstMetric(machineInfoMemoryDesc, prometheus.GaugeValue, float64(machineInfo.MemoryCapacity))
}
开发者ID:vmware,项目名称:kubernetes,代码行数:10,代码来源:prometheus.go
示例16: collectContainersInfo
func (c *PrometheusCollector) collectContainersInfo(ch chan<- prometheus.Metric) {
containers, err := c.infoProvider.SubcontainersInfo("/", &info.ContainerInfoRequest{NumStats: 1})
if err != nil {
c.errors.Set(1)
glog.Warningf("Couldn't get containers: %s", err)
return
}
for _, container := range containers {
baseLabels := []string{"id"}
id := container.Name
name := id
if len(container.Aliases) > 0 {
name = container.Aliases[0]
baseLabels = append(baseLabels, "name")
}
image := container.Spec.Image
if len(image) > 0 {
baseLabels = append(baseLabels, "image")
}
baseLabelValues := []string{id, name, image}[:len(baseLabels)]
if c.containerNameToLabels != nil {
newLabels := c.containerNameToLabels(name)
for k, v := range newLabels {
baseLabels = append(baseLabels, k)
baseLabelValues = append(baseLabelValues, v)
}
}
// Container spec
desc := prometheus.NewDesc("container_start_time_seconds", "Start time of the container since unix epoch in seconds.", baseLabels, nil)
ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, float64(container.Spec.CreationTime.Unix()), baseLabelValues...)
if container.Spec.HasCpu {
desc := prometheus.NewDesc("container_spec_cpu_shares", "CPU share of the container.", baseLabels, nil)
ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, float64(container.Spec.Cpu.Limit), baseLabelValues...)
}
if container.Spec.HasMemory {
desc := prometheus.NewDesc("container_spec_memory_limit_bytes", "Memory limit for the container.", baseLabels, nil)
ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, specMemoryValue(container.Spec.Memory.Limit), baseLabelValues...)
desc = prometheus.NewDesc("container_spec_memory_swap_limit_bytes", "Memory swap limit for the container.", baseLabels, nil)
ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, specMemoryValue(container.Spec.Memory.SwapLimit), baseLabelValues...)
}
// Now for the actual metrics
stats := container.Stats[0]
for _, cm := range c.containerMetrics {
desc := cm.desc(baseLabels)
for _, metricValue := range cm.getValues(stats) {
ch <- prometheus.MustNewConstMetric(desc, cm.valueType, float64(metricValue.value), append(baseLabelValues, metricValue.labels...)...)
}
}
}
}
开发者ID:johnmccawley,项目名称:origin,代码行数:55,代码来源:prometheus.go
示例17: ScrapeTableStat
// ScrapeTableStat collects from `information_schema.table_statistics`.
func ScrapeTableStat(db *sql.DB, ch chan<- prometheus.Metric) error {
var varName, varVal string
err := db.QueryRow(userstatCheckQuery).Scan(&varName, &varVal)
if err != nil {
log.Debugln("Detailed table stats are not available.")
return nil
}
if varVal == "OFF" {
log.Debugf("MySQL @@%s is OFF.", varName)
return nil
}
informationSchemaTableStatisticsRows, err := db.Query(tableStatQuery)
if err != nil {
return err
}
defer informationSchemaTableStatisticsRows.Close()
var (
tableSchema string
tableName string
rowsRead uint64
rowsChanged uint64
rowsChangedXIndexes uint64
)
for informationSchemaTableStatisticsRows.Next() {
err = informationSchemaTableStatisticsRows.Scan(
&tableSchema,
&tableName,
&rowsRead,
&rowsChanged,
&rowsChangedXIndexes,
)
if err != nil {
return err
}
ch <- prometheus.MustNewConstMetric(
infoSchemaTableStatsRowsReadDesc, prometheus.CounterValue, float64(rowsRead),
tableSchema, tableName,
)
ch <- prometheus.MustNewConstMetric(
infoSchemaTableStatsRowsChangedDesc, prometheus.CounterValue, float64(rowsChanged),
tableSchema, tableName,
)
ch <- prometheus.MustNewConstMetric(
infoSchemaTableStatsRowsChangedXIndexesDesc, prometheus.CounterValue, float64(rowsChangedXIndexes),
tableSchema, tableName,
)
}
return nil
}
开发者ID:roman-vynar,项目名称:mysqld_exporter,代码行数:53,代码来源:info_schema_tablestats.go
示例18: Collect
func (c countersCollector) Collect(ch chan<- prometheus.Metric) {
for k, n := range c.c.Counts() {
if c.nLabels > 1 {
labels := split(k)
if len(labels) != c.nLabels {
err := fmt.Errorf("wrong number of labels in MultiCounters key: %d != %d (key=%q)", len(labels), c.nLabels, k)
ch <- prometheus.NewInvalidMetric(c.desc, err)
continue
}
ch <- prometheus.MustNewConstMetric(c.desc, prometheus.GaugeValue, float64(n), labels...)
continue
}
ch <- prometheus.MustNewConstMetric(c.desc, prometheus.GaugeValue, float64(n), k)
}
}
开发者ID:jmptrader,项目名称:vitess,代码行数:15,代码来源:collector.go
示例19: ScrapePerfFileEvents
// ScrapePerfFileEvents collects from `performance_schema.file_summary_by_event_name`.
func ScrapePerfFileEvents(db *sql.DB, ch chan<- prometheus.Metric) error {
// Timers here are returned in picoseconds.
perfSchemaFileEventsRows, err := db.Query(perfFileEventsQuery)
if err != nil {
return err
}
defer perfSchemaFileEventsRows.Close()
var (
eventName string
countRead, timeRead, bytesRead uint64
countWrite, timeWrite, bytesWrite uint64
countMisc, timeMisc uint64
)
for perfSchemaFileEventsRows.Next() {
if err := perfSchemaFileEventsRows.Scan(
&eventName,
&countRead, &timeRead, &bytesRead,
&countWrite, &timeWrite, &bytesWrite,
&countMisc, &timeMisc,
); err != nil {
return err
}
ch <- prometheus.MustNewConstMetric(
performanceSchemaFileEventsDesc, prometheus.CounterValue, float64(countRead),
eventName, "read",
)
ch <- prometheus.MustNewConstMetric(
performanceSchemaFileEventsTimeDesc, prometheus.CounterValue, float64(timeRead)/picoSeconds,
eventName, "read",
)
ch <- prometheus.MustNewConstMetric(
performanceSchemaFileEventsBytesDesc, prometheus.CounterValue, float64(bytesRead),
eventName, "read",
)
ch <- prometheus.MustNewConstMetric(
performanceSchemaFileEventsDesc, prometheus.CounterValue, float64(countWrite),
eventName, "write",
)
ch <- prometheus.MustNewConstMetric(
performanceSchemaFileEventsTimeDesc, prometheus.CounterValue, float64(timeWrite)/picoSeconds,
eventName, "write",
)
ch <- prometheus.MustNewConstMetric(
performanceSchemaFileEventsBytesDesc, prometheus.CounterValue, float64(bytesWrite),
eventName, "write",
)
ch <- prometheus.MustNewConstMetric(
performanceSchemaFileEventsDesc, prometheus.CounterValue, float64(countMisc),
eventName, "misc",
)
ch <- prometheus.MustNewConstMetric(
performanceSchemaFileEventsTimeDesc, prometheus.CounterValue, float64(timeMisc)/picoSeconds,
eventName, "misc",
)
}
return nil
}
开发者ID:roman-vynar,项目名称:mysqld_exporter,代码行数:59,代码来源:perf_schema_file_events.go
示例20: ScrapeBinlogSize
// ScrapeBinlogSize colects from `SHOW BINARY LOGS`.
func ScrapeBinlogSize(db *sql.DB, ch chan<- prometheus.Metric) error {
var logBin uint8
err := db.QueryRow(logbinQuery).Scan(&logBin)
if err != nil {
return err
}
// If log_bin is OFF, do not run SHOW BINARY LOGS which explicitly produces MySQL error
if logBin == 0 {
return nil
}
masterLogRows, err := db.Query(binlogQuery)
if err != nil {
return err
}
defer masterLogRows.Close()
var (
size uint64
count uint64
filename string
filesize uint64
)
size = 0
count = 0
for masterLogRows.Next() {
if err := masterLogRows.Scan(&filename, &filesize); err != nil {
return nil
}
size += filesize
count++
}
ch <- prometheus.MustNewConstMetric(
binlogSizeDesc, prometheus.GaugeValue, float64(size),
)
ch <- prometheus.MustNewConstMetric(
binlogFilesDesc, prometheus.GaugeValue, float64(count),
)
// The last row contains the last binlog file number.
value, _ := strconv.ParseFloat(strings.Split(filename, ".")[1], 64)
ch <- prometheus.MustNewConstMetric(
binlogFileNumberDesc, prometheus.GaugeValue, value,
)
return nil
}
开发者ID:roman-vynar,项目名称:mysqld_exporter,代码行数:49,代码来源:binlog.go
注:本文中的github.com/prometheus/client_golang/prometheus.MustNewConstMetric函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论