Skip to content

Release v2.1.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 12:37
3fc32ba

Prologue can now capture, collect and interpret a system made of several services. Existing single-service configurations keep working unchanged as the default service.

Added

  • prologue.services in cratis-prologue.json names the services of a multi-service system. Each named service has its own sqlServer and postgres databases, claims the reverse-proxy clusters and OpenTelemetry telemetryServiceNames whose traffic belongs to it (both default to the service name), and can be set from the environment, for example Prologue__Services__billing__Postgres__0__ConnectionString. See Configuration.
  • Captures and observations carry a service property (ServiceName in Cratis.Prologue.Contracts, ServiceOptions in Cratis.Prologue.Configuration). It is empty for the default service, and capture files and Receiver-stored captures written before this release read back as the default service.
  • JSON output writes a named service's captures to prologue-{service}-{kind}-{index}.jsonl; the default service keeps its existing file names.
  • The Interpreter turns each named service into its own module, analyzed against that service's own database schema.
  • --captured-service <name> (or PROLOGUE_CAPTURED_SERVICE) makes a batch Interpreter run model a single service.
  • OfService and Services extension methods on capture sets in Cratis.Prologue.Contracts.

Changed

  • Observations from different services are never correlated into the same capture, however close together they happen.
  • Telemetry claimed by a named service is captured even when openTelemetry.serviceNames would exclude it; that filter now applies to the default service only.
  • The Extractor refuses to start when two named services claim the same reverse-proxy cluster or telemetry service name.