Skip to content

Commit 1ee197e

Browse files
committed
orcl collection window
1 parent 3d79645 commit 1ee197e

File tree

2 files changed

+32
-14
lines changed

2 files changed

+32
-14
lines changed

receiver/oracledbreceiver/config.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"net"
1010
"net/url"
1111
"strconv"
12+
"time"
1213

1314
"go.opentelemetry.io/collector/scraper/scraperhelper"
1415
"go.uber.org/multierr"
@@ -29,8 +30,10 @@ var (
2930
)
3031

3132
type TopQueryCollection struct {
32-
MaxQuerySampleCount uint `mapstructure:"max_query_sample_count"`
33-
TopQueryCount uint `mapstructure:"top_query_count"`
33+
MaxQuerySampleCount uint `mapstructure:"max_query_sample_count"`
34+
TopQueryCount uint `mapstructure:"top_query_count"`
35+
CollectionInterval time.Duration `mapstructure:"collection_interval"`
36+
LookbackTime time.Duration `mapstructure:"lookback_time"`
3437
}
3538

3639
type QuerySample struct {
@@ -106,3 +109,10 @@ func (c Config) Validate() error {
106109
}
107110
return allErrs
108111
}
112+
113+
func (cfg *Config) EffectiveLookbackTime() time.Duration {
114+
if cfg.LookbackTime <= 0 {
115+
return 2 * cfg.ControllerConfig.CollectionInterval
116+
}
117+
return cfg.LookbackTime
118+
}

receiver/oracledbreceiver/scraper.go

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -133,19 +133,21 @@ type oracleScraper struct {
133133
obfuscator *obfuscator
134134
querySampleCfg QuerySample
135135
serviceInstanceID string
136+
lastExecutionTimestamp time.Time
136137
}
137138

138139
func newScraper(metricsBuilder *metadata.MetricsBuilder, metricsBuilderConfig metadata.MetricsBuilderConfig, scrapeCfg scraperhelper.ControllerConfig, logger *zap.Logger, providerFunc dbProviderFunc, clientProviderFunc clientProviderFunc, instanceName, hostName string) (scraper.Metrics, error) {
139140
s := &oracleScraper{
140-
mb: metricsBuilder,
141-
metricsBuilderConfig: metricsBuilderConfig,
142-
scrapeCfg: scrapeCfg,
143-
logger: logger,
144-
dbProviderFunc: providerFunc,
145-
clientProviderFunc: clientProviderFunc,
146-
instanceName: instanceName,
147-
hostName: hostName,
148-
serviceInstanceID: getInstanceID(instanceName, logger),
141+
mb: metricsBuilder,
142+
metricsBuilderConfig: metricsBuilderConfig,
143+
scrapeCfg: scrapeCfg,
144+
logger: logger,
145+
dbProviderFunc: providerFunc,
146+
clientProviderFunc: clientProviderFunc,
147+
instanceName: instanceName,
148+
hostName: hostName,
149+
serviceInstanceID: getInstanceID(instanceName, logger),
150+
lastExecutionTimestamp: time.Unix(0, 0),
149151
}
150152
return scraper.NewMetrics(s.scrape, scraper.WithShutdown(s.shutdown), scraper.WithStart(s.start))
151153
}
@@ -529,9 +531,11 @@ func (s *oracleScraper) scrapeLogs(ctx context.Context) (plog.Logs, error) {
529531
var scrapeErrors []error
530532

531533
if s.logsBuilderConfig.Events.DbServerTopQuery.Enabled {
532-
topNCollectionErrors := s.collectTopNMetricData(ctx, logs)
533-
if topNCollectionErrors != nil {
534-
scrapeErrors = append(scrapeErrors, topNCollectionErrors)
534+
if s.isTopNMetricsCollectionDue() {
535+
topNCollectionErrors := s.collectTopNMetricData(ctx, logs)
536+
if topNCollectionErrors != nil {
537+
scrapeErrors = append(scrapeErrors, topNCollectionErrors)
538+
}
535539
}
536540
}
537541

@@ -545,6 +549,10 @@ func (s *oracleScraper) scrapeLogs(ctx context.Context) (plog.Logs, error) {
545549
return logs, errors.Join(scrapeErrors...)
546550
}
547551

552+
func (s *oracleScraper) isTopNMetricsCollectionDue() bool {
553+
554+
}
555+
548556
func (s *oracleScraper) collectTopNMetricData(ctx context.Context, logs plog.Logs) error {
549557
var errs []error
550558
// get metrics and query texts from DB

0 commit comments

Comments
 (0)