+build go1.11

package ocsql

import (
	
	
	
	

	
)
RecordStats records database statistics for provided sql.DB at the provided interval.
func ( *sql.DB,  time.Duration) ( func()) {
	var (
		 sync.Once
		       = context.Background()
		    = time.NewTicker()
		      = make(chan struct{})
	)

	go func() {
		for {
			select {
			case <-.C:
				 := .Stats()
				stats.Record(,
					MeasureOpenConnections.M(int64(.OpenConnections)),
					MeasureIdleConnections.M(int64(.Idle)),
					MeasureActiveConnections.M(int64(.InUse)),
					MeasureWaitCount.M(.WaitCount),
					MeasureWaitDuration.M(float64(.WaitDuration.Nanoseconds())/1e6),
					MeasureIdleClosed.M(.MaxIdleClosed),
					MeasureLifetimeClosed.M(.MaxLifetimeClosed),
				)
			case <-:
				.Stop()
				return
			}
		}
	}()

	return func() {
		.Do(func() {
			close()
		})
	}