用于在 Kubernetes 中监控 Orleans 的 Prometheus 配置
Prometheus configuration for monitoring Orleans in Kubernetes
我正在尝试让 Prometheus 与我的奥尔良筒仓一起运行...
我使用 this 消费者在端口 8082 上公开 Prometheus 的 Orleans 指标。使用本地 Prometheus 实例并使用同一存储库中的 grafana.json 我发现它有效.
_ = builder.AddPrometheusTelemetryConsumerWithSelfServer(port: 8082);
按照 this guide 在 Kubernetes 上安装普罗米修斯到我的筒仓部署的不同命名空间。
按照说明,我将 prometheus 标签添加到我的 orleans 部署 yaml 中:
spec:
replicas: 2
selector:
matchLabels:
app: mysilo
template:
metadata:
annotations:
prometheus.io/scrape: 'true'
prometheus.io/port: '8082'
labels:
app: mysilo
我在 prometheus yml 中的工作:
- job_name: "orleans"
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- orleans
selectors:
- role: "pod"
label: "app=mysilo"
根据同一指南,如果“pod 元数据使用 prometheus.io/scrape 和 prometheus.io/port 注释进行注释,所有 pods 指标都会被发现。”。我假设我不需要任何额外的安装。
有了这一切,端口转发了我的 prometheus pod,我可以看到 prometheus 正在 http://localhost:9090/metrics 中工作,但我的 grafana 仪表板中没有显示任何指标(同样,我可以让它工作在只有一个筒仓的本地机器中)。
在探索 grafana 时,我发现它似乎找不到实例:
sum(rate(process_cpu_seconds_total{job=~"orleans", instance=~"()"}[3m])) * 100
目的是监控我的 orleans 孤岛正在使用的资源(不是 pods 指标本身,而是 orleans 指标),但我遗漏了一些东西:(
感谢@BozoJoe 的评论,我可以对此进行调试。
问题是它试图抓取端口 30000 和 1111,而不是我之前所说的 8082。感谢位于 localhost:9090/targets
的 Prometheus 仪表板,我可以看到这一点
所以我查看了 prometheus 配置文件并确保开始废弃正确的端口(我还对搜索名称添加了一些限制):
- job_name: "orleans"
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- orleans
selectors:
- role: "pod"
label: "app=mysilo"
relabel_configs:
- source_labels: [__meta_kubernetes_pod_container_name]
action: keep
regex: 'my-silo-name*'
- source_labels: [__address__]
action: replace
regex: ([^:]+):.*
replacement: :8081
target_label: __address__
我正在尝试让 Prometheus 与我的奥尔良筒仓一起运行...
我使用 this 消费者在端口 8082 上公开 Prometheus 的 Orleans 指标。使用本地 Prometheus 实例并使用同一存储库中的 grafana.json 我发现它有效.
_ = builder.AddPrometheusTelemetryConsumerWithSelfServer(port: 8082);
按照 this guide 在 Kubernetes 上安装普罗米修斯到我的筒仓部署的不同命名空间。
按照说明,我将 prometheus 标签添加到我的 orleans 部署 yaml 中:
spec: replicas: 2 selector: matchLabels: app: mysilo template: metadata: annotations: prometheus.io/scrape: 'true' prometheus.io/port: '8082' labels: app: mysilo
我在 prometheus yml 中的工作:
- job_name: "orleans"
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- orleans
selectors:
- role: "pod"
label: "app=mysilo"
根据同一指南,如果“pod 元数据使用 prometheus.io/scrape 和 prometheus.io/port 注释进行注释,所有 pods 指标都会被发现。”。我假设我不需要任何额外的安装。
有了这一切,端口转发了我的 prometheus pod,我可以看到 prometheus 正在 http://localhost:9090/metrics 中工作,但我的 grafana 仪表板中没有显示任何指标(同样,我可以让它工作在只有一个筒仓的本地机器中)。
在探索 grafana 时,我发现它似乎找不到实例:
sum(rate(process_cpu_seconds_total{job=~"orleans", instance=~"()"}[3m])) * 100
目的是监控我的 orleans 孤岛正在使用的资源(不是 pods 指标本身,而是 orleans 指标),但我遗漏了一些东西:(
感谢@BozoJoe 的评论,我可以对此进行调试。
问题是它试图抓取端口 30000 和 1111,而不是我之前所说的 8082。感谢位于 localhost:9090/targets
的 Prometheus 仪表板,我可以看到这一点所以我查看了 prometheus 配置文件并确保开始废弃正确的端口(我还对搜索名称添加了一些限制):
- job_name: "orleans"
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- orleans
selectors:
- role: "pod"
label: "app=mysilo"
relabel_configs:
- source_labels: [__meta_kubernetes_pod_container_name]
action: keep
regex: 'my-silo-name*'
- source_labels: [__address__]
action: replace
regex: ([^:]+):.*
replacement: :8081
target_label: __address__