def METHOD_NAME(self, run_context, run_values):
    if self._step % self._every_n_steps != 0:
        return
    summary_msg = _parse_summary_proto_str(run_values.results["summary"])
    for value in summary_msg.value:  # pylint: disable=no-member
        # TODO: support other value types
        if value.WhichOneof("value") == "simple_value":
            try:
                self.run.log_observation(value.tag, value.simple_value)
            except:
                pass  # don't halt execution