Prometheus

asp.net core监控—引入Prometheus(五)

廉价感情. 提交于 2021-01-03 09:06:21
上一篇博文中说到Prometheus有四种指标类型:Counter(计数器)、Gauge(仪表盘)、Histogram(直方图)、Summary(摘要),并且我们做了一个Counter的Demo,接下来看看Histogram。 Summary:摘要 summary是采集展示百分位数,百分位定义:在一组由小到大的数字中,某个数字大于90%的数字,这个数字就是第90个的百分位数。 通过demo的来理解一下吧,假如我们业务需求是要知道订单金额10,30,50,70,90的百分位数,该怎么实现呢? 需要在MetricsHub.cs中添加Summary类型的指标收集集合: using Prometheus; using System.Collections.Generic; namespace PrometheusSample.Middlewares { public class MetricsHub { private static Dictionary<string, Counter> _counterDictionary = new Dictionary<string, Counter>(); private static Dictionary<string, Dictionary<string, Gauge>> _gaugeDictionary = new Dictionary

Prometheus监控神器-Alertmanager篇(三)

纵饮孤独 提交于 2021-01-03 07:32:42
本章主要对介绍什么是 Silences , 在哪些场景中使用、以及如何设置 警报临时静默 Silences 。 静默 Silences 是指让通过设置让警报在指定时间暂时不会发送警报的一种方式。通常静默一般用于解决严重生产故障问题时,因所花费的时间过长,通过静默设置避免接收到过多的无用通知。在已知的例行维护中,为了防止对例行维护的机器发送不必要的警报,可以在 维护期间设置一个时间范围,临时关闭警报发送,等待维护完成,在将静默关闭,另外主要下自己的时区,这里使用的是UTC时间做的测试。 设置 Silences的方式有俩种,一直是通过 WEB UI 配置,一种是通过 amtool 工具在命令行进行设置。 silences-create Silences 创建信息描述: 名字 描述 Start 静默的开始时间 End 静默的结束时间 Duration 自动计算静默时间,就是说开始以后,剩余的时间会在此显示 Matches 使用Labels来识别需要静默的警报,可以直接匹配,也可以使用正则表达式。 Creator 创建者名称 Comment 描述信息 通过上面的描述其实可以很容易知道需要制定的参数信息,当输入完成后,直接点击create创建即可,此时去触发警报就会发现,警报不会在通知,下面是已创建好的Silences信息。 silences-create 这个时候我们可以使用

(四)解决cAdvisor 容器监控面板未授权访问

我们两清 提交于 2021-01-02 11:07:20
cadvisor是一个谷歌开发的容器监控工具,它被内嵌到k8s中作为k8s的监控组件。默认情况下没有授权验证措施。攻击者可以直接未授权访问cAdvisor容器监控面板,获取相应Docker敏感信息。 开启cAdvisor的认证跟开启Prometheus的认证方法是一样的,都是通过nginx的auth_basic功能代理cAdvisor实现认证的。 所以: 第一步,部署nginx 第二步,安装httpd-tools工具 第三步,修改nginx.conf 第四步,修改prometheus.yml 第五步,重启服务 第一步,部署nginx,去nginx官网下载个nginx的安装包,操作步骤如下: ~:useradd - M - s / sbin / nologin nginx ~:yum - y install pcre - devel zlib - devel openssl ~:tar - zxvf nginx - 1 . 17 . 7 . tar . gz ~:cd nginx - 1 . 17 . 7 ~: . / configure -- prefix= / usr / local / nginx -- group =nginx -- with - http_stub_status_module && make && make install 第二步,安装httpd

Go 开源说第二期:GORM 剖析与最佳实践

試著忘記壹切 提交于 2021-01-01 18:41:27
写在前面 随着Go在中国越来越多的应用场景,我们中国的Gopher开发的开源项目也越来越多,目前在github上面有大量的Go写的开源项目,但是很多时候一个好的项目让别人获知,同时让大家了解背后的设计设计原理,其实是很困难的一件事情。 基于这样的背景,我们GoCN社区推出这个《Go 开源说》,每两周会播出一期。希望通过这样的平台帮助到我们开源的作者,有一个平台去推广我们的开源项目,第二说说背后的设计原理和理念,产品优越性等。第三让我们用户可以了解到更多好玩有用的项目,避免自己造轮子重复发明,当然也希望通过这些分享让大家学习到每一个开源项目背后的设计理念,拥抱开源,做出自己的产品。 —— Asta 本期开源先锋 张金柱 https://github.com/jinzhu 就职于字节跳动基础架构语言团队 目前从事字节跳动的性能分析、优化及 GORM 开发相关工作 关于 GORM https://github.com/go-gorm/gorm 设计简洁、功能强大、自由扩展的全功能 ORM 设计原则 API 精简、测试优先、最小惊讶、灵活扩展、无依赖 可信赖 功能完善 关联:一对一、一对多、单表自关联、多态关联;Preload、Joins 预加载;关联模式 事务:嵌套事务, Save Point Hooks、Callbacks 自由扩展 多数据库、读写分离、Prometheus

爱奇艺在 Dubbo 生态下的微服务架构实践

妖精的绣舞 提交于 2020-12-31 11:07:47
导读 :本文整理自作者于 2020 年云原生微服务大会上的分享《爱奇艺在 Dubbo 生态下的微服务架构实践》,重点介绍了爱奇艺在 Dubbo、Sentinel 等开发框架方面的使用经验以及微服务生态体系的建设经验。 本文将主要围绕以下几个主题展开: Apache Dubbo 简介及其在爱奇艺的发展历史 爱奇艺内部对 Dubbo SDK 的扩展及围绕 Dubbo 相关的微服务生态建设 后续规划 Apache Dubbo 简介及其在爱奇艺的发展历史 1. Apache Dubbo 简介 Apache Dubbo 是一款由阿里开源的高性能 RPC 框架。Dubbo 框架本身除了通信外,还内置了微服务治理的多项功能(如注册发现,路由规则等)。 自从 2017 年重启维护以来,Dubbo 社区一直保持了较高的活跃度。从周边生态来看也相对比较完善,比如 Nacos、Sentinel 等开源框架都对其提供了支持。在语言支持方面,除了 Java 语言之外,Dubbo-go 社区目前也非常活跃,且针对 python,nodejs 等主流开发语言 Dubbo 也有一些开源实现。基于以上这些因素,我们决定引入 Dubbo 框架,用以替换原先自研的 RPC 框架。 爱奇艺是在 2019 年 6 月正式开始引入 Dubbo 框架的。我们将其与对接公司内部的基础设施做了对接,如注册中心、监控系统等等,并在

Prometheus 监控 Ceph 集群

丶灬走出姿态 提交于 2020-12-30 08:54:47
Prometheus 监控 Ceph 集群 Prometheus Module — Ceph Documentation Prometheus 模块启用: [root@node1 ~]# ceph mgr module enable prometheus [root@node1 ~]# ceph mgr services { "dashboard": "https://node1:8443/", "prometheus": "http://node1:9283/" } [root@node1 ~]# netstat -tnlp | grep 9283 tcp6 0 0 :::9283 :::* LISTEN 1507703/ceph-mgr 默认情况下,模块将在主机上的所有 IPv4 和 IPv6 地址的端口上接受 HTTP 请求。 ceph config set mgr mgr/prometheus/server_addr 0.0.0.0 ceph config set mgr mgr/prometheus/server_port 9283 安装 prometheus 步骤请移步我之前的博客 掌握Prometheus 监控思科交换机技能,这篇文章就够了!-余生还长,何必慌张-51CTO博客 (一) Prometheus 监控思科交换机---各中间件安装部署 ceph 各节点部署

prometheus+grafana实现监控过程的整体流程

岁酱吖の 提交于 2020-12-30 07:59:11
prometheus安装较为简单,下面会省略安装步骤: 一.服务器启动 Prometheus启动 ./prometheus --config.file=prometheus.yml Grafana启动 service grafana-server start 设置自启动 如需自启动某些服务,只需使用chkconfig 服务名 on即可,若想关闭,将on改为off ,如 chkconfig grafana-server on 二.访问服务器 1.Prometheus:部署ip:9090(默认端口号); 2.Grafana:部署ip:3000(默认端口号),访问Grafana服务器的时候会要求输入账号密码,这里使用默认账号密码,账号:admin,密码:admin 3.设置Grafana管理Prometheus 三.配置exporter(监控不同的对象需要不同的导出器) 下载exporter tar.gz并上传至服务器 解压 ./node_exproter 安装 curl 127.0.0.1:9100 验证,curl 127.0.0.1:9100/metrics,会返回一大推性能指标 在 prometheus 中的yml文件中,配置exporter导出器 四.问题 至此所有安装已完成,但是还存在以下问题,这些问题我们放在下面的配置,可视化段落处理。 Prometheus

docker+prom+grafana+altermanager

那年仲夏 提交于 2020-12-29 15:53:38
docker基础 docker run -it --name centos -v $HOME:/tmp -p 8080:8080 centos docker inspect container #查看已启动容器启动命令 docker container prune #删除退出的容器 docker ps -a --no-trunc #查看容器启动参数 反查dockerfile 方法一: docker history --format {{.CreatedBy}} --no-trunc=true 0e0218889c33|sed "s?/bin/sh\ -c\ \#(nop)\ ??g"|sed "s?/bin/sh\ -c?RUN?g" | tac 方法二: apt-get install npm #管理前端包工具 npm install npx npx dockerfile-from-image node:8 > dockerfile #解析dockerfile 修改容器镜像的启动命令 -- docker 修改启动命令 #使用宿主机网络,并将容器名称修改为prometheus,-d后台运行 docker run -d -p 9090:9090 --name prometheus --net=host prom/prometheus #将容器里文件拷贝出来到root目录 docker

Prometheus return no data when calculating a ratio of two metrics

倖福魔咒の 提交于 2020-12-29 13:15:08
问题 I want to calculate a ratio of two metrics, but I get no data... I have some metrics like: fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Used"} 50.0 fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Total"} 100.0 When I try to do any operation (device, multiply, add, subtract) like: fs_bytes{instance="localhost:9108",metric="Used"} / fs_bytes{instance="localhost:9108",metric="Total"} Prometheus returned: no data When I query each metric

Prometheus return no data when calculating a ratio of two metrics

旧城冷巷雨未停 提交于 2020-12-29 13:09:25
问题 I want to calculate a ratio of two metrics, but I get no data... I have some metrics like: fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Used"} 50.0 fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Total"} 100.0 When I try to do any operation (device, multiply, add, subtract) like: fs_bytes{instance="localhost:9108",metric="Used"} / fs_bytes{instance="localhost:9108",metric="Total"} Prometheus returned: no data When I query each metric