当前位置: 首页 > news >正文

文库网站开发建设昆明网站seo多少钱

文库网站开发建设,昆明网站seo多少钱,网站做成app客户端,wordpress更好域名Prometheus和Grafana都是非常流行的开源监控工具,可以协同使用来实现对各种应用程序、系统、网络和服务器等的监视和分析。 下面对Prometheus和Grafana进行简要介绍: Prometheus Prometheus是一款开源、云原生的系统和服务监控工具,它采用p…

Prometheus和Grafana都是非常流行的开源监控工具,可以协同使用来实现对各种应用程序、系统、网络和服务器等的监视和分析。

下面对Prometheus和Grafana进行简要介绍:

  1. Prometheus

Prometheus是一款开源、云原生的系统和服务监控工具,它采用pull模式的监控方式,可以通过HTTP协议从各种Target中抓取metrics数据,并存储到本地的时间序列数据库中。Prometheus提供了强大的查询语言(PromQL)来支持数据查询、聚合和图表绘制等操作。同时,它还提供了Alertmanager组件来支持告警和通知功能,可以通过配置规则实现各种复杂的告警条件和触发方式。

  1. Grafana

Grafana是一款开源的监控可视化和数据分析软件,它支持将来自多个数据源的时间序列数据转换为丰富的图表和仪表板,以实时监控和分析各种指标和性能指标。Grafana 的用户可以轻松创建和编辑仪表板、将不同数据源的指标数据组合到一起显示、应用多种过滤器和渲染选项来定制化仪表板的显示方式以及定义警报功能等,从而实现根据需要快速了解应用程序的状态和性能指标以及进行数据分析。

通过将Prometheus和Grafana结合使用,您可以有效地监控和管理各种应用程序和系统的状态和性能指标,从而更好地掌握系统的运行状况并快速发现故障。

本人使用mac电脑安装Prometheus和Grafana,下载可自行根据自己的环境进行,思路才是最重要的。

安装Prometheus:

// 安装
brew install prometheus// 启动
brew services start prometheus
复制代码

默认端口为9090:

重点:

有了Prometheus后,我们要思考一个问题就是,数据从哪里来?

要了解数据是程序push过来的,还是Prometheus去拉取的,很关键。

package com.example.demo.monitor;/*** @author caozhixin* @date 2023/4/8 13:10*/
import io.prometheus.client.Counter;
import io.prometheus.client.Gauge;
import io.prometheus.client.exporter.HTTPServer;import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;public class BankAccountSystem {// 存储每个银行账户的当前余额private static final Map<String, Double> accountBalances = new HashMap<>();// 创建一个Counter指标来表示已经从每个账户取款的次数private static final Counter withdrawals = Counter.build().name("bank_account_withdrawals_total").help("Total number of account withdrawals.").labelNames("account_number") // 为了方便查询,使用名为"account_number"的标签分别标识每个账户的指标.register();// 创建一个Gauge指标来表示每个账户的当前余额private static final Gauge accountBalance = Gauge.build().name("bank_account_balance").help("Current balance for each account.").labelNames("account_number") // 同样使用名为"account_number"的标签来标识每个账户的指标.register();public static void main(String[] args) throws IOException {// Start the HTTP server and expose metrics endpoint.// 启动一个HTTP服务器,并暴露/metrics端点以便Prometheus从中获取指标数据HTTPServer server = new HTTPServer(8080);Random random = new Random();// 初始化10个不同的银行账户,并对每个账户进行一次初始余额的设置for (int i = 1; i <= 10; i++) {String accountNumber = "ACCT" + i;double initialBalance = random.nextDouble() * 100000;accountBalances.put(accountNumber, initialBalance);// 使用set方法将每个账户的初始余额设置为Gauge指标的值,同时使用"labelValues"参数传递与之对应的"account_number"标签值accountBalance.labels(accountNumber).set(initialBalance);}// 模拟一些账户活动while (true) {try {Thread.sleep(5000); // 等待5秒钟} catch (InterruptedException e) {e.printStackTrace();}// 对于每个银行账户,随机从中扣除一些资金,并更新相应的指标数据for (Map.Entry<String, Double> entry : accountBalances.entrySet()) {String accountNumber = entry.getKey();double currentBalance = entry.getValue();double withdrawAmount = random.nextDouble() * 100;if (withdrawAmount > currentBalance) {withdrawAmount = currentBalance; // 不能透支,如果取款金额超过了当前余额,那么就只能全部取出}currentBalance -= withdrawAmount;accountBalances.put(accountNumber, currentBalance);withdrawals.labels(accountNumber).inc(); // 增加该账户的Counter指标值(表示已经从这个账户中取过款)accountBalance.labels(accountNumber).set(currentBalance); // 更新该账户的Gauge指标值(表示当前余额)}}}
}
复制代码

在此示例中,我们模拟了一个银行账户管理系统,有10个不同的账户,并使用Map<String, Double>来存储每个账户的当前余额。我们还创建了两个指标:一个Counter bank_account_withdrawals_total表示已经从每个账户取款的次数,带有一个名为account_number的标签;一个Gauge bank_account_balance 表示每个账户的当前余额,也带有一个account_number标签。

在无限循环中,我们模拟了一些账户活动,随机从每个账户中扣除一些资金,并更新相应的指标数据。这样,我们就可以通过Prometheus监视银行账户活动并生成警报。

我们可以从Java程序启动的8080看到对应的Prometheus格式数据:

下一步就是我们怎样让Prometheus进程把这些数据抓取过去,这一步很简单,就是在prometheus.yml配置的(安装后的文件路径自己找)。

global:scrape_interval: 15sscrape_configs:- job_name: "prometheus"static_configs:- targets: ["localhost:9090"]- job_name: 'java_app'metrics_path: '/my_metrics'static_configs:- targets: ['localhost:8080']复制代码

把这个java程序的Prometheus客户端端口配置上去即可。

这时候我们就可以到Prometheus的面板去看下是否有数据。

到目前为止,我们已经完成了Prometheus把Java产生的业务数据导入啦。

接下来就是处理Grafana获取Prometheus数据。

// 安装
brew install grafana// 启动
brew services start grafana
复制代码

Grafana默认端口为3000

这个时候,我们的思路就是怎样去获取Prometheus数据。

Grafana在页面上提供了配置数据源的交互。

支持的数据源很多,按需配置。

这里我们直接把url配置上即可,生产环境的话,需要考虑的更多,比如安全性之类的,配置密钥证书。

数据源配置完了,就剩下面板啦。

选择你想处理的指标和统计口径

也可以直接使用PromQL语句:

round(sum by(account_number) (increase(bank_account_balance{job="java_app"}[$__rate_interval])))
复制代码

到目前为止,一个业务数据的监控就完成啦。大家可以照猫画虎走一个流程!!

http://www.15wanjia.com/news/166671.html

相关文章:

  • 国外做的好的医疗网站云南又出现一例
  • 网站建设 - 碧诺网络网站没有收录
  • 关键词库在网站上怎么体现国内做的较好的网站
  • 网站如何优化流程wordpress登录插件
  • 承德网站建设案例网站焦点图如何美观
  • 神农架网站制作建设手机网站培训教程
  • 如何设计制作一般企业网站网站开发教程收费版
  • 网络营销网站电子商务网站建设与实践
  • 团购网站建设公司wordpress cookie失效
  • 网站的流量是什么意思信息流广告名词解释
  • 烟台建设工程信息网站搭建网站实时访问地图
  • 上海建设官方网站wordpress标签组合
  • 临沧市建设局网站网站开发动静分离实践
  • 濉溪建设投资网站网站ipv6建设
  • 英文网站建设方案企业网站的职能主要有
  • cmseasy做网站简单吗网页设计与制作思考建议200字
  • 外贸网站建设 公司安装和使用wordpress
  • 长沙网站外包建设银行网站打不开用什么浏览器
  • 购物网站建设思路产品介绍网站模板下载地址
  • 西安网站建设l西安搜推宝网络网站推送怎么做
  • 河南推广网站的公司客户跟进系统 免费
  • 网站建设知识及维护技巧广告设计有创意的名字
  • 如何布置网站怎么做360网站
  • 凡科网站教程编写网页的软件
  • 有没有网站定制西装
  • 建门户网站无锡 做公司网站
  • 设计一个网站页面需要多少钱wordpress 静态化
  • 外贸建站哪家强外贸网站怎么做衡阳市建设学校网站
  • 网站建设安全协议网站建设详细描述产品的是什么意思
  • 手机网站背景图尺寸注册完域名之后怎么找到网站