42 lines
839 B
Go
42 lines
839 B
Go
/*
|
|
Copyright IBM Corp. All Rights Reserved.
|
|
|
|
SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package operations
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/hyperledger/fabric/common/metrics"
|
|
"github.com/hyperledger/fabric/common/metrics/prometheus"
|
|
)
|
|
|
|
var (
|
|
fabricVersion = metrics.GaugeOpts{
|
|
Name: "fabric_version",
|
|
Help: "The active version of Fabric.",
|
|
LabelNames: []string{"version"},
|
|
StatsdFormat: "%{#fqname}.%{version}",
|
|
}
|
|
|
|
gaugeLock sync.Mutex
|
|
promVersionGauge metrics.Gauge
|
|
)
|
|
|
|
func versionGauge(provider metrics.Provider) metrics.Gauge {
|
|
switch provider.(type) {
|
|
case *prometheus.Provider:
|
|
gaugeLock.Lock()
|
|
defer gaugeLock.Unlock()
|
|
if promVersionGauge == nil {
|
|
promVersionGauge = provider.NewGauge(fabricVersion)
|
|
}
|
|
return promVersionGauge
|
|
|
|
default:
|
|
return provider.NewGauge(fabricVersion)
|
|
}
|
|
}
|