如何解决如何在Dynatrace中跟踪Java方法调用并获取警报?
我有一个与以下代码相似的代码。每次出现DBLock时,我都希望在Dynatrace中得到一个警报,以创建一个问题,以便可以在仪表板上看到它,并可能还会收到电子邮件通知。如果更新计数大于1,则会出现DB锁定。
private int removeDBLock(DataSource dataSource) {
int updateCount = 0;
final Timestamp lastAllowedDBLockTime = new Timestamp(System.currentTimeMillis() - (5 * 60 * 1000));
final String query = format(RELEASE_DB_CHANGELOCK,lastAllowedDBLockTime.toString());
try (Statement stmt = dataSource.getConnection().createStatement()) {
updateCount = stmt.executeUpdate(query);
if(updateCount>0){
log.error("Stale DB Lock found. Locks Removed Count is {} .",updateCount);
}
} catch (SQLException e) {
log.error("Error while trying to find and remove Db Change Lock. ",e);
}
return updateCount;
}
我尝试使用事件API触发此处提到的主机上的事件,并成功在仪表板上引发问题警报。
但这意味着在我的代码中注入一个api调用只是为了监视,任何调用都可能导致更多的外部依赖关系,因此有更多的失败机会。
我还尝试通过在自定义服务中添加包含此方法的类和方法本身来创建自定义服务检测。但是我不知道如何将其链接到在仪表板上造成问题的警报或事件。
在Dynatrace中是否有任何最佳实践或解决方案。任何线索都将有所帮助。
解决方法
我来看看Custom Services for Java,它将导致对该方法的调用进行更详细的监视。
也许您可以提取实际引发异常的方法以及处理异常的外部方法。然后应该可以对异常发出警报。
还有其他一些通过设置来配置服务的方法,即直接基于返回值引发错误。
另请参阅文档:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。