MockMetricsConfiguration

pydantic settings safir.metrics.MockMetricsConfiguration

Metrics configuration when metrics publishing is mocked.

Parameters:

Show JSON schema
{
   "title": "MockMetricsConfiguration",
   "description": "Metrics configuration when metrics publishing is mocked.",
   "type": "object",
   "properties": {
      "appName": {
         "description": "The name of the application that is emitting these metrics",
         "title": "Application name",
         "type": "string"
      },
      "events": {
         "$ref": "#/$defs/EventsConfiguration",
         "title": "Events configuration"
      },
      "enabled": {
         "description": "If set to false, no events will be sent and all calls to publish events will be no-ops.",
         "title": "Whether to send events",
         "type": "boolean"
      },
      "mock": {
         "description": "If set to true, all event publishers will be unittest.mock.MagicMock instances which will record all calls to their publish methods.",
         "title": "Mock publishers",
         "type": "boolean"
      }
   },
   "$defs": {
      "EventsConfiguration": {
         "additionalProperties": false,
         "description": "Configuration for emitting events.",
         "properties": {
            "topicPrefix": {
               "default": "lsst.square.metrics.events",
               "description": "You probably should use the default here. It could be useful in development scenarios to change this.",
               "title": "Metrics topic prefix",
               "type": "string"
            }
         },
         "title": "EventsConfiguration",
         "type": "object"
      }
   },
   "required": [
      "appName",
      "enabled",
      "mock"
   ]
}

Config:
  • extra: str = ignore

  • populate_by_name: bool = True

Fields:
field enabled: Annotated[bool, AfterValidator(lambda x: _require_bool(x, False))] [Required]

If set to false, no events will be sent and all calls to publish events will be no-ops.

Constraints:
  • func = <function <lambda> at 0x7fa1bb7e1e40>

field mock: Annotated[bool, AfterValidator(lambda x: _require_bool(x, True))] [Required]

If set to true, all event publishers will be unittest.mock.MagicMock instances which will record all calls to their publish methods.

Constraints:
  • func = <function <lambda> at 0x7fa1bb7e1bc0>

make_manager(logger=None)

Construct an EventManager.

Parameters:

logger (BoundLogger | None, default: None) – Logger to use for internal logging. If not given, the safir.metrics logger will be used.

Returns:

An event manager appropriate to the configuration.

Return type:

EventManager