KafkaMetricsConfiguration#

pydantic model safir.metrics.KafkaMetricsConfiguration#

Metrics configuration when enabled, including Kafka configuration.

Parameters:
  • _case_sensitive (bool | None, default: None)

  • _nested_model_default_partial_update (bool | None, default: None)

  • _env_prefix (str | None, default: None)

  • _env_prefix_target (Literal['variable', 'alias', 'all'] | None, default: None)

  • _env_file (Path | str | Sequence[Path | str] | None, default: PosixPath('.'))

  • _env_file_encoding (str | None, default: None)

  • _env_ignore_empty (bool | None, default: None)

  • _env_nested_delimiter (str | None, default: None)

  • _env_nested_max_split (int | None, default: None)

  • _env_parse_none_str (str | None, default: None)

  • _env_parse_enums (bool | None, default: None)

  • _cli_prog_name (str | None, default: None)

  • _cli_parse_args (bool | list[str] | tuple[str, ...] | None, default: None)

  • _cli_settings_source (CliSettingsSource[Any] | None, default: None)

  • _cli_parse_none_str (str | None, default: None)

  • _cli_hide_none_type (bool | None, default: None)

  • _cli_avoid_json (bool | None, default: None)

  • _cli_enforce_required (bool | None, default: None)

  • _cli_use_class_docs_for_groups (bool | None, default: None)

  • _cli_exit_on_error (bool | None, default: None)

  • _cli_prefix (str | None, default: None)

  • _cli_flag_prefix_char (str | None, default: None)

  • _cli_implicit_flags (bool | Literal['dual', 'toggle'] | None, default: None)

  • _cli_ignore_unknown_args (bool | None, default: None)

  • _cli_kebab_case (bool | Literal['all', 'no_enums'] | None, default: None)

  • _cli_shortcuts (Mapping[str, str | list[str]] | None, default: None)

  • _secrets_dir (Path | str | Sequence[Path | str] | None, default: None)

  • _build_sources (tuple[tuple[PydanticBaseSettingsSource, ...], dict[str, Any]] | None, default: None)

  • values (Any)

Config:
  • populate_by_name: bool = True

  • validate_by_alias: bool = True

  • validate_by_name: bool = True

  • alias_generator: function = <function to_camel at 0x7f0016a14510>

Fields:
field application: str [Required]#

The name of the application that is emitting these metrics

field backoff_interval: HumanTimedelta = datetime.timedelta(seconds=300) (alias 'backoffInterval')#

The amount of time to wait until further operations are attempted when the event manager is in an error state.

field enabled: <lambda>)] = True#

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

Constraints:
  • func = <function KafkaMetricsConfiguration.<lambda> at 0x7f000ea1ba00>

field events: EventsConfiguration [Optional]#
field kafka: KafkaConnectionSettings [Optional]#
field raise_on_error: bool = False (alias 'raiseOnError')#

True if we should raise an exception whenever there is an error with the metrics system dependencies, like Kafka or the Schema Manager. False if we should just log an error instead. This should be False for most production apps so that issues with the metrics infrastructure don’t bring down the app.

field schema_manager: SchemaManagerSettings [Optional] (alias 'schemaManager')#
classmethod settings_customise_sources(settings_cls, init_settings, env_settings, dotenv_settings, file_secret_settings)#

Define the sources and their order for loading the settings values.

Args:

settings_cls: The Settings class. init_settings: The InitSettingsSource instance. env_settings: The EnvSettingsSource instance. dotenv_settings: The DotEnvSettingsSource instance. file_secret_settings: The SecretsSettingsSource instance.

Returns:

A tuple containing the sources and their order for loading the settings values.

Parameters:
  • settings_cls (type[BaseSettings])

  • init_settings (PydanticBaseSettingsSource)

  • env_settings (PydanticBaseSettingsSource)

  • dotenv_settings (PydanticBaseSettingsSource)

  • file_secret_settings (PydanticBaseSettingsSource)

Return type:

tuple[PydanticBaseSettingsSource, ...]

make_manager(logger=None, *, kafka_broker=None, request_timeout_ms=1000, extra_broker_settings=None, extra_admin_client_settings=None)#

Make a KafkaEventManager.

The request timeout is set low by default so we don’t block the instrumented app for too long if kafka is unavailable.

Parameters:
  • logger (BoundLogger | None, default: None)

  • kafka_broker (KafkaBroker | None, default: None)

  • request_timeout_ms (int, default: 1000)

  • extra_broker_settings (dict[str, Any] | None, default: None)

  • extra_admin_client_settings (dict[str, Any] | None, default: None)

Return type:

KafkaEventManager