无论是命令行还是GUI,我都有兴趣测试它们.
假设我有一个文件urls.txt,其中包含我正在监控的URL列表.我的监控脚本偶尔会编辑该文件,例如,指示每个URL是否可访问.我还想手动编辑该文件,添加或更改URL列表.我怎样才能允许这样我手动编辑时不必考虑它?
以下是一些可能的答案.你会怎么做?
参与hackery就像让程序检查vim或emacs创建的锁定文件一样.由于这只适合我,这实际上是有效的.
如果人类编辑始终优先,那么只需要总是让人类破坏程序的更改(例如,忽略编辑器警告文件已在磁盘上更改).然后程序可以在下一个循环中重做它的更改.尽管如此,在用户编辑文件时更改文件并不是那么好.
永远不要让人触摸程序正在进行修改的文件.重新思考设计,只有一个文件只有人类编辑,另一个文件只有程序编辑.
为人类提供一个自定义工具来编辑执行相应文件锁定的文件.这可能与锁定文件然后启动编辑器或自定义接口(可能是简单的命令行界面)以插入/更改/删除文件中的条目一样粗糙.
使用数据库而不是平面文件,然后锁定全部自动处理.
(请注意,我编写了URL监控示例,以使其更具体,因为我实际想到的可能是太奇怪和分散注意力 - 这个问题严格来说是关于如何让人类和程序都修改相同的状态文件.)
很久以前就提出了这个问题,虽然它涵盖了SQL 2005和2008的可能解决方案,但它缺乏一个很好的SQL 2000解决方案,这仍然太常见了.
我需要一种方法来监视数据库表的某些字段以进行更改,并在发生这些更改时通知我的应用程序,以便我可以在本地网络上将它们作为广播消息进行爆炸,任何有客户端的人都可以监听它们并将其显示为警报(想想类似于股市数据达到特定阈值的东西).
我出于几个原因不想轮询数据库.1)我不希望向服务器添加额外的负载.2)我宁愿近乎实时地收到通知,而不是等待轮询频率到期.
现在,我可以将逻辑放在更新数据库的应用程序中,但数据可以从多个来源更新,包括网络,我不想处理通过DMZ边界发送通知的Web服务器等.我不喜欢我不想在20种不同的应用中维持这一点(更具压倒性的问题).
我已经在使用扩展存储过程和触发器的SQL 2000上看到了这一点,但xp似乎很难跨平台,并且在SQL 2005和2008上安装时它们会破坏.也许这只是示例中的错误代码我已经看来,我不确定,但我正在寻找适用于SQL 2000及更高版本的东西.
有任何想法吗?
编辑:
我曾考虑放弃对2000的支持,但这确实无法解决我的问题.我希望解决方案能够在未来几年继续发挥作用.许多微软技术的一个问题是它们不再支持它们.例如,Notification服务执行我需要它做的事情,但是他们决定在2008年弃用它,并且它将在下一个版本中不可用.所以我正在寻找一个很有可能坚持下去的解决方案.
有些时候(比如今天早上15分钟)我的cc1.4xlarge的性能很糟糕,并且我的实例上没有运行任何东西,这可以通过aws控制台监控图和我自己的调查来证明.
看起来它所在的物理盒有问题,或者Xen没有正确分配资源.
是否有任何工具不会监视CPU和磁盘上的"报告"统计信息,而是进行实际的性能测试,例如将一些浮点数除以1,000次,并确保它在一个典型的时间内完成,将内容写入/读取到磁盘?
我正在寻找一种方法来监视(和读取)由另一个程序创建或访问的文件.我在本文中找到了一种方法.但是,本文使用嵌入在C#程序中的C++解决方案.
是否有针对此监控作业的本机C#解决方案?
(对不起,如果以前曾经问过这个问题.我找不到类似的东西.)
我搜索过这个,我来了解WinPCap,但我仍然没有得到我需要的答案. WinPCap可以监视数据包,似乎不会给进程提供跟踪(我不太了解它).
我希望我的应用程序监听从某些进程(通常是我将在稍后定义的浏览器中的那些进程)发出的每个HTTP请求,并在必要时修改它们.
我的应用程序最初是用Delphi编写的,但是在C++中的任何帮助也都很酷.谁能帮我这个?
编辑1:当然我不希望你根据winPcap给我一个答案!
我有两个关于OpenTSDB下采样的问题.
第一个是我想知道是否有人知道OpenTSDB在计算下采样时是采用最后一个包含端点还是独占端点,还是计算两次结束数据点?
例如,如果我的时间间隔是下午12:30至下午1:30,并且我从下午12:29:44开始每5分钟获得一次DP,并且我的下采样间隔是每10分钟一次的总和,系统是否从12:30开始接收DP -12:39并将它们相加,12:40-12:49并将它们相加,或者从12:30-12:40,然后从12:40-12:50等取出DP.是的,我知道我的数据已关闭15秒,但我无法控制.
我试图手工计算,但我的数据并没有帮助我.我正在计算的数字并没有加起来,也没有与图表显示的数字相匹配.我无法访问将数字推入OpenTSDB的系统,因此无法设置虚拟数据进行检查.
第二个问题是下采样如何根据我的时间范围和下采样间隔在图表上绘制其点?我将下采样设置为总共10分钟的块.我将我的范围设定为下午12:30至下午1:30.该图显示了下采样图的第一个点,从下午12:35开始.这符合逻辑.
我将范围更改为12:24 pm-1:29pm,并预计第一个点将在12:30开始,但显示的第一个点是下午12:25.
希望有人能为我回答这些问题.与此同时,我将继续尝试在我的系统中查找一些数据,以帮助显示/证明下采样应该如何工作.
在此先感谢您的帮助.
我正在使用NewGaugeVec报告我的指标:
elapsed := prometheus.NewGaugeVec(prometheus.GaugeOpts{
Name: "gogrinder_elapsed_ms",
Help: "Current time elapsed of gogrinder teststep",
}, []string{"teststep", "user", "iteration", "timestamp"})
prometheus.MustRegister(elapsed)
Run Code Online (Sandbox Code Playgroud)
一切正常,但我注意到我的自定义导出器包含prometheus / go_collector.go中的所有指标:
# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0.00041795300000000004
go_gc_duration_seconds{quantile="0.25"} 0.00041795300000000004
go_gc_duration_seconds{quantile="0.5"} 0.00041795300000000004
...
Run Code Online (Sandbox Code Playgroud)
我怀疑这是一种默认行为,但是我没有在文档中找到如何禁用它的任何内容。关于如何配置自定义导出器以使这些默认指标消失的任何想法?
我有一个python程序,正在启动随机数的异步协程。在这段时间内,我的程序可以启动新程序,其中一些程序可以在终止工作后退出。
我想知道是否有可能每分钟报告一次活性协程的数量吗?
谢谢
我正在使用prometheus/grafana/express-prom-bundle监视我的nodejs应用程序,它暴露了一个名为http_request_duration_seconds_count的计数器指标.该指标有三个感兴趣的标签.status_code,路径和方法.
我想在我的grafana仪表板中显示一个表,列出仪表板日期范围内最常见的失败路径/方法(status_code ="500").
是可能的,如果是这样,我需要实现此列表的prometheus查询和grafana表设置.
预先感谢您的帮助.
monitoring ×10
prometheus ×2
.net ×1
amazon-ec2 ×1
biztalk ×1
c# ×1
c++ ×1
command-line ×1
delphi ×1
downsampling ×1
file-locking ×1
go ×1
grafana ×1
http ×1
locking ×1
opentsdb ×1
performance ×1
python ×1
sql-server ×1
unix ×1
utilities ×1
windows ×1