Skip to content

Conversation

bartelink
Copy link
Collaborator

The need to specify a group to Propulsion.Prometheus.LogSink for Propulsion.Streams worked, but causes two issues:

  1. Wiring code needs to establish the consumer group earlier than it would ordinarily need to
  2. Risk of metrics from >1 Streams Projectors would be hard to detect before things get ugly in your metrics store
  3. Correctly Handling metrics where >1 Streams Projector is present in a single process would require manual management of multiple sinks in client wiring

This PR introduces an effectively-mandatory "group" Property (i.e. add it to loggers supplied to Propulsion.Streams.Projector via Serilog's log.ForContext) for metrics that are to be reported to Prometheus.

This is an intentional breaking change for users of [Prometheus and] Propulsion.LogSink, but not for other usage - the Log Property requirement is optional if not using the Prometheus integration.

@bartelink
Copy link
Collaborator Author

The key impact of this will be to enable further simplifications to Program.fs wiring in jet/dotnet-templates#99

  • apps will no longer need to pass a group name to equinoxAndPropulsionConsumerMetrics etc

@bartelink bartelink merged commit a1aaf90 into master Feb 15, 2022
@bartelink bartelink deleted the streams-group-prop branch February 15, 2022 16:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant