2

我正在寻找一个通用的图表解决方案,最好不是提供以下功能的托管解决方案:绘制一组值,其中值是:
1)服务标识符(例如 CPU 使用率)
2)该服务中的客户端标识符(例如服务器IP)
3) 一个值
4) 具有毫秒/秒分辨率的时间戳。

可选:我还想进一步扩展客户端标识符的概念,进一步采用上面的示例,我想分别存储每个核心的统计信息,因此,另一个标识符将是 Core 1/Core 2..

现在,为了确保我清楚地说明了我的问题,我不想要一个收集这些统计信息的实用程序。我想要存储它们的东西,但是,这也不是强制性的,我总是可以将它们存储在 MySQL 等中。

我正在寻找的是以多种方式(时间线、运动和通常的方式 [pie, bar..])获取诸如这些值的东西,并很好地绘制它们。本质上,这是一个很好的可视化包,可以让我利用所有这些数据。我将从多个服务、多个应用程序中收集数据,并且数据点的分辨率会有所不同。有些数据将包含多层嵌套,有些则没有。(例如,CPU 会下降到服务器 IP,CPU#,而内存只会是服务器 IP,但会包含不同的标识符,即空闲/使用/缓存作为“辅助”标识符。平均请求延迟之类的东西可能不会在 ping 的情况下,完全有一个辅助标识符。我想要表达的是,拥有多层标识符会很棒。最后添加一个多标识符最好的例子:在 ip/cpu# 之上添加一个额外的标识符,即进程名称。我认为这样做的好处是显而易见的。

对于某些应用程序,我们可能会在非常狭窄的范围内收集数据,专注于各个方面,在其他情况下,它可能是一个更一般的统计数据。当出现问题时,两者都会派上用场,第一个快速说“出了问题”,第二个说“为什么?”。

此外,如果图表应用程序抛出“坏”值,那将是一件好事,也就是说,如果我们的监控程序出于某种原因开始抛出 300% CPU 在单个内核上使用 10 秒的值,它会是如果图表本身不能长期反映它,那就太好了。某种平滑,也许?这显然可以在数据层完成,所以它根本不是必需的。

最后,比较两个时间点,或者比较同一服务的两个不同的客户端标识符等,而不需要太多的努力会很棒。

我不偏爱任何特定语言,尽管我更喜欢 PHP、Python、C/C++、C# 中的某些东西(以下之一),因为这些是我熟悉的语言。它不必是开源的,也不必是库,我愿意使用最适合我的目的的任何东西。

与其说是要求,不如说是 PS:我想要一些漂亮的图表,这些图表很容易让非技术人员理解并采取行动(并且喜欢看!)。

我愿意澄清,并提前感谢您的时间!

4

1 回答 1

1

我很确定protovis满足您的所有要求。但它有一点学习曲线。您应该通过示例来学习,并且有很多工作要做。默认情况下,它会制作一些非常漂亮的图表。每个值都可以是一个函数,所以你可以做一些事情,比如摆脱你的“坏”值。

于 2010-12-18T00:14:47.880 回答