小编dor*_*and的帖子

当显示的点多于 Prometheus 时,Grafana 分辨率如何工作

我每 30 秒使用 Prometheus 抓取一次指标。当我检查 Prometheus 图表时:

elasticsearch_jvm_memory_max_bytes{}[2m]

我可以看到有 4 个值的范围向量:

2095185920 @1626523484.001
2095185920 @1626523514.001
2095185920 @1626523544.001
2095185920 @1626523574.001
Run Code Online (Sandbox Code Playgroud)

这是有道理的,30s * 4 个值 = 2m。当我在 Grafana 中运行相同的命令时,我可以每15 秒看到一次数据点: 在此输入图像描述

在上面的示例中,14:43:3014:43:4514:44:00中有 3 个数据点。我可以通过查询分辨率1/1看到这一点。如果我将分辨率设置为1/2,图形看起来很正常,每30s就有一个数据点。我在 grafana 中读到了有关分辨率的信息,也许我没有正确理解,但我希望 1/1 应该是来自普罗米修斯的每 1 个数据点在面板中的一个点。1/2 应该在面板中显示 1 个点,每 2 个来自普罗米修斯的数据点等...有人可以解释一下,我错过了什么或者为什么 grafana 会这样工作(带有一些例子)?

格拉法纳:v7.3.6

谢谢。

grafana prometheus

10
推荐指数
1
解决办法
4795
查看次数

如何使用 influxdb-python 向 influxdb 发送正确的时间戳

我有test带测量的influxdb 数据库:

name: mes1
time          Amount     Buy_order_id Price     
----          ------     ------------ -----     
1529832177822 0.02294    132868375    130117.83 
Run Code Online (Sandbox Code Playgroud)

我想在 Grafana 中制作图表,但所有数据都在 1970 年。我还有其他测量:

name: cpu_load_short
time                Bool_value Float_value Int_value String_value host     region
----                ---------- ----------- --------- ------------ ----     ------
1257894000000000000 true       0.64        3         Text         server01 us-west
Run Code Online (Sandbox Code Playgroud)

这次效果很好。我发现,测量cpu_load_short中的时间存储在 ns 中,但测量mes1中的数据存储在 ms 中。

mes1收到来自 websocket 的时间。时间cpu_load_short是从 python 生成的:

datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ')
Run Code Online (Sandbox Code Playgroud)

所有数据都通过 influxdb-python 发送到 influxdb。我尝试调整时间mes1并在数字末尾添加六个零:

'1529832177822' -> '1529832177822000000'
Run Code Online (Sandbox Code Playgroud)

但我收到了:

OverflowError: signed integer is greater …
Run Code Online (Sandbox Code Playgroud)

python-3.x influxdb influxdb-python

6
推荐指数
1
解决办法
1万
查看次数

Gitlab ci 仅在带有发布标签的 master 上运行作业

我想仅在设置发布标签时在 master 分支上构建 docker 映像。这是我的.gitlab.ci

build:
  rules:
    - if: '$CI_COMMIT_TAG != null && $CI_COMMIT_REF_NAME == "master"'
  script:
    - echo "Building $IMAGE:${CI_COMMIT_TAG}"
Run Code Online (Sandbox Code Playgroud)

这不起作用,我合并到 master 和release标签,但构建作业甚至没有开始。

我也尝试过only部分:

build:
  only:
    - master
    - tags
  script:
    - echo "Building $IMAGE:${CI_COMMIT_TAG}"
Run Code Online (Sandbox Code Playgroud)

即使CI_COMMIT_TAG不存在,它也会每次运行。CI_COMMIT_TAG有没有办法,仅当分支上存在时才强制运行作业master

gitlab-ci

6
推荐指数
2
解决办法
1万
查看次数

如何估计 Prometheus 的内存使用情况

我们使用 Prometheus 来抓取指标并将其保留 8 小时(对于更长时间,我们使用 Victoria Metrics)。我试图找出,对于当前的系列数量,Prometheus 应该有多少 MEM。我发现Prometheus 2.x 需要多少 RAM 来进行基数和摄取?用计算器。从这篇文章中,我有一些不清楚的地方:

  • 时间序列数* - 它应该是max_over_time(prometheus_tsdb_head_series[1d])查询的结果。就我而言,有多个结果,所以我用 求和sum(max_over_time(prometheus_tsdb_head_series[1d]))。这种做法对吗?
  • 每个时间序列的平均标签* - 统计所有标签的键值对数量并计算平均值。例如{a="123", b="456"}算作2。
  • 唯一标签对的数量* - 查找唯一键值对。例如{a="123", b="456"}{a="123", b="abc"}等于 2 个 uniq 标签对
  • 每个标签对的平均字节数*(包括 =、“” 和 ,) - 例如{ "__name__": "up", "app_version": "0509b54", "instance": "1", "job": "event-metric-exporterd", "stack_version": "MR" }。我删除了空格和{, }。所以最终的字符串是"__name__":"up","app_version":"0509b54","instance":"1","job":"event-metric-exporterd","stack_version":"MR". 然后,我对其进行编码并utf-8获取字符串长度,在本例中为 106。我对每个 uniq 标签执行此过程并计算平均值。这是正确的吗?
  • 每个样本的字节数- 有一个查询rate(prometheus_tsdb_compaction_chunk_size_bytes_sum[1d])/rate(prometheus_tsdb_compaction_chunk_samples_sum[1d]) …

prometheus

6
推荐指数
0
解决办法
2520
查看次数

如何使用 Loki 配置记录和警报规则

我正在尝试配置记录规则,根据文档,尚不清楚如何设置它。

我在目录中配置了rules.yml文件/loki/rules。根据文档记录规则,我实现了自己的规则:

name: MyRules
interval: 1m
rules:
  - record: generator:requests:rate2m
    expr: |
      sum(
        rate({service="generator_generator"}[2m])
      )
    labels:
      cluster: "something"
Run Code Online (Sandbox Code Playgroud)

首先,这不会产生任何结果,Loki 中不会记录错误格式,Prometheus 中不会有任何指标(远程写入)。之后,我根据 doc Ruler storagerules-temp将此文件也复制到目录和目录。从文档中,我不确定该文件应该位于哪里,所以我将其复制到各处。结果是一样的——Loki 中没有日志,Prometheus 中也没有任何日志。/loki/rules/fake/

休息一天后,我启动了 Loki 并找出日志:

2022-11-03T08:24:24.062210590Z level=error ts=2022-11-03T08:24:24.061854756Z caller=ruler.go:497 msg="unable to list rules" err="failed to list rule groups for user fake: failed to list rule group for user fake and namespace rules.yml: error parsing /loki/rules/fake/rules.yml: /loki/rules/fake/rules.yml: yaml: unmarshal errors:\n  line 1: field name not found in type …
Run Code Online (Sandbox Code Playgroud)

grafana grafana-loki

5
推荐指数
1
解决办法
3642
查看次数

如何使用 docker 23.0.1 安装 buildx

我正在尝试从 docker doc安装 buildx 。首先,我尝试使用 Dckerfile 安装。我不得不说,我不知道如何按照此步骤安装它,这部分的说明非常差。所以我选择选项手动下载

我下载了buildx-v0.10.2.darwin-amd64二进制文件,将其复制到$HOME/.docker/cli-plugins并将其重命名为docker-buildx并使其可执行:

$ ll $HOME/.docker/cli-plugins/docker-buildx
-rwxr-xr-x 1 root root 55984928 Feb 14 20:05 /root/.docker/cli-plugins/docker-buildx*
Run Code Online (Sandbox Code Playgroud)

所有这些步骤均来自文档。

下一步,我想将 Buildx 设置为默认构建器。根据文档,我应该运行,docker buildx install但它引发了异常'buildx' is not a docker command

$ docker buildx install
docker: 'buildx' is not a docker command.
See 'docker --help'
Run Code Online (Sandbox Code Playgroud)

这些说明对我来说非常不清楚,不知道如何解决。我发现了这个,但它的步骤基本相同,所以它没有帮助。

有人可以帮我找出我缺少什么吗?

$ uname -m
x86_64
Run Code Online (Sandbox Code Playgroud)

Docker版本23.0.1,构建a5ee5b1

docker buildx

5
推荐指数
1
解决办法
2万
查看次数

ES-6 .1. - 如何更改默认的分片数

我使用的是ES 6.1.我试图将默认的分片数从5改为,例如,6.是否有可能以某种方式?当我在elasticsearch.yaml文件下面添加行时,ES将无法启动.

index.number_of_replicas : 1
index.number_of_shards: 6
Run Code Online (Sandbox Code Playgroud)

错误如下所示:

在节点级配置上找到索引级别设置.

由于elasticsearch 5.x索引级别设置不能在诸如elasticsearch.yaml之类的节点配置中设置,在系统属性或命令行参数中.为了升级所有索引,必须通过/ $ {index}/_设置更新设置API.除非所有设置都是动态的,否则必须关闭所有索引才能应用将来创建的upgradeIndices应使用索引模板来设置默认值.

请确保通过执行以下内容更新所有索引的所有必需值:

curl -XPUT'http :// localhost:9200/_all/_settings?preserve_existing = true'- d'{"index.number_of_replicas":"1","index.number_of_shards":"6"}'

我的理解:
如果我没有索引或所有索引都关闭,我可以通过以下方式更改默认值:

curl -XPUT 'http://localhost:9200/_all/_settings?preserve_existing=true' -d '{
"index.number_of_replicas" : "1",
"index.number_of_shards" : "6"
}'
Run Code Online (Sandbox Code Playgroud)

否则我无法更改默认的分片数.

我知道在创建索引后我无法更改分片数.我可以像这样创建索引

curl -XPUT  "$(hostname -I):9200/myindex/_settings?pretty" -H 'Content-Type: application/json' -d'
{
    "index" : {
        "number_of_shards" : 2, 
        "number_of_replicas" : 0 
    }
}
'
Run Code Online (Sandbox Code Playgroud)

我正在从Logstash向ES发送数据,并自动创建索引,名称取决于日期和类型,因此我无法手动创建每个索引.

我的问题是:

  1. 有没有办法如何更改默认的碎片数?如果有,怎么样?
  2. 我可以使用不同分数的不同索引吗?

configuration elasticsearch

4
推荐指数
1
解决办法
2662
查看次数

ZFS文件系统与ZFS池

ZFS池可能包含数据集(文件系统,快照等)或卷.ZFS卷就像块设备,但我不明白池和文件系统之间的区别.当我创建pool1时zpool create pool1 sda sdb sdc, zpool create pool1/fs我可以在df -h输出中看到两个新行pool1pool1/fs.zfs list输出相同.现在,我可以将文件复制到池中并转换为fs.我可以在两者上设置重复数据删除或压缩.那么区别是什么呢?我为什么要/不应该在池中创建文件系统?如果可能,请提供一些使用示例.

zfs

4
推荐指数
1
解决办法
1216
查看次数

iter()做什么列出?

我有这个代码:

a = ['animal', 'dog', 'car', 'bmw', 'color', 'blue']
a_iter = iter(a)

print(a)
print(a_iter)

print(dict(zip(a,a)))
print(dict(zip(a_iter,a_iter)))
Run Code Online (Sandbox Code Playgroud)

输出是:

['animal', 'dog', 'car', 'bmw', 'color', 'blue']
<list_iterator object at 0x7f2d98b756d8>
{'dog': 'dog', 'car': 'car', 'animal': 'animal', 'color': 'color', 'blue': 'blue', 'bmw': 'bmw'}
{'car': 'bmw', 'color': 'blue', 'animal': 'dog'}
Run Code Online (Sandbox Code Playgroud)

我不understad,为什么拉链用不同的方式工作a_itera.做iter()什么,列表是可迭代的,为什么要使用iter()?有人可以用一些很好的例子向我解释这个吗?我用Google搜索,但我仍然不明白.

python iterator python-3.5

2
推荐指数
2
解决办法
120
查看次数

无法从 gitlab CI 拉取或推送到个人注册表

我实现了自己的 docker 注册表,并成功从本地主机(推送)和服务器(拉取)对其进行了测试。现在,我正在尝试从 CI 管道构建并推送图像:

build:
  image: docker:18
  services:
    - docker:dind
  stage: build
  script:
    - echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
    - docker pull $CI_REGISTRY/website:latest
    - docker build -t $CI_REGISTRY/website:latest .
    - docker push $CI_REGISTRY/website:latest
Run Code Online (Sandbox Code Playgroud)

我能够登录注册表:

$ echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
Run Code Online (Sandbox Code Playgroud)

当我尝试提取我的网站:最新图像时,我收到错误:

$ docker pull $CI_REGISTRY/website:latest
Error …
Run Code Online (Sandbox Code Playgroud)

gitlab docker

2
推荐指数
1
解决办法
4604
查看次数

可在警报模板中使用的 Prometheus 标签和变量列表是什么

我正在为 Prometheus 编写一些检查,我想知道我可以在模板中使用哪些变量。我正在使用$labels.container,但是$labels.service$labels.instance不起作用。例如,我在普罗米修斯查询中使用实例,但无法在模板中使用它。如何找到所有标签或可以在模板中使用的其他变量?我实现了用 python 编写的自己的导出器,用于控制 docker swarm 中的哪些容器不断重新启动。

我是 Prometheus 和 Alertmanager 的新手,在我看来,文档看起来不太清楚。谢谢。

prometheus prometheus-alertmanager

0
推荐指数
1
解决办法
3897
查看次数