def report_metric()

in robot_ws/src/cloudwatch_robot/nodes/monitor_obstacle_distance.py [0:0]


    def report_metric(self, msg):
        filtered_scan = self.filter_scan(msg)
        if not filtered_scan:
            rospy.loginfo(
                'No obstacles with scan range (%s,%s)', msg.range_min, msg.range_max
            )
            return

        min_distance = min(filtered_scan)
        rospy.loginfo('Nearest obstacle: %s', min_distance)

        header = Header()
        header.stamp = rospy.Time.from_sec(time.time())

        dimensions = [
            MetricDimension(name='robot_id', value='Turtlebot3'),
            MetricDimension(name='category', value='RobotOperations'),
        ]
        metric = MetricData(
            header=header,
            metric_name='nearest_obstacle_distance',
            unit=MetricData.UNIT_NONE,
            value=min_distance,
            time_stamp=rospy.Time.from_sec(time.time()),
            dimensions=dimensions,
        )

        self.metrics_pub.publish(MetricList([metric]))