Added metrics for fission mqtrigger and optimizations in trigger subscriptions (#2399)

- Use mqtrigger watch instead of polling mqtrigger every 5 seconds
- Added metrics to monitor no of subscriptions, and no of messages per subscription
- Add standard go metrics exported by prometheus
- Enable prometheus discovery for mqtrigger pod
- Optimized mqtrigger manager cache
- Add unit tests for mqtrigger cache

Co-authored-by: Sanket Sudake <sanketsudake@gmail.com>
This commit is contained in:
Ankit Chawla
2022-04-05 21:51:05 +05:30
committed by GitHub
co-authored by Sanket Sudake
parent 4e01aa1322
commit 24dee03e18
7 changed files with 309 additions and 119 deletions
+4 -4
View File
@@ -17,6 +17,7 @@ limitations under the License.
package mqtrigger
import (
"context"
"fmt"
"os"
"path"
@@ -35,7 +36,7 @@ import (
_ "github.com/fission/fission/pkg/mqtrigger/messageQueue/nats"
)
func Start(logger *zap.Logger, routerUrl string) error {
func Start(ctx context.Context, logger *zap.Logger, routerUrl string) error {
fissionClient, _, _, _, err := crd.MakeFissionClient()
if err != nil {
@@ -74,9 +75,8 @@ func Start(logger *zap.Logger, routerUrl string) error {
if err != nil {
logger.Fatal("failed to connect to remote message queue server", zap.Error(err))
}
mqtrigger.MakeMessageQueueTriggerManager(logger, fissionClient, mqType, mq).Run()
mqtMgr := mqtrigger.MakeMessageQueueTriggerManager(logger, fissionClient, mqType, mq)
mqtMgr.Run(ctx)
return nil
}