Use common httpserver across fission (#2409)

* Defining httpserver package to capture httpserver shutdown and
introduces uniform running of http server across codebase.
* Add unit tests for httpserver

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
This commit is contained in:
Sanket Sudake
2022-04-14 11:35:58 +05:30
committed by GitHub
parent b638a6d047
commit 8442e21621
18 changed files with 139 additions and 93 deletions
-1
View File
@@ -22,7 +22,6 @@ import (
)
var (
metricsAddr = ":8080"
labels = []string{"trigger_name", "trigger_namespace"}
subscriptionCount = promauto.NewGaugeVec(
prometheus.GaugeOpts{
+2 -9
View File
@@ -19,10 +19,8 @@ package mqtrigger
import (
"context"
"errors"
"net/http"
"time"
"github.com/prometheus/client_golang/prometheus/promhttp"
"go.uber.org/zap"
k8sCache "k8s.io/client-go/tools/cache"
@@ -30,6 +28,7 @@ import (
"github.com/fission/fission/pkg/crd"
genInformer "github.com/fission/fission/pkg/generated/informers/externalversions"
"github.com/fission/fission/pkg/mqtrigger/messageQueue"
"github.com/fission/fission/pkg/utils/metrics"
)
const (
@@ -88,7 +87,7 @@ func (mqt *MessageQueueTriggerManager) Run(ctx context.Context) {
if ok := k8sCache.WaitForCacheSync(ctx.Done(), mqTriggerInformer.HasSynced); !ok {
mqt.logger.Fatal("failed to wait for caches to sync")
}
go mqt.serveMetrics()
go metrics.ServeMetrics(ctx, mqt.logger)
}
func (mqt *MessageQueueTriggerManager) service() {
@@ -128,12 +127,6 @@ func (mqt *MessageQueueTriggerManager) service() {
}
}
func (mqt *MessageQueueTriggerManager) serveMetrics() {
http.Handle("/metrics", promhttp.Handler())
err := http.ListenAndServe(metricsAddr, nil)
mqt.logger.Fatal("done listening on metrics endpoint", zap.Error(err))
}
func (mqt *MessageQueueTriggerManager) makeRequest(requestType requestType, triggerSub *triggerSubscription) response {
respChan := make(chan response)
mqt.reqChan <- request{requestType, triggerSub, respChan}