当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

Netflix Spectator

多维时间序列记录库
授权协议 Apache
开发语言 Java
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 不详
投 递 者 丁晋
操作系统 跨平台
开源组织 Netflix
适用人群 未知
 软件概览

Spectator 是记录多维时间序列的简单插装代码库,要求 Java 7 及以上版本。

代码示例:

// The Spectator class provides a static lookup for the default registry
Server s = new Server(Spectator.registry());
public class Server {
  private final ExtendedRegistry registry;
  private final Id requestCountId;
  private final Timer requestLatency;
  private final DistributionSummary responseSizes;
  // We can pass in the registry to make unit testing easier. Outside of tests it should typically
  // be bound to Spectator.registry() to make sure data goes to the right place.
  public Server(ExtendedRegistry registry) {
    this.registry = registry;
    // Create a base id for the request count. The id will get refined with additional dimensions
    // when we receive a request.
    requestCountId = registry.createId("server.requestCount");
    // Create a timer for tracking the latency. The reference can be held onto to avoid
    // additional lookup cost in critical paths.
    requestLatency = registry.timer("server.requestLatency");
    // Create a distribution summary meter for tracking the response sizes.
    responseSizes = registry.distributionSummary("server.responseSizes");
    // Gauge type that can be sampled. In this case it will invoke the specified method via
    // reflection to get the value. The registry will keep a weak reference to the object passed
    // in so that registration will not prevent garbage collection of the server object.
    registry.methodValue("server.numConnections", this, "getNumConnections");
  }
  public Response handle(Request req) {
    final long s = System.nanoTime();
    try {
      Response res = doSomething(req);
      // Update the counter id with dimensions based on the request. The counter will then
      // be looked up in the registry which should be fairly cheap, such as lookup of id object
      // in a ConcurrentHashMap. However, it is more expensive than having a local variable set
      // to the counter.
      final Id cntId = requestCountId
        .withTag("country", req.country())
        .withTag("status", res.status());
      registry.counter(cntId).increment();
      responseSizes.record(res.body().size());
      return res;
    } catch (Exception e) {
      final Id cntId = requestCountId
        .withTag("country", req.country())
        .withTag("status", "exception")
        .withTag("error", e.getClass().getSimpleName());
      registry.counter(cntId).increment();
      throw e;
    } finally {
      // Update the latency timer. This should typically be done in a finally block.
      requestLatency.record(System.nanoTime() - s, TimeUnit.NANOSECONDS);
    }
  }
  public int getNumConnections() {
    // however we determine the current number of connections on the server
  }
}
  • 2009年Netflix举办了一场Netflix大奖赛。他们公开一批匿名数据,允许参赛团队使用以得出更好的算法。他们从获胜的团队中得到了现有算法10.06%的提升。Netflix本想再举行一场Netflix大奖赛,但最终由于FTC(联邦贸易委员会)对隐私问题的考虑而取消。 Netflix的推荐系统包含许多算法。用于生产系统的两个核心算法是有限玻尔兹曼机(RBM,Restricted Boltzma

 相关资料
  • 我正在阅读Keras中关于使用LSTM进行多元时间序列预测的教程https://machinelearningmastery.com/multivariate-time-series-forecasting-lstms-keras/#comment-442845 我已经看完了整个教程,遇到了一个如下的问题- 在本教程中,在步骤“t-1”中,列车和测试拆分有8个功能,即“污染”、“露水”、“温度”、

  • 本地的聊天记录会永久保存,云端的聊天记录仅保存一年

  • 问题内容: 我有一个包含datetime列和一些其他列的表。datetime列表示发生的事件。它可以包含一个时间(事件在那个时间发生)或NULL(事件没有发生) 我现在想计算在特定时间间隔(15分钟)内发生的记录数,但是不知道该怎么做。 例子: 现在,我想创建一个查询,该查询将创建类似于以下内容的结果集: 这在SQL中可能吗,或者有人可以建议我可以使用哪些其他工具?(例如,将数据导出到电子表格程序

  • 目录表 时间表 术语表 时间表 本文档在2005年1月13日4点02分生成。 修订记录 1.20版 2005年1月13日 使用FC3上的Quanta+的完全重写。做了许多修正和更新。添加了许多新的例子。重写了我的DocBook设置。 1.15版 2004年3月28日 少量修订。 1.12版 2004年3月16日 添加修正了一些内容。 1.10版 2004年3月9日 感谢我的热情读者的帮助,我对更多

  • 我目前正在一个系统中工作,那里有多个laravel项目,利用空间日志进行activity日志记录。我想知道在一个地方(数据库)获取所有这些日志的最佳方法。我还想知道是否可以将空间日志存储在多个数据库中?

  • 我可以从pandas文档中看出,您可以: 对于时间序列,您为什么不能: 我得到一个语法错误。不能在时间序列上执行多个切片范围吗?有解决办法吗?

  • 问题内容: 是否可以使Java中的2D数组可序列化? 如果没有,我正在寻找将3x3 2D数组“翻译”为向量的向量。 我一直在玩矢量,但我仍然不确定如何表示。谁能帮我? 谢谢! 问题答案: Java中的数组是可序列化的,因此数组数组也可以序列化。 但是,它们所包含的对象可能不是,因此请检查数组的内容是否可序列化-如果不是,则使其可序列化。 这是一个使用整数数组的示例。 输出:

  • 我想看看是否可以用Java14中的新记录类替换现有的POJO。但不能这样做。获取以下错误: com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法构造的实例(不存在创建器,如默认构造):无法从对象值反序列化(没有基于委托或属性的创建器) 我将在Spring Boot版本2.2.6中使用Java14完成此操作。 下面使用通常的