Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions cmd/orb-driver/startcmd/start.go
Original file line number Diff line number Diff line change
Expand Up @@ -257,10 +257,6 @@ func startDriver(parameters *parameters) error {
parameters.tlsKey,
20*time.Second, //nolint: gomnd
20*time.Second, //nolint: gomnd
nil,
nil,
nil,
nil,
handlers...,
)

Expand Down
71 changes: 34 additions & 37 deletions cmd/orb-server/startcmd/start.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ import (
"syscall"
"time"

noopMetricsProvider "github.com/trustbloc/orb/pkg/observability/metrics/noop"

"go.uber.org/zap"

"github.com/ThreeDotsLabs/watermill/message"
Expand Down Expand Up @@ -123,12 +121,14 @@ import (
"github.com/trustbloc/orb/pkg/document/updatehandler/decorator"
"github.com/trustbloc/orb/pkg/document/util"
"github.com/trustbloc/orb/pkg/document/webresolver"
"github.com/trustbloc/orb/pkg/healthcheck"
"github.com/trustbloc/orb/pkg/httpserver"
"github.com/trustbloc/orb/pkg/httpserver/auth"
"github.com/trustbloc/orb/pkg/httpserver/auth/signature"
"github.com/trustbloc/orb/pkg/nodeinfo"
metricsProvider "github.com/trustbloc/orb/pkg/observability/metrics"
promMetricsProvider "github.com/trustbloc/orb/pkg/observability/metrics/prometheus"
noopmetrics "github.com/trustbloc/orb/pkg/observability/metrics/noop"
"github.com/trustbloc/orb/pkg/observability/metrics/prometheus"
"github.com/trustbloc/orb/pkg/observer"
"github.com/trustbloc/orb/pkg/protocolversion/factoryregistry"
"github.com/trustbloc/orb/pkg/pubsub/amqp"
Expand Down Expand Up @@ -480,11 +480,13 @@ func startOrbServices(parameters *orbParameters) error {
setLogLevels(logger, parameters.logLevel)
}

metrics, err := NewMetrics(parameters)
mp, err := newMetricsProvider(parameters)
if err != nil {
return err
}

metrics := mp.Metrics()

storeProviders, err := createStoreProviders(parameters, metrics)
if err != nil {
return err
Expand Down Expand Up @@ -1328,26 +1330,11 @@ func startOrbServices(parameters *orbParameters) error {
parameters.tlsParams.serveKeyPath,
parameters.serverIdleTimeout,
parameters.serverReadHeaderTimeout,
pubSub,
logEndpoint,
storeProviders.provider,
km,
handlers...,
append(handlers, healthcheck.NewHandler(pubSub, logEndpoint, storeProviders.provider, km))...,
)

metricsProvider, err := NewMetricsProvider(parameters, pubSub, witness, storeProviders, km)
if err != nil {
return err
}

if metricsProvider != nil {
err = metricsProvider.Create()
if err != nil {
return err
}
}

err = run(httpServer, activityPubService, opQueue, observer, batchWriter, taskMgr, nodeInfoService)
err = run(httpServer, activityPubService, opQueue, observer, batchWriter, taskMgr,
nodeInfoService, newMPLifecycleWrapper(mp))
if err != nil {
return err
}
Expand Down Expand Up @@ -1822,27 +1809,17 @@ func asURIs(strs ...string) ([]*url.URL, error) {
return uris, nil
}

func NewMetrics(parameters *orbParameters) (metricsProvider.Metrics, error) {
switch parameters.metricsProviderName {
case "prometheus":
return promMetricsProvider.GetMetrics(), nil
default:
return noopMetricsProvider.GetMetrics(), nil
}
}

func NewMetricsProvider(parameters *orbParameters, pubSub pubSub, witness *vct.Client, storeProviders *storageProviders,
km keyManager) (metricsProvider.Provider, error) {
func newMetricsProvider(parameters *orbParameters) (metricsProvider.Provider, error) {
switch parameters.metricsProviderName {
case "prometheus":
metricsHttpServer := httpserver.New(
parameters.prometheusMetricsProviderParams.url, "", "", parameters.serverIdleTimeout,
parameters.serverReadHeaderTimeout, pubSub, witness, storeProviders.provider, km,
promMetricsProvider.NewHandler(),
parameters.serverReadHeaderTimeout, prometheus.NewHandler(),
)
return promMetricsProvider.NewPrometheusProvider(metricsHttpServer), nil

return prometheus.NewProvider(metricsHttpServer), nil
default:
return nil, nil
return noopmetrics.NewProvider(), nil
}
}

Expand All @@ -1861,3 +1838,23 @@ func getRegion(keyURI string) (string, error) {

return r[2], nil
}

type mpLifecycleWrapper struct {
mp metricsProvider.Provider
}

func newMPLifecycleWrapper(mp metricsProvider.Provider) *mpLifecycleWrapper {
return &mpLifecycleWrapper{mp: mp}
}

func (w *mpLifecycleWrapper) Start() {
if err := w.mp.Create(); err != nil {
panic(fmt.Errorf("create metrics provider: %w", err))
}
}

func (w *mpLifecycleWrapper) Stop() {
if err := w.mp.Destroy(); err != nil {
logger.Warn("Failed to stop metrics provider", log.WithError(err))
}
}
21 changes: 1 addition & 20 deletions pkg/activitypub/service/inbox/inbox_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -741,30 +741,11 @@ func newActivityID(serviceName string) *url.URL {
func startHTTPServer(t *testing.T, listenAddress string, handlers ...common.HTTPHandler) func() {
t.Helper()

httpServer := httpserver.New(listenAddress, "", "", 1*time.Second, time.Second,
&mockService{}, &mockService{}, &mockService{}, &mockService{}, handlers...)
httpServer := httpserver.New(listenAddress, "", "", 1*time.Second, time.Second, handlers...)

require.NoError(t, httpServer.Start())

return func() {
require.NoError(t, httpServer.Stop(context.Background()))
}
}

type mockService struct {
isConnectedErr error
healthCheckErr error
pingErr error
}

func (m *mockService) IsConnected() bool {
return m.isConnectedErr == nil
}

func (m *mockService) HealthCheck() error {
return m.healthCheckErr
}

func (m *mockService) Ping() error {
return m.pingErr
}
19 changes: 0 additions & 19 deletions pkg/activitypub/service/outbox/outbox_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,6 @@ func TestOutbox_Post(t *testing.T) {
}

httpServer := httpserver.New(":8003", "", "", time.Second, time.Second,
&mockService{}, &mockService{}, &mockService{}, &mockService{},
newTestHandler("/services/service2", http.MethodGet, mockServiceRequestHandler(t, service2URL)),
newTestHandler("/services/service3", http.MethodGet, mockServiceRequestHandler(t, service3URL)),
newTestHandler("/services/service4", http.MethodGet, mockServiceRequestHandler(t, service4URL)),
Expand Down Expand Up @@ -940,24 +939,6 @@ func handleMockCollectionPage(t *testing.T, collID *url.URL, uris []*url.URL,
require.NoError(t, err)
}

type mockService struct {
isConnectedErr error
healthCheckErr error
pingErr error
}

func (m *mockService) IsConnected() bool {
return m.isConnectedErr == nil
}

func (m *mockService) HealthCheck() error {
return m.healthCheckErr
}

func (m *mockService) Ping() error {
return m.pingErr
}

type wellKnownResolver struct {
Err error
URI string
Expand Down
21 changes: 1 addition & 20 deletions pkg/activitypub/service/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1014,8 +1014,7 @@ func containsIRI(iris []*url.URL, iri fmt.Stringer) bool {
func startHTTPServer(t *testing.T, listenAddress string, handlers ...common.HTTPHandler) func() {
t.Helper()

httpServer := httpserver.New(listenAddress, "", "", time.Second, time.Second,
&mockService{}, &mockService{}, &mockService{}, &mockService{}, handlers...)
httpServer := httpserver.New(listenAddress, "", "", time.Second, time.Second, handlers...)

require.NoError(t, httpServer.Start())

Expand Down Expand Up @@ -1048,21 +1047,3 @@ const proof = `{
"jws": "eyJ..."
}
}`

type mockService struct {
isConnectedErr error
healthCheckErr error
pingErr error
}

func (m *mockService) IsConnected() bool {
return m.isConnectedErr == nil
}

func (m *mockService) HealthCheck() error {
return m.healthCheckErr
}

func (m *mockService) Ping() error {
return m.pingErr
}
Loading