我创建了以下 Grafana 仪表板:
SELECT sum("value") FROM "rails.pageviews"
WHERE $timeFilter
GROUP BY time($__interval) fill(null)
Run Code Online (Sandbox Code Playgroud)
而图面板采用了完全相同的查询:
SELECT sum("value") FROM "rails.pageviews"
WHERE $timeFilter
GROUP BY time($__interval) fill(null)
Run Code Online (Sandbox Code Playgroud)
如何让单统计面板显示总浏览量?它应该是 12 (8+2+2) 而不是 4,对吧?
当我调试从 Influxdb 返回的数据时:
response:Object
results:Array[1]
0:Object
statement_id:0
series:Array[1]
0:Object
name:"rails.pageviews"
columns:Array[2]
0:"time"
1:"sum"
values:Array[73]
0:Array[1530870900000,null]
(...)
37:Array[1530882000000,null]
38:Array[1530882300000,8]
39:Array[1530882600000,null]
(...)
44:Array[1530884100000,null]
45:Array[1530884400000,2]
46:Array[1530884700000,null]
(...)
53:Array[1530886800000,null]
54:Array[1530887100000,2]
55:Array[1530887400000,null]
(...)
72:Array[1530892500000,null]
Run Code Online (Sandbox Code Playgroud) 我安装了 stable/prometheus helm chart 并在helm/charts#17268 中提出了一些小的更改,以使其与 Kubernetes v1.16 兼容
安装后,Kubernetes grafana 仪表板都没有显示正确的值。我正在使用 8769 ( https://grafana.com/grafana/dashboards/8769 ) 仪表板,它提供了有关 CPU、内存、网络等的许多信息。该仪表板在较旧的 k8s 版本上正常工作,但在 v1.16 上显示没有结果。我还随机尝试了其他一些仪表板(8588、6879、10551),但它们要么只显示每个 pod 的请求资源,而不显示实时使用情况,要么什么也不显示。
这些仪表板的作用是向 prometheus 发送 promql 查询并获取结果。例如,这是来自 8769 仪表板的 cpu 使用情况的 promql 查询:
sum (rate (container_cpu_usage_seconds_total{id!="/",namespace=~"$Namespace",pod_name=~"^$Deployment.*$"}[1m])) by (pod_name)
Run Code Online (Sandbox Code Playgroud)
我不知道我是否必须更改 promql 或问题出在其他地方。
我有以下代码:
c = InfoMetricFamily("health", "Health Monitoring")
c.add_metric(labels=name, value={"name": name, "status": status, "value": value})
Run Code Online (Sandbox Code Playgroud)
为 Prometheus 提供以下指标:
# HELP health_info Health Monitoring
# TYPE health_info gauge
health_info{name="external",status="danger",value="N\\A"} 1.0
Run Code Online (Sandbox Code Playgroud)
我想建表的仪表板在哪里Grafana name,status,value将列。我怎么能这样做?
我已经使用 prometheus 设置了一个监控系统,带有 AWS EC2 自动发现和节点导出器。使用以下公式获取 CPU 利用率:
100 - (avg by (instance) (irate(node_cpu_seconds_total{instance="instancexyz" ,mode="idle"}[5m])) * 100)
但是,在一个特定的 ASG 中,我得到的 CPU 百分比为大的负值。我打开了 instance:9100/metrics 链接,发现空闲值是大指数值。这是我得到的一个值:
node_cpu_seconds_total{cpu="0",mode="idle"} 4.25766215e+06
除了少数实例外,这些指标在我的所有实例上都运行良好。知道发生了什么吗?
目前我有一个 Kubernetes 环境并使用 Py rometheus 工具包进行监控。我有未在容器指标中公开的应用程序计数器。不过,我可以使用curl 命令将它们视为JSON 对象。
http://10.0.0.1:8081/api/events/
我使用 NodePort 通过工作节点的 IP 向外部公开 POD。
响应具有以下格式:
{
{
"ID": "001",
"source": "pageloads",
"summary": "high failure counts",
"severity": "major"
},
{
"ID": "003",
"source": "profile_counts",
"summary": "profile count doesn't match number of groups",
"severity": "minor"
},
{
"ID": "002",
"source": "number of subscribers",
"summary": "profiles higher than subscribers",
"severity": "critical"
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在 Prometheus 中包含 API 响应以每 15 秒轮询一次?
在我的 /metrics 页面上,我有类似的字符串
my_metric{controller="cont_a",action="act_a",le="1"} 5
my_metric{controller="cont_a",action="act_b",le="1"} 4
my_metric{controller="cont_b",action="act_c",le="1"} 3
my_metric{controller="cont_b",action="act_d",le="1"} 2
Run Code Online (Sandbox Code Playgroud)
在我的 Grafana 仪表板上,我想看到两个变量:controller和action。如果我只是通过label_values(controller)和之类的查询来定义它们label_values(action),它们将是独立的,这意味着如果"cont_a"选择了控制器,则所有 4 个操作都将可用。但我想让操作变量依赖于控制器变量,因此,如果"cont_a"选择控制器,则只有值"act_a"和"act_b"可用于操作变量。如果"cont_b"选择 ,则只有"act_c"和"act_d"。有没有办法以这种方式配置 Grafana 仪表板?
我在 grafana 中为数据源 MySql 有两个变量,一个是我启用了多值选项的站点,第二个是主题。现在我希望如果我们在站点变量中选择多个值,主题变量应该反映这些更改,但这不起作用。
虽然 mysql 中的正常查询正在工作 - 我编写的 sql 查询工作正常 -
select topic from problems_solved where Site in (select Site from problems_solved)
但在grafana中它不起作用。我正在尝试这个查询 - select topic from problems_solved where Site in(select ${Site} from problems_solved)。我尝试过其他查询,效果很好,但不起作用。有人可以帮我吗?
谢谢
我有包含三个变量的 postgres 表:datetime、robot_id 和 energy_percent。现在在图表中我有energy_percent和robot_id。如何按 对该表中的记录进行分组robot_id?目前在这个表中我有 3 个不同的记录robot_id,所以我想在这个图表上看到 3 条线。

编辑:我有一张包含很多记录的表,在列中robot_id我有 id。我需要每个唯一的一张折线图robot_id。如果表包含x唯一的robot_id我期望x图表上的线条。这是Excel示例:左边是错误的图表,右边是正确的图表:
而且一件事:在 Excel 上,没有数据的地方我有 0,但我不需要点。
Edit2:我可以用下面的很多系列来做,但它应该是通用的(我不知道有多少唯一的robot_id)并且用一个查询(A)而不是很多查询(A,B,C等)来完成
编辑3:当我应用代码时:
SELECT
$__timeGroupAlias(time_created, $__interval),
robot_id AS "metric",
AVG(energy_percent) AS "value"
FROM api_robotlog
WHERE
$__timeFilter(time_created)
GROUP BY 1,2
ORDER BY 1
Run Code Online (Sandbox Code Playgroud)
我有 2 个地块:energy_percent(time)和robot_id(time)。没有很多情节energy_percent(time, robot_id)。

编辑 5:使用@Jan Garaj 解决方案可以正常工作。两个图表,有两个相似的查询:
TOP图表查询:
SELECT
$__timeGroupAlias(time_created, $__interval),
robot_id AS "metric",
AVG(energy_percent) AS …Run Code Online (Sandbox Code Playgroud) 我创建了这个 docker compose 文件,该文件构建+运行没有错误
version: '3.7'
volumes:
grafana:
driver: local
prometheus-data:
driver: local
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
expose:
- 9090
volumes:
- prometheus-data:/prometheus
- ./prometheus:/etc/prometheus
restart: unless-stopped
command:
- "--config.file=/etc/prometheus/prometheus.yml"
grafana:
image: grafana/grafana-oss:latest
container_name: grafana
expose:
- 3000
volumes:
- grafana:/etc/grafana
restart: unless-stopped
nginx:
image: nginx
container_name: webserver
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- /opt/certs/:/etc/nginx/certs/
- ./nginx/gw-web/:/usr/share/nginx/html:ro
- ./nginx/nginx_proxy.conf:/etc/nginx/conf.d/default.conf
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
command: [nginx-debug, '-g', 'daemon off;']
Run Code Online (Sandbox Code Playgroud)
nginx 具有以下反向代理配置:
server {
listen 80;
listen [::]:80;
server_name …Run Code Online (Sandbox Code Playgroud) 如何获取namespace下pod的CPU使用率?我在 Grafana 设置上的初始仪表板如下所示 -

我正在尝试提出一个查询,它可以提供所选cluster中所选命名空间的所选Pod的 CPU 使用情况。设法想出下面的一个,但它返回“ ”。No data
sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{pod="$pod", namespace="$namespace"})
Run Code Online (Sandbox Code Playgroud)
我哪里出错了?
grafana ×10
prometheus ×7
kubernetes ×3
docker ×1
influxdb ×1
nginx ×1
postgresql ×1
promql ×1
python ×1
time ×1