- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个设备以以下格式将温度测量结果作为 JSON 公开:
[
{
"dataPointId": 123456,
"values": [
{
"t": 1589236277000,
"v": 14.999993896484398
},
{
"t": 1589236877000,
"v": 14.700006103515648
},
{
"t": 1589237477000,
"v": 14.999993896484398
},
[..]
prometheus/client_golang
来构建导出器。
/metrics
端点然后从上面的数据中公开这样的东西:
# HELP my_temperature_celsius Temperature
# TYPE my_temperature_celsius gauge
my_temperature_celsius{id="123456"} 14.999993896484398 1589236277000
my_temperature_celsius{id="123456"} 14.700006103515648 1589236877000
my_temperature_celsius{id="123456"} 14.999993896484398 1589237477000
prometheus.Collector
并且我正在添加我的静态指标,没有任何问题。对于上面的测量,
NewMetricWithTimestamp
似乎是添加带有时间戳的指标的唯一方法,因此我使用以下内容迭代这些值:
for _, measurements := range dp.Values {
ch <- prometheus.NewMetricWithTimestamp(
time.Unix(measurements.T, 0),
prometheus.MustNewConstMetric(
collector.temperature,
prometheus.GaugeValue,
float64(measurements.V),
device.DatapointID))
}
An error has occurred while serving metrics:
1135 error(s) occurred:
* collected metric "my_temperature_celsius" { label:<name:"id" value:"123456" > gauge:<value:14.999993896484398 > timestamp_ms:1589236877000000 } was collected before with the same name and label values
* collected metric "my_temperature_celsius" { label:<name:"id" value:"123456" > gauge:<value:14.700006103515648 > timestamp_ms:1589237477000000 } was collected before with the same name and label values
[..]
最佳答案
如果仔细观察,您会发现 JSON 数据格式在指标收集的上下文中略显多余,因为时间戳位于每个设备内部,而不是作为父键,并且具有作为设备 ID 和值数组的值。只有这样你才能循环实时序列数据,然后你的标签不会像现在一样在循环中是静态的。标签唯一性是标签名称 + 标签值散列在一起。
我认为最好的方法是制作一个 Gauge Vector。使用 WithLabelValues
获得 Gauge
对象并调用 Set
在它上面设置值
deviceTempGaugeVector := prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Name: "my_temperature_celsius",
},
[]string{
"device_id" // Using single label instead of 2 labels "id" and "value"
},
)
prometheus.MustRegister(deviceTempGaugeVector)
for _, point := range dp.TimeStamps {
for _, measurements := range point {
deviceId := measurements.DatapointID
value := measurements.V
metric := deviceTempGaugeVector.WithLabelValues(deviceId).Set(value)
ch <- prometheus.NewMetricWithTimestamp(time.Unix(measurements.T, 0),metric)
}
}
关于go - 普罗米修斯收集器失败并显示 "collected metric was collected before with the same name and label values",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61900346/
我第一次尝试使用矢量匹配时,我收到一条错误消息,提示“不允许多对多匹配:匹配标签在一侧必须是唯一的”,我不明白为什么。 这是我的表达: sum(rate(container_cpu_usage_sec
我想计算给定指标在时间范围内非零的百分比时间。我知道我可以使用 count_over_time(my_metric[1m]) 但我想要的是 count_over_time(my_metric[1m]
我正在寻找 Prometheus 如何计算“向上”指标的信息 up{job="", instance=""}: 1 if the instance is healthy, i.e. reachable
给定一个具有单调递增值的 Prometheus Counter 对象,我如何生成一个图表,其中值从 0 开始作为 grafana 范围的开始并按标签分组? 伪公式(我怎么想的。我可能是错的) fore
我正在尝试使用普罗米修斯数据源在 Grafana 中绘制条形图。 我的简单查询如下所示: max_over_time(energy_monitor_watthour_today[1d]) 我将 Gra
我有一个 Prometheus 计数器,我想获取它的 率在一个时间范围内(真正的目标是 sum the rate ,有时使用 histogram_quantile 度量)。 但是,我有多台机器运行这种
我正在尝试使用正则表达式添加新标签。名称实例是 pr-na01-na02-A我试图只获取 pr-na01,所以我这样做了: - source_labels: ['__meta_ec2_tag_Na
我要监控的应用程序提供了一个用于健康检查的 api 端点,它以 json 格式响应指标。例如: $ curl https://example.com/api/stats {"status":"suc
我看到没有sink configuration普罗米修斯在此heapster document .有什么简单的方法可以将这两者结合起来进行监控。 最佳答案 Prometheus 使用 pull mod
我要监控的应用程序提供了一个用于健康检查的 api 端点,它以 json 格式响应指标。例如: $ curl https://example.com/api/stats {"status":"suc
我在同一主机上有类似的服务。例如我有两个名为 mysql01 和 mysql02 的 mysql 服务器。我已经安装了两个mysqld_exporter每个 mysql 服务器一个。标签实例的值为 i
我在 grafana 中有一个面板,它显示当前警报(简单查询 ALERTS{alertstate="firing"} with instant=enable 选项)。我想知道第一次触发警报的时间。我该
我们开始使用 Prometheus 和 Grafana 作为监控 Service Fabric 集群的主要工具。为了定位 Prometheus,我们使用 wmi_exporter,带有预定义参数:CP
我们开始使用 Prometheus 和 Grafana 作为监控 Service Fabric 集群的主要工具。为了定位 Prometheus,我们使用 wmi_exporter,带有预定义参数:CP
我将我的 GKE API 服务器升级到 1.6,并且正在将节点升级到 1.6,但遇到了一个障碍...... 我有一个 prometheus 服务器(版本 1.5.2)在由 Kubernetes 部署管
我想知道我是否可以使用普罗米修斯数据中的“信息”(https://github.com/prometheus/client_python#info)指标在 grafana 中显示信息/数据。关于使用该
我有 2 个不同的指标: metric_a 带有字段类型 metric_b 具有字段类型(相同) 我正在尝试总结相同类型的 a 和 b。 如果类型只存在于 metric_a 而不是 metric_b
我在普罗米修斯中有以下标签,如何在模板化时创建通配符查询 类似于“查询”:“label_values(application_*Count_Total,xyx)”。这些值是从 Eclipse Micr
在 Prometheus 的目标页面中,我收到以下错误: 我在 Linux 主机上使用它 普罗米修斯版本: prometheus, version 1.1.2 (branch: master, rev
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 6 年前。
我是一名优秀的程序员,十分优秀!