- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果平均性能超过 5 毫秒,我将尝试创建 cloudwatch 警报。我已配置 Amazon CloudWatch 警报来检查平均值。但是,如果只有一个数据点超过阈值,警报就会进入“警报”状态。
public static void main(String[] args) {
AWSExample aws = new AWSExample();
aws.testMethod();
}
这是测试方法。
public void testMethod() {
Instant start = Instant.now();
try {
try {
long myValue = (long) ((Math.random())*10000);
if(myValue>8000){
myValue = myValue - 3000;
}
Thread.sleep(myValue);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
} catch (Throwable t) {
t.printStackTrace();
} finally {
Instant end = Instant.now();
Duration nano = Duration.between(start, end);
long endTime = nano.toMillis();
createMetricData(endTime);
createAnAlarm();
}
}
创建指标数据的方法
public void createMetricData(Long metricValue) {
final AmazonCloudWatch cw = getAmazonCloudWatch();
Dimension dimension = new Dimension().withName("UNIQUE_METHOD").withValue("testMethod");
MetricDatum datum = new MetricDatum()
.withMetricName("Method Execution Performance")
.withUnit(StandardUnit.Milliseconds).withValue(metricValue.doubleValue())
.withDimensions(dimension)
.withTimestamp(new Date());
PutMetricDataRequest metricDataRequest = new PutMetricDataRequest()
.withNamespace("METHOD/TRAFFIC").withMetricData(datum);
PutMetricDataResult response = cw.putMetricData(metricDataRequest);
System.out.println(response);
System.out.printf("Successfully put data point %f", metricValue.doubleValue());
}
这是创建警报的方法。
private void createAnAlarm(){
final AmazonCloudWatch cw = getAmazonCloudWatch();
PutMetricAlarmRequest putMetricAlarmRequest = new PutMetricAlarmRequest()
.withPeriod(120)// The period, in seconds, over which the specified statistic is applied. Valid values are 10, 30, and any multiple of 60.
.withMetricName("Method Execution Performance")// The name for // the metric // associated // with the // alarm.
.withNamespace("METHOD/TRAFFIC")// The namespace for the metric // associated with the alarm. // https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-namespaces.html
.withAlarmName("aws-Method-Performance")// The name for the alarm. // This name must be unique // within the AWS account.
.withEvaluationPeriods(1)// The number of periods over which // data is compared to the specified // threshold. An alarm's total // current evaluation period can be // no longer than one day, so this
// number multiplied by period cannot be more than 86,400 seconds.
.withActionsEnabled(true)// Indicates whether actions should be executed during any changes to
// the alarm state.
.withStatistic(Statistic.Average)// The statistic for the metric associated with the alarm, other than percentile
.withThreshold(5.0)// The value against which the specified statistic is compared.
.withComparisonOperator(ComparisonOperator.GreaterThanThreshold)
.withAlarmDescription("Alarm when method execution time exceeds 5 milliseconds")
.withAlarmActions("arn:aws:sns:eu-west-1:***********")//The actions to
//execute when this alarm transitions to the ALARM state from
// any other state. Each action is specified as an Amazon
// Resource Name (ARN).
.withUnit(StandardUnit.Milliseconds)// The unit of measure for
// the statistic
.withDimensions(new Dimension().withName("UNIQUE_METHOD").withValue("testMethod"));
PutMetricAlarmResult result = cw.putMetricAlarm(putMetricAlarmRequest);
System.out.println(result);
}
我希望该方法的平均性能超过 5 毫秒。这里有什么问题以及如何解决它?
最佳答案
所以问题是,如果只有一个数据点突破阈值,为什么警报会进入“警报”状态?那是因为您在警报创建中有这一行:
.withEvaluationPeriods(1)
此外,您每次发布数据点时都会调用 createAnAlarm();
。无需这样做,您只需创建一次警报,它就会持续监控您的指标。
正如评论中所讨论的,触发此警报的实际原因是阈值设置为 5 毫秒,但该方法的预期执行时间在秒范围内。在这种情况下设置的正确阈值是 5 秒:
.withThreshold(5000.0)
关于java - CloudWatch Alarm 进入针对单个数据点的 ALARM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48514299/
如果平均性能超过 5 毫秒,我将尝试创建 cloudwatch 警报。我已配置 Amazon CloudWatch 警报来检查平均值。但是,如果只有一个数据点超过阈值,警报就会进入“警报”状态。 pu
我看过很多使用 AlarmManager 的教程,有些确实声明了 com.android.alarm.permission.SET_ALARM 而有些则没有。 我什么时候应该申报,什么时候不应该申报?
我已经编写了设置闹钟的代码。当时间结束时,我能够成功地从我的警报接收器类中举杯。 现在我想播放默认的手机铃声以及振动你的手机。 我怎么做 最佳答案 这是一个可以帮助您的示例 Notification
您好,我有一个应用程序可以设置警报,以便在触发警报时执行特定操作。 如果我重新安装应用程序,之前设置的警报会发生什么情况?还会活跃吗?还是会因为重新安装而被杀死。 如果应用程序是系统应用程序,行为会有
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this q
我有一个程序应该从命令行接收 3 个不同的参数。第三个参数是传递给警报函数的唯一参数。例如,如果我的程序名为 BuzzOff,它将是这样工作的: $ BuzzOff 10 99999 1 第三个参数是
我很好奇我是否能够使用 unistd c 函数alarm(int signal) 拥有我的 main.... 并为每个线程创建帽子以使用函数初始化 SIGALRM,在激活的情况下应该关闭我的线程。这可
static void AlarmHandler(int sig) ; int i=0; jmp_buf mark; int main(int argc, char * argv[]){ setjm
由于我似乎找不到解决我原来问题的方法,所以我尝试做一些变通方法。我只是想为我的 TCP 套接字的 connect() 调用设置超时。 我希望 connect() 被阻塞,但直到通常的 75 秒超时才阻
我正在构建一些 FastCGI 应用程序,这让我有点烦恼,因为 lighttpd 不会在它们空闲后将它们杀死,所以我试图让它们自行关闭。 我试过用 signal(SIGALRM, close); al
我需要制作一个简单的闹钟应用程序,它不是播放声音,而是将文件上传到 ftp(弄清楚了后者)。 事实证明,在执行线程时,计时器是无效的。 这是我到目前为止得到的: var ttime : tDa
我正在开发一个应用程序,每次用户锁定手机时,我都必须暂停或停止Android Alarm Manager的回调功能。我也不知道如何检测用户是否锁定了手机。 我尝试使用应用程序生命周期管理,但是当用户同
在下面的程序中,暂停被中断一次,但随后暂停再也没有返回。我已设置闹钟来中断暂停,所以我很困惑为什么暂停永远不会返回? #include #include #include #include #
所有,我的多线程程序不断被中断,“闹钟”正在写入控制台。 谷歌搜索后,很多人提到这与“ sleep ”有关,但我的线程中没有一个调用 sleep 。目前的流程是 将函数和参数传递给启动函数 Start
处理“设置闹钟”语音操作的 Intent 是什么?(对于“收听”,它是 android.media.action.MEDIA_PLAY_FROM_SEARCH) 最佳答案 你能不能使用android.
在我的代码中,警报管理器不工作。我的应用程序的其余部分运行良好。请查看我的代码。 Intent myIntent = new Intent(getApplicationContext(), An
手册页说 alarm() 安排 SIGALRM 信号在 _seconds_ 秒内传送到进程。 如果有人(例如用户或 ntpd) 在警报挂起时更改系统时钟?报警剩余时间如何计算? 最佳答案 首先,最负责
我试图获取算法消耗的内存,因此我创建了一组函数,它们会在 10 毫秒的周期内停止执行,以便让我使用 getrusage() 函数读取内存。这个想法是设置一个计时器,该计时器将向处理程序 medir_m
在APUE书的第10章Signals中,有一个示例代码: #include #include static void sig_alrm(int signo) { /* nothing to
如果子进程超过超时限制,我想终止它,超时限制在几秒钟内作为参数传递给程序。 在这个例子中,我将 3 作为我的超时限制。这里的程序是 /bin/cat 没有任何额外的参数,所以它应该挂起并且 SIGAL
我是一名优秀的程序员,十分优秀!