全链路追踪 OpenTelemetry 零侵扰可观测性 eBPF Prometheus 全链路监控

当前位置:首页> 应用性能管理>查看prometheus数据 prometheus数据覆盖

查看prometheus数据 prometheus数据覆盖

时间:2024-10-04 04:19:28

一、数据数据普罗米修斯 Prometheus 入门

官方文档

Prometheus从被监控目标设备通过检索 metrics HTTP endpoints收集metrics。覆盖因为Prometheus自身也以同样的数据数据方式发布数据,所以它也可以监控自身的覆盖健康状态。

虽然Prometheus server仅采集自身的数据数据数据没什么意义,但是覆盖作为开始的范例很合适。

将下面的数据数据内容保存为 Prometheus配置文件prometheus.yml:

实际上安装包内已经包含了该文件,无需修改

查看其他配置项,覆盖请参阅 configuration documentation。数据数据

新开一个bash shell,覆盖查看服务和端口

访问测试

访问测试

我们试试查看Prometheus收集的数据数据自身的数据。要使用 Prometheus自带的覆盖 expression browser,导航到 ,数据数据选择"Graph" tab内的覆盖"Console" view。

既然你可以从 localhost:9090/metrics查看数据,数据数据那么可以看到一个Prometheus自己发布的指标 prometheus_target_interval_length_seconds(目标采集的实际间隔实际)。输入到expression console,然后点击"Execute":

如上,返回了一些不同的时间序列(along with the latest value recorded for each),都是 prometheus_target_interval_length_seconds的metric name,但是拥有不同的标签。这些标签显示了不同的时间段( latency percentiles)和目标组间隔(target group intervals)。

如果我们只对 99th percentile latencies有兴趣,我们可以通过如下查询:

要统计返回的时间序列数量,可以查询如下:

更多表达式语言参见 expression language documentation.

要图形表示,导航到 ,点击"Graph" tab。

比如,使用如下查询,图形表示demo Prometheus的per-second rate of chunks:

Experiment with the graph range parameters and other settings.

开始接入几个sample targets来演示。

Node Exporter用来作为范例,怎么使用参见 see these instructions.

范例监听在 , , and 。

现在我们配置 Prometheus来采集这些对象。我们把三个endpoints组成一个group到job内,称为node。假设,前两个是生产,第三个是金丝雀实例。为了在Prometheus区分,我们增加了数个endpoint组,给每个组增加标签。在范例中,我们将增加 group="production"标签给第一个组, group="canary"给第二个。

要实现这些,在prometheus.yml文件添加如下job定义到scrape_configs section,然后重启Prometheus实例。

回到 expression browser,确认 Prometheus现在已经有了关于这三个范例的信息,比如查询

虽然在范例中没有这个问题,但是当computed ad-hoc,跨成千上万时间序列的查询会变慢。为提升效率, Prometheus允许通过配置recording rules将预记录的表达式插入到新时间序列中。假设我们需要5分钟时间窗口(job, instance and mode dimensions)的平均值 per-second rate of cpu time(node_cpu_seconds_total)。我们可以查询如下:

实施图形展示。

要将这个表达式的值放到一个新metric job_instance_mode:node_cpu_seconds:avg_rate5m,使用下面的recording rule保存为 prometheus.rules.yml:

要让 Prometheus使用这个 rule,在 prometheus.yml添加 rule_files声明部分。如下是范例:

使用新配置文件重启 Prometheus,确认一个新指标 job_instance_mode:node_cpu_seconds:avg_rate5m可以通过expression browser查询了。

二、Prometheus简介

Prometheus是一套开源的系统监控报警框架。如今越来越多的公司开始广泛使用Prometheus来提供近实时的、基于动态云环境和容器微服务、服务以及应用程序的内省监控。同时也用于监控传统架构的资源。

Prometheus作为新一代的云原生监控系统,拥有易于管理、查询功能强大、便于可视化、存储高效以及操作简单等特点。

在Prometheus之前市面已经出现了很多的监控系统,如Zabbix、Open-Falcon等。下表通过多维度展现了各自监控系统的优缺点

Prometheus是一个开源系统监控和警报工具包,最初是在SoundCloud构建的。自2012年成立以来,许多公司和组织都广泛运用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,Prometheus在2016年加入了云计算基金会,成为继Kubernetes之后的第二个托管项目。

Prometheus有以下几个主要特点:

Prometheus生态系统包含多个组件,其中许多是可选的:

大多数Prometheus组件都是用Go编写的,因此易于构建和部署为静态二进制文件。

下图说明了Prometheus的架构及其生态系统组件:

Prometheus直接或通过pushgateway抓取metrics。将数据存储在本地,并对这些数据运行规则,以便从现有数据聚合和记录新时间序列,或者生成警报。Grafana或其他API consumers可以用来将抓取的数据可视化。

Prometheus非常适合记录任何纯数字时间序列。它既适用于machine-centric监控,也适用于高度动态的service-oriented的架构监控。在微服务的领域,其对多维数据抓取和查询的支持是一种特别的优势。

Prometheus是您在中断期间也能正常使用并快速诊断问题的系统,是十分值得信赖的伙伴。每个Prometheus服务器都是独立的,而不依赖于网络存储或其他远程服务。当基础结构的其他部分损坏时,您仍可以依靠它来进行监控,并且无需设置广泛的基础结构也可使用它,在故障的情况下,仍可以查看系统可用的统计信息。如果您需要100%精确的统计数据的话,Prometheus可能不能完全满足您的需求,如果是这种情况,您可以运用其他系统来抓取和分析这部分需要精确的数据,然后将Prometheus用于余下的监控环节。

三、Prometheus监控华为交换机

华为交换机的监控管理是网络运维的重要环节,Prometheus提供了强大的监控能力。让我们深入了解如何通过SNMP协议,结合MIB文件,对华为交换机进行精准监控。首先,确保你拥有与设备固件匹配的MIB文件,可以从华为官网下载,高版本MIB兼容低版本,但需确保版本对应性。

核心监控指标包括:电源状态(1.3.6.1.4.1.2011.6.157.1.6)、当前功率(hwCurrentPower)和平均功率(hwAveragePower),这些是设备运行的基础信息。对于华为交换机的CPU和内存,你可以通过OIDs hwEntityCpuUsage和 hwEntityMemUsage(1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5, 1.3.6.1.4.1.2011.5.25.31.1.1.1.1.7)实时监控性能。

内存占用情况可以通过 hwStorageSpace、hwStorageSpaceFree和 hwStorageName(1.3.6.1.4.1.2011.6.9.1.4.2.1.3-5)来跟踪。对于CPU使用率,关注 hwCpuDevDuty、hwCpuDuty1min和 hwCpuDuty5min。存储设备的详细信息,如名称、空间和空闲状态,可以通过 hwStorageName(1.3.6.1.4.1.2011.6.9.1.4.2.1.4)来查看。

针对华为交换机的特定模块,如CloudEngine S12700E-4,关注模块 huawei_core,这里还包含了接口信息,如 ifIndex、ifDescr、ifName等,以及丢包和错误统计(ifOutDiscards, ifInErrors)。此外,还需要关注CRC错误统计(hwIfMonitorCrcErrorStatistics)、输入和输出带宽(hwIfMonitorInputRate, hwIfMonitorOutputRate),以及光模块状态(entPhysicalIndex、功率等)和预警阈值。

在华为汇聚和接入交换机中,监控指标细化到更具体的层面上,比如接口流量、错误统计、带宽占用率(1.3.6.1.4.1.2011.5.25.41.1.7.1.1.8和 1.3.6.1.4.1.2011.5.25.41.1.7.1.1.10),光模块信息(entPhysicalIndex,功率),以及堆叠状态和CSS集群信息。

配置SNMP Exporter时,确保使用适当的MIB文件,针对不同网络架构和设备类型定制配置文件。例如,为huawei_common模块定义通用指标,对huawei_core、huawei_agg和huawei_acc等子模块设置个性化指标。在生成配置文件时,要考虑到接口和光模块信息的差异,灵活运用lookups和overrides来适应多设备任务。

在Prometheus中,使用file_sd_configs服务发现来管理华为交换机的IP列表,并创建相应的配置文件以支持多设备监控。通过API实时加载配置,执行健康检查,确保数据的实时性和准确性。Grafana面板提供了可视化界面,帮助你快速理解交换机的运行状态。

告警规则设置尤为重要,例如,当交换机风扇速度异常(expr: hwEntityFanSpeed== 0)或CPU使用率过高(expr: hwEntityCpuUsage>60),应立即触发严重告警。此外,内存使用率超过85%(expr: hwEntityMemUsage>85%)也是重要监控点。

记住,持续关注华为官方文档和更新,以确保监控策略与最新设备兼容。更多华为设备监控细节,如无线设备,将在后续专题中深入探讨。让我们共同提升网络监控的效率和准确性。

四、Prometheus无法获取Windows的CPU数据解决方法

在使用的Prometheus的wmi exporter进行Windows监控时,会遇到CPU、流量、磁盘等指标数据无法获取的情况。本文说一下解决方法。

先说结论:wmi exporter是通过Windows的WMI工具采集系统指标的,如果WMI这个工具有问题,那么监控工具肯定不会正常工作。

定位问题:打开wmi exporter暴露的URL,查看cpu组件采集状态,一般是  ,搜索关键词,wmi_exporter_collector_success,发现cpu、disk、net的状态都是0,正常情况应该是1

排错步骤1: 打开Windows自带的events查看器,发现报错

排错步骤2:打开 powershell,执行命令 Get-WmiObject Win32_PerfRawData_PerfOS_Processor,发现如下报错

得出结论:这个报错表示WMI的获取CPU的方法无法执行,Windows的WMI组件受损,需要修复。

参考资料:云原生NPM

网络可视化
网络性能监控哪个产品 根因分析python 中科云网行情分析报告 专业提供应用性能管理 交换机可视化网络平台 可视化网络图作用 信 性能测试怎么监控网络 开源 网络可视化服务 技术根因分析的要点有 洋务运动破产根因分析
根因分析
美国网络可视化厂商 prometheus 5g网络可视化架构解 电影promethe 微服务 监控平台 微 药物使用错误的根因分 根因分析法重点 微服务怎么设置监控 根因分析常见误区包括 应用性能管理哪种效果
零侵扰可观测性
微服务监控注意什么 应用性能管理哪个便宜 输血护理不良事件根因 不良事件根因上报率低 全链路追踪设计公司招 智学网云分析平台下载 分析方法电子版百度云 传统神经网络可视化 prometheus 网云市场相互配合调研
网络可视化/dt>
正规网贷云行业分析 各种网盘云盘对比分析 app用户分析ppt prometheus prometheus 沃家云监控平台官网首 幼儿园可视化主题网络 新生儿坠床的根因分析 护士换错液根因分析 微服务的调用链是什么
网络流量采集
网络系统可视化 可视 中科云网股票最新分析 网络安全策略可视化 服务器状态及网络 可 软件开发需求期根因分 云网安全风险分析 预 告警根因分析算法有哪 网络可视化基础架构龙 dpi网络可视化产品 神经网络学习过程可视
关注我们