Revise observability features by introducing new health and liveness endpoints (/livez and /readyz), updating Prometheus metrics to track NATS consumer pending messages, and enhancing telemetry integration for better monitoring. Update documentation to reflect these changes and ensure consistency in metric naming conventions.

This commit is contained in:
windyboy
2025-11-16 13:14:46 +08:00
parent 3d8572a69f
commit e27328378a
17 changed files with 582 additions and 154 deletions
+4
View File
@@ -11,6 +11,7 @@ import (
"caatsm/internal/infra/monitoring"
"caatsm/internal/infra/nats"
"caatsm/internal/infra/postgres"
"caatsm/internal/observability/telemetry"
"github.com/google/wire"
)
@@ -49,6 +50,9 @@ var runtimeSet = wire.NewSet(
// Parser
parser.ProvideParser,
// Telemetry
telemetry.ProvideRecorder,
// App
app.NewMessageProcessor,
+8 -5
View File
@@ -14,6 +14,7 @@ import (
"caatsm/internal/infra/monitoring"
"caatsm/internal/infra/nats"
"caatsm/internal/infra/postgres"
"caatsm/internal/observability/telemetry"
"github.com/google/wire"
)
@@ -49,8 +50,9 @@ func buildAppComponents() (*appComponents, error) {
if err != nil {
return nil, err
}
messageProcessor := app.NewMessageProcessor(parserParser, repository, publisher, logger)
consumer, err := nats.ProvideConsumer(conn, jetStreamContext, messageProcessor, configConfig, logger)
recorder := telemetry.ProvideRecorder(configConfig)
messageProcessor := app.NewMessageProcessor(parserParser, repository, publisher, recorder, logger)
consumer, err := nats.ProvideConsumer(conn, jetStreamContext, messageProcessor, configConfig, recorder, logger)
if err != nil {
return nil, err
}
@@ -92,8 +94,9 @@ func buildAppComponentsWithConfig(cfg *config.Config) (*appComponents, error) {
if err != nil {
return nil, err
}
messageProcessor := app.NewMessageProcessor(parserParser, repository, publisher, logger)
consumer, err := nats.ProvideConsumer(conn, jetStreamContext, messageProcessor, cfg, logger)
recorder := telemetry.ProvideRecorder(cfg)
messageProcessor := app.NewMessageProcessor(parserParser, repository, publisher, recorder, logger)
consumer, err := nats.ProvideConsumer(conn, jetStreamContext, messageProcessor, cfg, recorder, logger)
if err != nil {
return nil, err
}
@@ -129,7 +132,7 @@ func InitializeAppWithConfig(cfg *config.Config) (*app.MessageProcessor, *nats.C
return comps.Processor, comps.Consumer, comps.Monitoring, nil
}
var runtimeSet = wire.NewSet(log.ProvideLogger, postgres.ProvideDB, postgres.ProvideRepository, nats.ProvideNATSConn, nats.ProvideJetStream, nats.ProvidePublisher, parser.ProvideParser, app.NewMessageProcessor, nats.ProvideConsumer, monitoring.ProvideServer)
var runtimeSet = wire.NewSet(log.ProvideLogger, postgres.ProvideDB, postgres.ProvideRepository, nats.ProvideNATSConn, nats.ProvideJetStream, nats.ProvidePublisher, parser.ProvideParser, telemetry.ProvideRecorder, app.NewMessageProcessor, nats.ProvideConsumer, monitoring.ProvideServer)
type appComponents struct {
Processor *app.MessageProcessor