Fix export timestamp not working for prometheus on v2 (#7289)
This commit is contained in:
parent
c56596dec2
commit
df145c7e56
|
@ -139,7 +139,7 @@ func (p *PrometheusClient) Init() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
case 2:
|
case 2:
|
||||||
p.collector = v2.NewCollector(p.ExpirationInterval.Duration, p.StringAsLabel)
|
p.collector = v2.NewCollector(p.ExpirationInterval.Duration, p.StringAsLabel, p.ExportTimestamp)
|
||||||
err := registry.Register(p.collector)
|
err := registry.Register(p.collector)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -48,6 +48,34 @@ func TestMetricVersion2(t *testing.T) {
|
||||||
# HELP cpu_time_idle Telegraf collected metric
|
# HELP cpu_time_idle Telegraf collected metric
|
||||||
# TYPE cpu_time_idle untyped
|
# TYPE cpu_time_idle untyped
|
||||||
cpu_time_idle{host="example.org"} 42
|
cpu_time_idle{host="example.org"} 42
|
||||||
|
`),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "when export timestamp is true timestamp is present in the metric",
|
||||||
|
output: &PrometheusClient{
|
||||||
|
Listen: ":0",
|
||||||
|
MetricVersion: 2,
|
||||||
|
CollectorsExclude: []string{"gocollector", "process"},
|
||||||
|
Path: "/metrics",
|
||||||
|
ExportTimestamp: true,
|
||||||
|
Log: Logger,
|
||||||
|
},
|
||||||
|
metrics: []telegraf.Metric{
|
||||||
|
testutil.MustMetric(
|
||||||
|
"cpu",
|
||||||
|
map[string]string{
|
||||||
|
"host": "example.org",
|
||||||
|
},
|
||||||
|
map[string]interface{}{
|
||||||
|
"time_idle": 42.0,
|
||||||
|
},
|
||||||
|
time.Unix(0, 0),
|
||||||
|
),
|
||||||
|
},
|
||||||
|
expected: []byte(`
|
||||||
|
# HELP cpu_time_idle Telegraf collected metric
|
||||||
|
# TYPE cpu_time_idle untyped
|
||||||
|
cpu_time_idle{host="example.org"} 42 0
|
||||||
`),
|
`),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -43,11 +43,16 @@ type Collector struct {
|
||||||
coll *serializer.Collection
|
coll *serializer.Collection
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewCollector(expire time.Duration, stringsAsLabel bool) *Collector {
|
func NewCollector(expire time.Duration, stringsAsLabel bool, exportTimestamp bool) *Collector {
|
||||||
config := serializer.FormatConfig{}
|
config := serializer.FormatConfig{}
|
||||||
if stringsAsLabel {
|
if stringsAsLabel {
|
||||||
config.StringHandling = serializer.StringAsLabel
|
config.StringHandling = serializer.StringAsLabel
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if exportTimestamp {
|
||||||
|
config.TimestampExport = serializer.ExportTimestamp
|
||||||
|
}
|
||||||
|
|
||||||
return &Collector{
|
return &Collector{
|
||||||
expireDuration: expire,
|
expireDuration: expire,
|
||||||
coll: serializer.NewCollection(config),
|
coll: serializer.NewCollection(config),
|
||||||
|
|
Loading…
Reference in New Issue