Skip to content

Commit 9f9aec2

Browse files
committed
prometheusreceiver: approximate collector start time in an init function
1 parent ef995af commit 9f9aec2

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

receiver/prometheusreceiver/internal/starttimemetricadjuster.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,18 @@ var (
1616
errNoStartTimeMetrics = errors.New("start_time metric is missing")
1717
errNoDataPointsStartTimeMetric = errors.New("start time metric with no data points")
1818
errUnsupportedTypeStartTimeMetric = errors.New("unsupported data type for start time metric")
19+
20+
// approximateCollectorStartTime is the approximate start time of the collector. Used
21+
// as a fallback start time for metrics that don't have a start time set.
22+
// Set when the component is initialized.
23+
approximateCollectorStartTime *time.Time
1924
)
2025

26+
func init() {
27+
now := time.Now()
28+
approximateCollectorStartTime = &now
29+
}
30+
2131
type startTimeMetricAdjuster struct {
2232
startTimeMetricRegex *regexp.Regexp
2333
fallbackStartTime *time.Time
@@ -28,8 +38,7 @@ type startTimeMetricAdjuster struct {
2838
func NewStartTimeMetricAdjuster(logger *zap.Logger, startTimeMetricRegex *regexp.Regexp, useCollectorStartTimeFallback bool) MetricsAdjuster {
2939
var fallbackStartTime *time.Time
3040
if useCollectorStartTimeFallback {
31-
now := time.Now()
32-
fallbackStartTime = &now
41+
fallbackStartTime = approximateCollectorStartTime
3342
}
3443
return &startTimeMetricAdjuster{
3544
startTimeMetricRegex: startTimeMetricRegex,
@@ -44,7 +53,7 @@ func (stma *startTimeMetricAdjuster) AdjustMetrics(metrics pmetric.Metrics) erro
4453
if stma.fallbackStartTime == nil {
4554
return err
4655
}
47-
stma.logger.Warn("Couldn't get start time for metrics. Using fallback start time.", zap.Error(err))
56+
stma.logger.Info("Couldn't get start time for metrics. Using fallback start time.", zap.Error(err))
4857
startTime = float64(stma.fallbackStartTime.Unix())
4958
}
5059

0 commit comments

Comments
 (0)