标签: prometheus-operator

省略系列结果 PromQL 中的标签

假设我编写一个像这样的基本 PromQL 查询

询问: kube_deployment_spec_replicas{}

结果:

kube_deployment_spec_replicas{deployment="mydeployment",endpoint="myendpoint",instance="myinstance",job="myjob",namespace="default",pod="mypod",service="myservice"}
Run Code Online (Sandbox Code Playgroud)

有没有一种干净的方法可以从结果时间序列中省略instance和?pod

期望:

kube_deployment_spec_replicas{deployment="mydeployment",endpoint="myendpoint",job="myjob",namespace="default",service="myservice"}
Run Code Online (Sandbox Code Playgroud)

prometheus promql prometheus-operator kube-state-metrics

18
推荐指数
2
解决办法
3万
查看次数

将Prometheus运算符与DB卷一起用于k8s

我们正在尝试使用Grafana和Prometheus Operator监视K8S,
大多数指标都按预期工作,并且我能够看到具有正确值的仪表板,我们的系统包含10个节点,总共500个Pod,现在当我重新启动Prometheus时,所有数据已被删除(我希望将其存储两周)我的问题是,如何定义Prometheus卷以将数据保留两周或100GB DB。我发现以下内容(我们使用Prometheus运算符)

https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/storage.md

这是Prometheus运算符的配置

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  labels:
    k8s-app: prometheus-operator
  name: prometheus-operator
  namespace: monitoring
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: prometheus-operator
  template:
    metadata:
      labels:
        k8s-app: prometheus-operator
    spec:
      containers:
      - args:
        - --kubelet-service=kube-system/kubelet
        - --logtostderr=true
        - --config-reloader-image=quay.io/coreos/configmap-reload:v0.0.1
        - --prometheus-config-reloader=quay.io/coreos/prometheus-config-reloader:v0.29.0
        image: quay.io/coreos/prometheus-operator:v0.29.0
        name: prometheus-operator
        ports:
        - containerPort: 8080
          name: http
Run Code Online (Sandbox Code Playgroud)

这是Prometheus的配置

    apiVersion: monitoring.coreos.com/v1
    kind: Prometheus
    metadata:
      name: prometheus
      namespace: monitoring
      labels: 
        prometheus: prometheus
    spec:
      replica: 2
      serviceAccountName: prometheus
      serviceMonitorNamespaceSelector: {}
      serviceMonitorSelector:
        matchLabels: …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services google-cloud-platform kubernetes prometheus prometheus-operator

17
推荐指数
1
解决办法
1499
查看次数

普罗米修斯中 = 和 =~ 运算符有什么区别?

prometheus 指标中=~运算符的含义是什么?

任何人都可以帮助我 = 和 =~ 运算符之间的确切区别是什么?

对于前.

process_cpu_seconds_total{instance="test"} 
process_cpu_seconds_total{instance=~"test"}
Run Code Online (Sandbox Code Playgroud)

结果不同。

metrics prometheus prometheus-operator

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

kubernetes 秘密中的 helm 值?

我正在使用这个图表:https ://github.com/helm/charts/tree/master/stable/prometheus-mongodb-exporter

该图表需要MONGODB_URI环境变量或mongodb.uri填充在values.yaml文件中,因为这是一个连接字符串,我不想将其签入 git。我正在考虑 kubernetes 秘密并提供来自 kubernetes 秘密的连接字符串。我一直未能成功找到此问题的解决方案。

我还尝试创建另一个舵图并将其用作该图表的依赖项并为MONGODB_URIfrom提供值secrets.yaml,但这也不起作用,因为在prometheus-mongodb-exporter图表中MONGODB_URI定义为所需值,然后将其传递到secrets.yaml该图表中的文件中,因此依赖项因此图表永远不会被安装。

实现这一目标的最佳方法是什么?

kubernetes prometheus kubernetes-helm prometheus-operator

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

在 kube-prometheus-stack helm 值之外添加 PodMonitor 或 ServiceMonitor

使用kube-prometheus-stack helm 图表,版本 35.2.0。到目前为止,我添加了我的 custom PrometheusRulesPodMonitorServiceMonitor通过 helm 自定义值。

helm install my-kubpromstack prometheus-community/kube-prometheus-stack -n monitoring \
  -f my-AlertRules.yaml \
  -f my-PodMonitor.yaml
Run Code Online (Sandbox Code Playgroud)

PrometheusRules或者如果或发生变化PodMonitor,我使用helm upgrade. 自定义值是基于kube-prometheus-stack/values.yaml定义的。我在单独的 YAML 文件中定义prometheus.additionalPodMonitors和的地方additionalPrometheusRulesMap

helm upgrade my-kubpromstack -n monitoring \
  --reuse-values \
  -f my-AlertRules.yaml \
  -f my-PodMonitor.yaml
Run Code Online (Sandbox Code Playgroud)

问题:如何使 Prometheus 服务器kube-prometheus-stack感知在 helm 值之外创建的规则、podmonitor、servicemonitor?

例如,PodMonitorPrometheus 不会选择下面的定义(即不会出现在 Prometheus UI 的目标中)。

kubectl apply -f - << EOF
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata: …
Run Code Online (Sandbox Code Playgroud)

prometheus-operator kube-prometheus-stack servicemonitor

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

在 monitoring.coreos.com/v1 中找不到 ServiceMonitor

我正在使用kubeadm部署单节点 kubernetes 1.11 集群。我无法找到servicemonitor资源。

?  kube-prometheus git:(master) ? kubectl get servicemonitor
error: the server doesn't have a resource type "servicemonitor"

?  kube-prometheus git:(master) ? kubectl create -f manifests/prometheus-serviceMonitor.yaml
error: unable to recognize "manifests/prometheus-serviceMonitor.yaml": no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"
Run Code Online (Sandbox Code Playgroud)

如何启用servicemonitorkubeadm

kubernetes prometheus-operator

9
推荐指数
1
解决办法
8827
查看次数

如何在 Prometheus-operator 上重新标记抓取作业?

我是第一次尝试 prometheus-operator,并且仍然在努力解决管理 Prometheus 的差异。

部署非常简单,编辑规则也是如此,但是当我尝试使用 Prometheus-operator 重新标记导出器时,我找不到方法static_configs

我过去所做的就是自定义prometheus.yml和添加static_configs以包含每个导出器作业名称的标签。

我知道在 Prometheus-operator 的引擎盖下,我们具有与通常相同的设置,但我不确定如何使用该static_config运算符从配置中获得相同的结果。

据我所知,我现在必须在与我的出口商相关的服务监视器上设置重新标签,但是我尝试过的所有配置都没有结果:

尝试按照问题1166metricRelabelings中的描述以及问题 1086中的描述进行尝试,但没有任何运气。StaticConfigs

例如,这是我过去为kubernetes-cadvisor导出器设置标签时所做的事情static_config,以便我的自定义标签显示在导出器在摄取时间收集的所有指标上:

scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
kubernetes_namespace: kube-system
cluster_name: mycluster01
Run Code Online (Sandbox Code Playgroud)

relabel_configs在我的每个出口商工作中添加:


- job_name: 'kubernetes-cadvisor'
scheme: https
tls_config:
  ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
kubernetes_sd_configs:
- role: node
relabel_configs:
  - target_label: cluster_name
    replacement: mycluster01
  - target_label: kubernetes_namespace
    replacement: kube-system
  - action: labelmap
    regex: __meta_kubernetes_node_label_(.+)
  - …
Run Code Online (Sandbox Code Playgroud)

label kubernetes prometheus prometheus-operator

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

K8S - 使用 Prometheus 以安全的方式监控另一个 prometheus 实例

我已经在集群A(主舞会)上安装了Prometheus 运算符 0.34(按预期工作)现在我想使用联合选项,我的意思是从位于其他 K8S 集群B上的其他 Prometheus 收集指标

说明:

  1. 在集群中有一个主要的prometheus 操作员 v0.34 配置
  2. 我在集群B SLAVE prometheus 2.13.1 配置中

两者都通过 helm 成功安装,我可以通过访问 localhostport-forwarding并查看每个集群上的抓取结果。

我做了以下步骤

在操作员(主集群 A)上使用 additionalScrapeconfig 我已将以下内容添加到values.yaml文件中并通过 helm 更新它。

additionalScrapeConfigs:
 - job_name: 'federate'  
   honor_labels: true
   metrics_path: /federate
   params:
     match[]:
       - '{job="prometheus"}'
       - '{__name__=~"job:.*"}'
   static_configs:
     - targets:
       - 101.62.201.122:9090 # The External-IP and port from the target prometheus on Cluster B
Run Code Online (Sandbox Code Playgroud)

我把目标如下:

集群 B内的普罗米修斯(我想从中收集数据)上,我使用: …

security kubernetes prometheus istio prometheus-operator

8
推荐指数
1
解决办法
1837
查看次数

kube-prometheus 规则 KubeControllerManagerDown 正在触发

使用https://github.com/prometheus-operator/kube-prometheus/tree/main/manifests手动安装 kube-prometheus ,而不使用 jb。

规则正在触发:

name: KubeControllerManagerDown
expr: absent(up{job="kube-controller-manager"} == 1)
Run Code Online (Sandbox Code Playgroud)

即使我创建这些服务: https://github.com/prometheus-operator/prometheus-operator/issues/1859#issuecomment-437740104

如何调试这个问题?

prometheus prometheus-operator

8
推荐指数
1
解决办法
2939
查看次数

有什么方法可以将 Prometheus 数据存储到外部数据库,例如 mysql 或 postgreSQL

目前我正在使用 Prometheus 并取得了良好的结果,我面临的困难是如果服务重新启动我的整个旧数据将丢失。有没有办法将 Prometheus 数据永久存储在 mysql 或 PostgreSQL 等数据库中?

mysql database postgresql prometheus prometheus-operator

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