metric_manager.h
Go to the documentation of this file.
1 /*
2  * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License").
5  * You may not use this file except in compliance with the License.
6  * A copy of the License is located at
7  *
8  * http://aws.amazon.com/apache2.0
9  *
10  * or in the "license" file accompanying this file. This file is distributed
11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12  * express or implied. See the License for the specific language governing
13  * permissions and limitations under the License.
14  */
15 
16 #pragma once
17 
18 #include <ros/ros.h>
19 #include <ros_monitoring_msgs/MetricData.h>
20 #include <ros_monitoring_msgs/MetricList.h>
21 
22 #include <vector>
23 
24 
26 
31 {
32 public:
36  virtual void AddDimension(const std::string & name, const std::string & value) = 0;
37 
41  virtual MetricData CreateMetric() const = 0;
42 
48  virtual void AddMetric(MetricData md) = 0;
49 
53  virtual void Publish() = 0;
54 
57 };
58 
63 {
64 public:
65  MetricManager(ros::Publisher & p) : publisher_(p) {}
66 
67  virtual void AddDimension(const std::string & name, const std::string & value) override final;
68 
69  virtual MetricData CreateMetric() const override final;
70 
71  virtual void AddMetric(MetricData md) override final;
72 
73  virtual void Publish() override final;
74 
75 private:
77  MetricList mlist_;
78  ros_monitoring_msgs::MetricData dimensions_;
79 };
80 
81 } // namespace ros_monitoring_msgs
virtual void AddDimension(const std::string &name, const std::string &value)=0
add global dimension (applies to all metrics).
virtual MetricData CreateMetric() const =0
create a metric.
ros_monitoring_msgs::MetricData dimensions_
virtual void Publish()=0
publishes all metrics and then discards them.
Create, aggregate and publish metrics to ros topic.
virtual void AddMetric(MetricData md)=0
add a metric to list of metrics to be published.


health_metric_collector
Author(s): AWS RoboMaker
autogenerated on Fri Mar 5 2021 03:32:41