Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 普罗米修斯总结观察法做什么?_Javascript_Node.js_Grafana_Prometheus - Fatal编程技术网

Javascript 普罗米修斯总结观察法做什么?

Javascript 普罗米修斯总结观察法做什么?,javascript,node.js,grafana,prometheus,Javascript,Node.js,Grafana,Prometheus,我正在尝试使用摘要指标,而不是安静地理解我将摘要放在哪里。观察通话?以下是prom客户端示例(您可以在npm上找到): 但是没有足够的信息来使用它 观察(10)是什么意思 我应该把总结放在哪里。观察(10)电话?就在摘要度量声明之后或在函数/endoint调用的末尾,如: const client=require(“prom-client”) 有人对总结观察有很好的例子/解释吗?首先,让我们澄清什么是:总结指标从事件中捕获单个观察结果,并将其总结为若干相关指标: 值的总和(也称为观察值) 观察计

我正在尝试使用摘要指标,而不是安静地理解我将摘要放在哪里。观察通话?以下是prom客户端示例(您可以在npm上找到):

但是没有足够的信息来使用它

  • 观察(10)是什么意思
  • 我应该把总结放在哪里。观察(10)电话?就在摘要度量声明之后或在函数/endoint调用的末尾,如:
  • const client=require(“prom-client”)


    有人对总结观察有很好的例子/解释吗?

    首先,让我们澄清什么是:总结指标从事件中捕获单个观察结果,并将其总结为若干相关指标:

  • 值的总和(也称为观察值)
  • 观察计数
  • 分位数
  • 举个例子:如果您正在测量服务的响应时间:

    • 首先,创建一个摘要度量,提供

      • 名称和标签(通常用于标识度量)-例如:
        foobar\u请求\u持续时间\u秒
      • 通常以某种方式指示测量窗口(观察次数或事件的最大年龄)
      • 要计算的分位数列表-ex:0.1,0.5(中位数)、0.75,0.9
    • 对于每个请求,您将计算请求的响应时间-这是一个观察

    • 然后将计算出的请求响应时间提供给summary对象
    • 当普罗米修斯到达终点时,将根据观察到的响应时间度量计算指标

      • foobar\u请求\u持续时间\u秒数\u总和
        :请求消耗的总秒数
      • foobar\u请求\u持续时间\u秒数\u计数
        :请求数(注意,您可以使用总和计算平均值)
      • foobar\u请求\u持续时间\u秒\u秒{quantile=“0.1”}
        :响应时间10%(…所有配置的分位数相同)
    我希望这有助于您理解:

    第一个示例显示如何指示要计算的分位数

    new client.Summary({
      name: 'metric_name',
      help: 'metric_help',
      percentiles: [0.01, 0.1, 0.9, 0.99]
    });
    
    第二,如何限制测量窗口;此处,在过去10分钟内计算测量值(使用5个桶-这会影响值的平滑):

    回到您的问题,应该对您正在观察的内容调用
    observe()
    方法

    如果要测量由
    serviceCall()
    返回的某些数据,请将其提供给摘要

    number_bytes_exchanged = await this.serviceCall();
    summary.observe(number_bytes_exchanged);
    
    如果您想测量服务呼叫所花费的时间

    const observe_response_time = summary.startTimer();
    await this.serviceCall();
    observe_response_time();
    

    谢谢你,Michael,我只是不知道我真正需要将什么作为参数传递到summary.observe()中;根据prom客户文件,他们在这里真正观察到了什么:总结。观察(10)???它们是有关如何使用对象的示例:
    summary.observe(10)
    指示在
    end=summary.startTimer()时调用先前计算的值(大小、数字等)的函数;end()
    startTime=now()的合成糖;总结。观察(now()-startTime)
    。但你是对的,在无中生有的情况下叫它,它不测量任何东西。
    new client.Summary({
      name: 'metric_name',
      help: 'metric_help',
      maxAgeSeconds: 600,
      ageBuckets: 5
    });
    
    number_bytes_exchanged = await this.serviceCall();
    summary.observe(number_bytes_exchanged);
    
    const observe_response_time = summary.startTimer();
    await this.serviceCall();
    observe_response_time();