opentelemetry_collector/receiver/nginxreceiver/metrics_receiver.go (23 lines of code) (raw):
package nginxreceiver
import (
"context"
"sync"
"go.opentelemetry.io/collector/component"
)
// Receiver is the type that provides Receiver functionality for the nginx stats metrics.
type Receiver struct {
nginxStatsCollector *NginxStatsCollector
stopOnce sync.Once
startOnce sync.Once
}
// Start starts the underlying nginx metrics generator.
func (receiver *Receiver) Start(ctx context.Context, host component.Host) error {
receiver.startOnce.Do(func() {
receiver.nginxStatsCollector.StartCollection()
})
return nil
}
// Shutdown stops and cancels the underlying nginx metrics generator.
func (receiver *Receiver) Shutdown(ctx context.Context) error {
receiver.stopOnce.Do(func() {
receiver.nginxStatsCollector.StopCollection()
})
return nil
}