如果我有一个带有以下标签的度量:
my_metric{group="group a"} 100
my_metric{group="group b"} 100
my_metric{group="group c"} 100
my_metric{group="misc group a"} 1
my_metric{group="misc group b"} 2
my_metric{group="misc group c"} 1
my_metric{group="misc group d"}
我开始研究普罗米修斯项目并制作原型。到目前为止,我已经在我的应用程序中实现了一些计数器(在Weblogic上运行),公开了metrics servlet(专用war文件),使用Docker映像在专用机器Prometheus server+Grafana上启动。一切正常,服务器会删除计数器,Grafana会将它们显示在图表中
但由于我的运行时环境,我面临一个问题。基本上,我通过https://以我的应用程序为目标,并通过https:///prometheus/metrics/,但在幕后我可以访问两
通过研究普罗米修斯数据库,我们可以存储时间序列的数值。
我的要求是“我想存储整个JSON对象w.r.t Timeseries,在绘制图形时,我可以从JSON对象中获得一个维度,并根据时间进行绘制
您可以帮助实现这一点吗。您不能在prometheus中存储JSON对象。但您可以尝试将JSON对象转换为prometheus度量
<metric name>{<label name>=<label value>, ...}
{=,…}
如前所述,您不能将JSON存
由于我的服务器托管在VPS中,因此我没有可以为node_exporter(版本0.17.0)提供磁盘统计信息的/proc/diskstats。因此,我最终得到了重复的错误消息:
ERRO[0037]错误:0.000034s后diskstats收集器失败:无法获取diskstats:open/proc/diskstats:无此类文件或目录source=“collector.go:132”
我想告诉导出程序忽略diskstats collector,但无法做到这一点。正如只放置标志--collect
我不会让alertmanager基于多个标签发送警报
一般来说,发送警报电子邮件是可行的。但前提是一个标签上有一个简单的匹配项。例如,teamB路线正在运行。teamA路线不是
route:
receiver: default-receiver
routes:
- receiver: teamA
match:
environment: production
match_re:
job: ^(?:app2| app3)$
- receiver
如何使用c++;?
我试图用C++代码获得所需的普罗米修斯度量值。例如,我需要使用C++代码执行当前运行的度量查询“GoGGCGIORATIONS秒{分位数= 0”},并获取查询的值。
如果有人有样品项目,请分享和帮助我
问:你有C++的普罗米修斯SDK吗?据报道,“官方”SDK似乎只适用于Go、Java、Scala、Python和Ruby。问:如果你有一个C/C++库,它是哪一个?你从哪儿弄来的?他们有他们的库的文档吗?我试过使用非官方的第三方客户端库,这在同一页中也提到过,“
Kubernetes中的Pod在某个端口导出度量,该端口在注释中指定。是否有任何方法仅保留与注释中的端口匹配的容器端口
我试过这样的东西,但不起作用
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation__prometheus_io_port,__meta_kubernetes_pod_container_port_number]
regex: (.+);$1
action: keep
我正在使用grafana显示prometheus的node_exporter监视的集群数据。
我想总结一下所有的节点。如果它们存活下来,将显示IP和CPU使用情况(IP需要删除端口号);如果挂起,则显示IP,颜色为灰色;现在您可以看到幸存节点的CPU使用情况;
问题是:
label_replace((1 - avg(irate(node_cpu_seconds_total{job=~"$job",mode="idle"}[5m])) by(instance
我在几个Centos 6虚拟机上尝试了多个版本的节点导出器,得到了同样的结果
节点导出器正在运行,当Icurl localhost:9100时,我得到以下信息:
节点导出器节点
出口商
当我curl localhost:9100/metrics时,它只是挂起
你知道为什么它不能获得这些指标吗?经过一段时间的调试,我发现它由于文件系统收集器而挂起。
使用--无收集器启动节点导出器。文件系统标志修复了该问题。经过一点调试后,我发现由于文件系统收集器的原因,该节点被挂起。
使用--无收集器启动节点导出
我想知道是否有可能实现PromQL:
给定一个promql,和duration生成一个它在该duration期间处于活动状态的图形。
这样您就可以追溯到promQl何时会产生警报
我想做这样的事情:
count_over_time(
($PROMQL)[$DUR:15s]
) >= ($DUR / 15s)
但它忽略了这个案例:
我正在普罗米修斯创建警报,并从Datadog迁移
我有两个我还不能理解的度量查询
avg(last_1d):anomalies(avg:default.burrow_kafka_consumer_lag_total{*} by {consumer_group,env}, 'robust', 3, direction='above', alert_window='last_30m', interval=300, count_default_zero='true', seasonality='hou
我需要一个普罗米修斯出口商(例如节点出口商)提供的所有指标和相应描述的表格
一些导出器在其文档中有这样一个表,例如cadvisor:但节点导出器没有这样一个包含度量和描述的详细表
此处提供了所有指标的列表http://localhost:9090/api/v1/label/__name__/values但这些描述是什么?有没有其他方法可以实现这一点?进入普罗米修斯>状态>目标,获得您想要的端点,例如:
Node = http://HOSTNAME:9100/metrics
Bitbu
我有一个监控微服务运行状况的指标,名为nodejs\u microservice\u health\u status
我想创建一个变量failedmicroservice,当nodejs\u microservice\u health\u status等于0时,该变量提取度量的service标签的值
PromQL查询nodejs\u microservice\u health\u status==bool0返回的所有项都等于0,但是当我试图将变量的查询设置为label\u值({nodejs\u
为了在Prometheus中使用basic auth访问抓取端点,我需要在Prometheus配置文件中以纯文本形式输入密码。是否有其他方式存储这些密码?例如,使用环境变量
我不想把我的密码仅仅保存在纯文本中不,这是唯一受支持的方式。没有计划增加其他方式
我正在尝试同时侦听两个端口,这些端口是:
有人能推荐一个好方法吗?您可以尝试以下方法:
由于目标使用不同的度量路径(/metrics与/prometheus),它们必须在单独的作业中定义/metrics是默认的度量路径,因此您不需要在job1中配置它,但需要将/prometheus配置为job2中的度量路径 您可以尝试以下方法:
由于目标使用不同的度量路径(/metrics与/prometheus),它们必须在单独的作业中定义/metrics是默认的度量路径,因此您不需要在job1中配置它,但需
我有一个关于普罗米修斯标签的问题。当我调用targets端点(/api/v1/targets)时,我得到一个json,其中包含包含不同键值对的scrape目标。给定上下文中键“发现标签”和“标签”之间的区别是什么。当我查询一个来自特定目标的指标时,普罗米修斯似乎包含了“labels”键中列出的标签。“发现的标签”在哪里使用?包含两个键的示例提取(未完成)如下所示
{u'discoveredLabels': {u'__address__': u'12.13.0.3:9090',
标签: Prometheus
client-libraryprometheus-pushgateway
我想使用java PushGateway客户端推送度量
示例推送网关URL
pushgateway.com:9091/metrics/job/job\u name
样本指标
度量值{instance=“i1”,label1=“l1”,label2=“l2”,label3=“l3”,label4=“l4”}
有谁能给我提供一个代码片段,用它将上述指标推送到Pushgateway中
注意
我们有20K个临时实例运行该应用程序,因此决定使用Pushgateway。来自以下官方文档:
要使用分组键jo
我想用普罗米修斯的数据源得到格拉法纳的条形图。查询是sum(增加(nginx\u http\u请求{location=“login”}[1d])
最小步长=1d。一切都正常,但最后一条有问题。他展示了我所理解的从2020-04-17 0:00到2020-04-18 0:00的价值观(例如今天的2020-04-17)。也许有人知道是否可以将酒吧结束日期设置为2020-04-17 23:59
格拉法纳酒吧示例:
我有一个多区域kubernetes集群,它有3个区域,其中prometheus监控部署了replicaset=3。每个区域有1个alertmanager、1个kubestate metrics、1个grafana和1个prometheus操作员吊舱运行
例如,当我收到警报时,一个警报部署ReplicasUpdated,我收到三个警报-每个kube state metric pod中有一个警报。警报仅因实例标签不同而不同,即kube state metric pod的ip地址。
警报格式如下所示
我读过普罗米修斯函数块文档,但有时我不理解速率函数的实际值
假设我们要计算http服务请求超过60秒的平均时间,它将如下所示:
sum by(uri) (
rate(http_client_requests_seconds_sum[60s])
/
rate(http_client_requests_seconds_count[60s])
)
所以它是这些时间序列中完成请求的平均时间,度量:持续时间。这对我来说完全有道理。现在我想计算60秒内http_客户端_请求_秒_计数的变化
s
我试图创建一个查询,通过“Api”字段对数据进行分组,并使用prometheus和grafana选择一个值字段
我的示例查询(promql)是(Api)[30m:1m]的max(application\u apidaccesscount\u total)。这可以通过按“Api”字段分组数据来获得最大值
我如何使用grafana的面板来实现这一点?是否可以为Grafana提供一个基本查询并使用面板字段对其进行修改?您必须添加一个新的小部件并添加查询:
max(rate(application_ap
在PromQL中,我们使用范围向量选择器来获取函数的范围向量,如rate()。Grafana提供动态变量$\u interval,其使用方式如下:
sum(rate(my_metric{foo="bar"}[$__interval]))
它的值是一个近似值,因此生成的范围向量包含大约每个像素(或多个)的一个条目。据我所知,这可以防止过度抓取
到目前为止还不错。但是看看Grafana Cloud中的多个可用仪表板,或者例如Robust Perception提供的演示仪表板,没
是否可以在运行“之后”规则时应用度量重新标记配置?也就是说,我想更改使用规则定义的指标的上游事物的标签,但不希望使用“原始”指标编写规则的人在加入/聚合等时担心额外的标签
仅对规则定义的度量进行重新标记也可以;我不需要我们从目标中提取的原始指标上的标签。简短回答:不,目前(普罗米修斯2.25)不可能
如果需要,可以在Github上打开功能请求:
对于普罗米修斯的一项特殊工作,典型配置如下:
static_configs:
- targets: ['localhost:9090']
但是,如果我想要一个动态的主机列表,那该怎么办呢?我在看scrape\u config,但这似乎并没有完成我想要的(除非我误读了?)
提前谢谢你 如果提供的服务发现机制之一还不能满足您的需要,您可以使用它动态提供目标。有几种方法可以为您的普罗米修斯提供动态目标。请参考链接
其中包括:
azure_sd_配置(用于AzureVM度量)
领事馆sd_配置(用于
我在这里看到了这个问题/答案:
这对我来说是一个很好的开始,我希望我能对回答者提出一个简短的问题,但我没有代表
无论如何,我有一个包含两个组的alert.rules.yml文件,如下所示:
groups:
- name: DevOpsAlerts
rules:
- alert: InstanceDown
expr: up == 0
for: 5m
labels:
severity: critical
annotations:
su
我一直在努力理解为什么一些HTTP端点返回“0”表示“probe_success”和“probe_HTTP_status_code”,同时完全能够使用curl获得有效响应
示例:curl-s localhost:9115/probe?目标=http://linux.org&module=http_2xx |grep-v'^'
输出:
probe_dns_lookup_time_seconds 0.003712821
probe_duration_seconds 0.212811871
probe
count{{uuuuu name{uuuuuu=~.+}查询只显示9,但普罗米修斯(prometheus)的tsdb\u head_系列显示837 count,你知道为什么会有这种差异吗?两个查询是否不相似
以下是刮取配置:
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'p
我有一个示例程序,可以总结为以下问题:
我想在一个篮子里记录“球”的数量。因此,我有一个普罗米修斯计数器,用于记录每个篮子中的球数。让我们把这个计数器称为Balls(basket_name=“name”),所以我有一个系列的Balls和一个带有basket name的标签。
现在要显示所有篮中的球总数,我在promql sum(balls)中执行以下操作,它显示篮中的球总数。
问题是我每次都可以用不同的篮子重新启动我的程序,但查询总和(Balls)将继续计算以前运行的“旧”篮子
问题:如何将查询
我试图将一组仪表添加到向量()中,同时仍将其时间序列数据保存在普罗米修斯中
例如:1天的数据
Vector(10)=10.0全天
Gauge1=0.1(0100-1800,否则=无数据)
Gauge2=0.2(0200-1900,否则=无数据)
Gauge3=0.3(0300-2000,否则=无数据)
Gauge4=0.4(0400-2100,否则=无数据)
我的目标是获得价值观:
10.0 (0000 - 0100)
10.1 (0100 - 0200)
10.3 (0200 - 0300
我有一个用例,我希望能够将给定指标随时间的变化率绘制为滚动和的百分比,但我不知道如何在PromQL中表达这一点
例如,如果当前和为100,而5分钟前的和为50,则在过去5分钟内增加了200%。我想以百分比的形式将该比率随时间的变化绘制成图表,这样我就可以对此发出警报
以下是我尝试过的:
delta(firehose_counter_event_gorouter_total_requests_total{bosh_job_name="router"}[5m])
irate(firehose_cou
我试图监视docker容器,但在查询以监视容器一天运行的分钟数时遇到问题
count(rate(container_last_seen{id=~"/docker/.*",instance=~"$node"}[1d]))
这是我的查询,用于显示一天中有多少容器运行,但如果您知道上次看到的container\u的数据点之间的间隔,我不知道如何监视一天中容器运行的分钟数(它被称为scrape\u interval,通常在Prometheus配置文件中配置),然
我们希望实现一个监控和警报解决方案,我们希望给每个功能单元提供自己的prometheus实例
目前,我们通过prometheus操作符和单个prometheus实例运行它,但现在我们需要用单个操作符将它扩展到多个prometheus实例
有人能告诉我正确的方向吗?这很简单:只需使用不同的配置将多个Prometheus对象部署到集群中即可。
普罗米修斯操作员将管理任意数量的普罗米修斯实例
在注释澄清后添加:
prometheus operator是在集群中运行的一款软件,它使用kind:prome
我想添加一些标签,如区域,客户名称到刮取的目标,这些标签的值只能在运行时生成,因此我想在运行时将标签动态填充到作业中,并使用它们触发警报
有办法吗?可能有办法,但您需要确切指定从何处获取这些值以及将它们放置在何处。
我想从中显示显示名称
windows_process_info{ hob = "job" , group = "group" , instance = "instance" }
到
如何组合这两个普罗米修斯查询?我的解决方案:
( sum by ( process_id , process ) ( windows_process_cpu_time_total{ job = "job" , group = "
是否可以使用不以u u开头的标签创建标签
背景:
我正在与普罗米修斯合作,我正在尝试使用node_exporter监控lvs服务,因此我需要一个名为vrrp_vsvrrp virtualserver的标签,它应该包含一个vip和一个端口,如172.16.10.10:80,我试图使用公制节点的两个标签local_address和local_port_backend_connections_active制作一个leble,但是它什么都没有。您可以使用ProMQ从现有标签创建一个组合标签
label_
例如,如果我使用OpenCensus,我会显式地创建直方图,但我看不到OpenCensus提供等效功能的选项
注意。我还不清楚从OpenCensus到OpenTelemetry的演变过程
在普罗米修斯(Prometheus)中,导出度量的服务提供了一个端点,该端点可以被刮取或拉取度量。在其他监控解决方案中,指标被推送到服务。当您将代码配置为导出到Prometheus时,还必须创建端点以公开这些度量。见:
注意,我引用了Golang的例子,因为您没有包含偏好。OpenCensus支持多种语言,但并
我一直在努力掌握普罗米修斯(和塔诺斯)实施的压缩和降采样技术
我对基于LSM的存储有点了解,但在使用的压缩(基于分层)上找不到任何好的文档。有什么建议吗
我正在Prometheus中运行diskspace used查询,只想返回搜索结果中前5或前10个条目。我有没有办法做到这一点
目前,我正在尝试的查询返回58个条目
(100 - 100 * (node_filesystem_avail{device!~"by-uuid",device!~"tmpfs",mountpoint="/"} / node_filesystem_size{device!~"by-uuid",device!~"tmpfs",mountpoint="/"})) > 7
我正在使用普罗米修斯的头盔图表,并计划为不同的环境提供不同的警报管理器文件集。
现有图表的提取部分:
{{- $root := . -}}
{{- range $key, $value := .Values.alertmanagerFiles }}
{{ $key }}: |
{{ toYaml $value | default "{}" | indent 4 }}
{{- end -}}
要覆盖此部分,我有一个已定义的模板变量
{{- define "prometheus.alertma
我有一个返回BGP前缀的简单查询:bgp4PathAttrPeer{bgp4PathAttrPeer=“10.16.3.9”}
在我的例子中,这给了我一个233行的列表(每个前缀一行)
如果撤销一个前缀,则相同的查询将返回232行。
现在我的问题是,我如何才能找出缺少的BGP前缀
我可以对查询求和并绘制它们的图形,但这并不能告诉我到底缺少了哪个前缀,只是缺少了那个前缀
您可以转到控制台左侧的图形,然后增加时间范围
我试图将Prometheus与postgres_exporter一起使用,但在另一个节点上—即Prometheus容器在一台服务器(Debian)上运行,并且应该监视另一台服务器(也是Debian)上运行的PostgreSQL容器
我在我的普罗米修斯上加了这个
- job_name: postgres_exporter
static_configs:
- targets: ['10.97.8.97:9187']
在PostgreSQL server上,我对postgres_导出器使用了
我让Prometheus在AWS上的K8内运行,并使用服务发现来获取有关我的基础设施的信息
我已经能够使用服务发现来检索指标和节点的目标标签,但是我显示了0/17个活动目标吊舱、0/13个节点导出器、3/9个服务端点和2/13个api服务器
我在下面的config-map.yaml中有一个Prometheus.yaml文件
以前有没有人做过这件事,并且能够说明我做错了什么
提前谢谢
global:
scrape_interval: 5s
evaluation_interv
我正在使用普罗米修斯(Prometheus)收集AWS cloudwatch指标,并在某些SQS队列出现大量消息时发送警报。假设我的队列深度图如下所示:
我想要一个只向上尖峰的闹钟。目前,我使用的是表达式increase(QueueDepthMetric[10m]),其中QueueDepthMetric是上面的可视化视图中表示的变量。我预计这只会在度量增加时显示峰值,但它会在度量的斜率增加时显示峰值:
这会导致在任何尖峰(正极和负极)上达到报警阈值。在浏览了普罗米修斯文档之后,我找不到我正在寻找
标签: Prometheus
prometheus-alertmanagerprometheus-blackbox-exporter
我们使用blackbox\u导出器“如果\u body\u匹配\u regexp:”来检查不同的内部监视器页面。问题是,当开发人员使用许多不同的“单词”来表示“失败的应用程序”。当服务正常时,一些单词实际上出现在其他一些监视器页面上。
在alers.rules中是否可以以某种方式区分实例?还是有其他办法解决这个问题
这可能不管用…但你可能知道我要做什么。。。
-警报:监视器页面上出现错误
expr:由于正则表达式=1,探测失败
时间:100万
实例:serve1,server2
标签:
严重性:
我目前使用prometheus alertmanager警报来确定在给定时间运行的盒子数量
我想创建一个警报,如果在线框的数量发生变化,它将发出警报。我用这样的方式:
sum(up{app="mybox"}) != sum(up{app="mybox"} offset 5m)
这将检测到状态更改,但不会报告当前/以前的值。所有$labels.value将返回的值均为真/假。有没有一种方法可以编写此查询,以便a)它在更改时发出警报,B)报告不同的值?如中所示,只有一个可用的$value是规则的表
我正在为第三方系统编写一个Prometheus自定义导出器,该系统公开了RESTAPI
想象一下,它就像一个可以提交订单的网店。我想公开有关这些订单的指标,并将其分解为产品,如下所示:
mysystem_order{product_id="soap", state="SHIPPED"} 25
mysystem_order{product_id="soap", state="PENDING"} 2
mysystem_o
我正在尝试向SpringBootWeb应用程序添加时间度量。目前,该应用程序使用千分尺、普罗米修斯和弹簧靴执行器
我可以在以下位置连接到我的应用程序:http://localhost:8080/actuator/prometheus 并查看默认指标列表,如:
# HELP jvm_gc_memory_allocated_bytes_total Incremented for an increase in the size of the young generation memory pool a
普罗米修斯有没有像XDB那样“减少”旧数据的方法?
例如,我想在上周以“每1分钟采样一次”的分辨率存储一些请求计数器,然后在上个月每10分钟减少并存储一次样本,然后完全删除数据
我使用snmp版本2在Cisco交换机上设置了密码,但无法使用snmp导出器获取数据。如何仅在snmp导出器中为版本2设置密码
错误
level=info ts=2020-12-27T11:37:06.875Z调用者=收集器。go:224模块=如果_mib target=172.16.108.10 msg=“Error scraping target”err=“scrape canceled(可能超时)获取目标172.16.108.10”
对于每个模块,必须单独定义一个社区进程,每个进程都可以单
因此,我正在进行一个项目,需要安装一个Grafan仪表板,我发现了一些,但我感兴趣的仪表板(JMX Overview 3457)调用如下
jvm_memory_bytes_used{instance=~"$instance"}
问题在于度量“jvm\u内存\u字节\u使用”不存在,以“jvm\u”开头的度量都不会返回。如果它们以“jmx_”或“java_lang”开头,则返回。我在Github上找到的
https://github.com/prometheus/jmx_ex
1 2 3 4 5 6 ...
下一页 最后一页 共 14 页