func (m *Server) initRuntime() (err error) {
	m.r, err = runtime.New(m.lines, &m.wg, m.programPath, m.store, m.rOpts...)
	return
}
initRuntime constructs a new runtime and performs the initial load of program files in the program directory.
package mtail
import (
	"context"
	"errors"
	"expvar"
	"net"
	"net/http"
	"net/http/pprof"
	"sync"
	"time"
	"github.com/golang/glog"
	"github.com/google/mtail/internal/exporter"
	"github.com/google/mtail/internal/logline"
	"github.com/google/mtail/internal/metrics"
	"github.com/google/mtail/internal/runtime"
	"github.com/google/mtail/internal/tailer"
	"github.com/prometheus/client_golang/prometheus"
	"github.com/prometheus/client_golang/prometheus/collectors"
	"github.com/prometheus/client_golang/prometheus/promhttp"
	"github.com/prometheus/common/version"
	"go.opencensus.io/zpages"
)
type Server struct {
	ctx   context.Context
	store *metrics.Store  
	wg    sync.WaitGroup  
	tOpts []tailer.Option     
	t     *tailer.Tailer      
	rOpts []runtime.Option    
	r     *runtime.Runtime    
	eOpts []exporter.Option   
	e     *exporter.Exporter  
	lines chan *logline.LogLine  
	reg *prometheus.Registry
	listener net.Listener  
	buildInfo BuildInfo  
	programPath string  
	oneShot     bool    
	compileOnly bool    
}