aws-robotics / cloudwatchmetrics-ros1 Goto Github PK
View Code? Open in Web Editor NEWROS packages for facilitating the use of AWS cloud services.
License: Apache License 2.0
ROS packages for facilitating the use of AWS cloud services.
License: Apache License 2.0
CloudWatch metrics can't accept metrics with magnitude < ~4.257959840008151e-109. Publishing metrics of this magnitude will cause the following error message:
ERROR [/cloudwatch_metrics_collector]: [AWSClient] HTTP response code: 400
Exception name: InvalidParameterValue
Error message: The value 0 for parameter MetricData.member.8.Value is invalid.
Steps to reproduce:
roslaunch cloudwatch_metrics_collector sample_application.launch
rostopic pub -r 0.5 /metrics ros_monitoring_msgs/MetricList '{metrics: [{metric_name: 'too_small', value: 2.1289799200040754E-109, time_stamp:{secs: <time>, nsecs: 0}}]}'
Proposed Solution:
Add an option to round small values to 0 before publishing to Cloudwatch
Hello, I want to monitor custom metrics of my robot on cloudwatch, when I launch using sample_application.launch it works. But when I use a launch file from a different package and include the cloudwatch_metrics_collector.launch file and provide arg for config file (same as in sample_application.launch), it doesn't work. Please help me with this issue.
@jpeddicord @dabonnie @mm318 @timrobotson
I am seeing weird errors in the logs about the Cloudwatch regarding timestamps of the metrics. The only metrics currently running are from https://github.com/aws-robotics/health-metrics-collector-ros1.
The error is:
[ WARN] [1593088848.837626459, 903.889000000]: [AWSErrorMarshaller] Encountered AWSError 'InvalidParameterValue': The
parameter MetricData.member.1.Timestamp must specify a time within the past two weeks.
The parameter MetricData.member.2.Timestamp must specify a time within the past two weeks.
The parameter MetricData.member.3.Timestamp must specify a time within the past two weeks.
The parameter MetricData.member.4.Timestamp must specify a time within the past two weeks.
The parameter MetricData.member.5.Timestamp must specify a time within the past two weeks.
The parameter MetricData.member.6.Timestamp must specify a time within the past two weeks.
[ERROR] [1593088848.837759364, 903.889000000]: [AWSClient] HTTP response code: 400
Exception name: InvalidParameterValue
Error message: The parameter MetricData.member.1.Timestamp must specify a time within the past two weeks.
The parameter MetricData.member.2.Timestamp must specify a time within the past two weeks.
The parameter MetricData.member.3.Timestamp must specify a time within the past two weeks.
The parameter MetricData.member.4.Timestamp must specify a time within the past two weeks.
The parameter MetricData.member.5.Timestamp must specify a time within the past two weeks.
The parameter MetricData.member.6.Timestamp must specify a time within the past two weeks.
5 response headers:
connection : close
content-length : 804
content-type : text/xml
date : Thu, 25 Jun 2020 12:40:48 GMT
x-amzn-requestid : 71391052-b267-4f7e-ac62-138315b23fa4
[ WARN] [1593088848.837841133, 903.889000000]: [AWSClient] If the signature check failed. This could be because of a $ime skew. Attempting to adjust the signer.
Here is a single metric from the metrics
topic. The time_stamp
is live and current and not skewed at all.
-
header:
seq: 0
stamp:
secs: 1593088888
nsecs: 394534588
frame_id: ''
metric_name: "cpu_usage_core_2"
unit: "percent"
value: 90.9923629761
time_stamp:
secs: 1593088888
nsecs: 394534588
dimensions:
-
name: "robot_id"
value: "4a54bac8-efb7-47a4-9ee5-493d928ae446"
-
name: "category"
value: "RobotHealth"
Another odd behavior is we do get metrics in CW
Running version: Version: 2.2.1-1xenial-20200330-153748+0000
When processing MetricList
messages we convert the nanoseconds time on the metrics time_stamp
to milliseconds incorrectly. Instead of dividing by 1000000
we divide by 1000
. As a result metrics are sent to CloudWatch metrics with a time stamp displaced to the future.
We will send a patch to fix this bug to have this fixed in the next two days
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.